Académique Documents
Professionnel Documents
Culture Documents
Organisation
On englobe sous ce terme l’ensemble des structures
économiques qui existent :
■ les entreprises publiques,
■ les entreprises privées,
■ les administrations,
■ les associations...
Matériels
Ensemble d'éléments
Autres (hommes, règles, ...)
Brahim ER-RAHA
Exemple de système
Brahim ER-RAHA
Autre Exemple
l'entreprise/organisation 1950/60
Entreprise
Produits achetés Produits vendus
Brahim ER-RAHA
La notion de système d’information
Qu'est qu'un système d'information :
Brahim ER-RAHA
Le système d’informations
C’est la transformation
des ressources , l’activité
de production
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
La notion de système d’information
Le système d'information est la représentation de l'activité du
système opérant ,construite par et pour le système de pilotage pour
en faciliter le fonctionnement. Le système d'information a deux
grandes fonctions :
Brahim ER-RAHA
La notion de Projet Informatique
un projet informatique a pour objectif de construire une application
informatique (logiciel et base de données), support d'un système
d'information informatisé, inclus dans un système d'information
organisationnel.
Brahim ER-RAHA
Le cycle de vie
1. Le Schéma Directeur
2. Analyse / Conception
L'étude préalable
L'étude détaillée
3. La réalisation
L’étude Technique
Production Logicielle
Mise en service
4.La Maintenance
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Analyse
• Au sens informatique, l’analyse consiste d’une part à
comprendre et modéliser le fonctionnement d’un domaine de
gestion d’une organisation, et d’autre part à concevoir la
solution informatique adéquate.
Brahim ER-RAHA
Analyse/Conception
Brahim ER-RAHA
Étude préalable
Brahim ER-RAHA
L’Étude détaillée
Brahim ER-RAHA
3.Les principes de bases de Merise
3.2. Le cycle de vie
La réalisation
Brahim ER-RAHA
L’Étude Technique
Brahim ER-RAHA
3.Les principes de bases de Merise
3.2. Le cycle de vie
La production logicielle
La Réalisation
Brahim ER-RAHA
La mise en service
Elle comprend :
Brahim ER-RAHA
La maintenance
Elle comprend :
Brahim ER-RAHA
La notion de Méthode
Qu'est ce qu'une méthode ?
Brahim ER-RAHA
La notion de Modèle
Brahim ER-RAHA
Qualités attendues d’un modèle
• La fidélité
– La représentation doit être effectuée sans
déformation de la réalité
• La cohérence (validité)
– La représentation ne doit comporter de
contradiction explicite ou implicite
• La complétude
– La représentation doit décrire tous les phénomènes
pertinents par rapport aux objectifs du
modélisateur
Brahim ER-RAHA
Exemple de Modèle
Brahim ER-RAHA
Courants Structuré Systémique Objet
M éthode d'
E tude et de
R éalisation ,
Brahim ER-RAHA
Le Cycle d’Abstraction
Niveau Conceptuel
• Ce qu’il faut faire
• Quoi ?
Niveau Organisationnel
• La manière de faire
• Pour les traitements
Niveau Logique
• Choix des moyens et ressources
• Pour les données
Niveau Physique
• Les moyens de le faire
• Comment ?
Brahim ER-RAHA
La Méthode MERISE
MODELES
MCC
MCD MCTA
Niveau conceptuel
CVO
Niveau physique
MLDR MLTR
Brahim ER-RAHA
Le Système d’Information vu selon la méthode MERISE
MODELES Système Modélisé Description
MCC
Description des fonctions majeures du S.I en réponse aux stimuli
+ MCD Système d’information
provenant de l’environnement extérieur ( acteurs externes ) sans
+ MCTA Conceptuel ( SIC ) référence aux ressources nécessaires à sa mise en œuvre
+ CVO ( Concentration sur le Quoi )
MOD Système d’information Description des ressources nécessaires à la mise en œuvre des activités
+ MOTA Organisationnel ( SIO ) du SIC du point de vue du gestionnaire ( moyens techniques et humains ,
espace , temps , données ) et choix d ’une organisation pour ces
ressources ( Concentration sur le Comment du gestionnaire )
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Document Acrobat
Brahim ER-RAHA
MODÈLE DE CONTEXTE (MC)
MC= Diagramme de flux de niveau 0
Il représente les échanges d 'information entre le Domaine Etude ( ex:
Gestion es ventes), les domaines connexes (ex: Gestion du
personne, stock, comptabilité ) et L’environnement ( ex : Client)
Règlement G. Des
Ventes
Bon Livraison
G. De
Personnel
G. De
Stockes
Brahim ER-RAHA
Document Acrobat
Brahim ER-RAHA
Diagrammes de flux de données
Info. Stockes G. De
Stockes
G. Des
Commandes Info. Livraison en cours
Client
Bon livraison2 Commande2
Facture
Informations Vente2
Informations Rémunération
G. force de
vente G. De
Personnel
Inf. Personnel
DFD 2 = Zoom sur Ie sous-domaine
« Gestion des factures » du
domaine « Gestion des ventes »
G. Des
Commande
s
Bon livraison2
Commande2
Facture
Facture2 G.
Client G. Des
Comptabilité
Factures
Informations
Facture3
Règlement
Règlement
Suivi des
règlements
Informations
G. force de
Vente2
vente
La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : La modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
La Démarche
Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
La Démarche
Chapitre 1 : Modélisation de la communication
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Modélisation des Données
....
Brahim ER-RAHA
Le Modèle Conceptuel de données ( MCD )
Exemple :
1,N
COMMANDE
Commander
Qté commandée N° Commande
0,N Date Commande
1,1
PRODUIT Passer
commande
Ref-Produit
Désignation
Prix-unitaire 1,N
CLIENT
Code-Client
Nom-Client
Brahim ER-RAHA
Notion d’ENTITÉ
Exemple Client
Véhicule
Loué par N° Client
N° Immatr.
Date mise en service Nom
Association binaire non Adresse
Kilométrage
porteuse d’identifiant
(N°Immatr.+N° Client )
Service
Salarié N° Service
Matricule Affecté à
Désignation
Date affect.
Nom
Entité 1 i1 , j1
Entité 2
Association
i2 , j2
i1 , i2 = cardinalités mini
j1 , j2 = cardinalités maxi
Exemple
Service
Salarié 1,N 1,8 N° Service
Matricule Affecté à
Date affect. Désignation
Nom
Règles de gestion :
RG1 - Un salarié est affecté à un et ou pls services le long de sa carrière
RG2 - A un service , on peut affecter un à plusieurs salariés (maximum 8)
Brahim ER-RAHA
Identifiant d’une Association
Il est obtenu par concaténation des identifiants des entités reliées par l’association
Question : Un employé peut-il effectuer plusieurs visites chez le même médecin à des dates différentes ?
Brahim ER-RAHA
Identifiant d’une Association
Il est obtenu par concaténation des identifiants des entités reliées par l’association
Question : Un employé peut-il effectuer plusieurs visites chez le même médecin à des dates différentes ?
Réponse : Ce modèle ne le permet pas même si la propriété « Date_Visite » est portée par l’association « Visiter »
Brahim ER-RAHA
Identifiant d’une Association ( Suite )
Ce modèle permet , à l’inverse du précédent , de représenter le fait qu’un employé peut visiter le même
médecin plusieurs fois à des dates différentes .
Brahim ER-RAHA
Comment doit-on interpréter les cardinalités d’une association ternaire ?
Exemple : Association ternaire ( i2 , j2 )
Médecin
( i1 , j1 ) Visiter
Employé
( i3 , j3 ) Calendrier
• Identification de ( i1 , j1 )
Pour un employé fixé ( occurrence E ) , le couple de N° Employé ( N° Médecin , Date Visite )
cardinalités ( i1 , j1 ) traduit le nombre minimal 1 ( 12 , 08/05/01 )
et maximal d’occurrences du couple d’entités 1 ( 10 , 15/06/01 ) Occurrences
( Médecin , Calendrier ) qui sont associées à 1 ( 6 , 09/06/01 ) de « Visiter »
l’occurrence E . 3 ( 10 , 02/06/01 )
Ici : ( i1 , j1 ) = ( 0 , 3 ) 4 ( 12 , 14/06/01 )
4 ( 10 , 14/06/01 )
5 ( 10 , 02/06/01 )
• Identification de ( i2 , j2 )
N° Médecin ( N° Employé , Date Visite )
Pour un médecin fixé ( occurrence M ) , le couple de
cardinalités ( i2 , j2 ) traduit le nombre minimal 12 ( 1 , 08/05/01 )
et maximal d’occurrences du couple d’entités 10 ( 1 , 15/06/01 )
6 ( 1 , 09/06/01 )
( Employé , Calendrier ) qui sont associées à
10 ( 3 , 02/06/01 )
l’occurrence M . 12 ( 4 , 14/06/01 )
Ici : ( i2 , j2 ) = ( 0 , 4 ) 10 ( 4 , 14/06/01 )
10 ( 5 , 02/06/01 )
• Identification de ( i3 , j3 )
En raisonnant de même pour ( i3 , j3 ) on trouve : ( i3 , j3 ) = ( 0 , 2 )
Brahim ER-RAHA
Rôles dans une Association
Rôle = Notion précisant le rôle particulier joué par un ensemble
d’occurrences relatives à une entité dans une association .
Les rôles sont portés sur le schéma Entité-Association .
Exemple 1 Livrer Dépôt expéditeur
Nbre colis livrés DEPOT
0,N 0,N
Dépôt destinataire
Code dépôt
CLIENT Recevoir
Adresse dépôt
Code Client Nbre colis reçus 0,N
Nom client 0,N
Adresse client
N° Salarié
Nom Est chef de
Prénom 0,N
Fonction
Salarié
N° Subalterne N° Chef
1 2 Occurrences de
1
5 2 l’association
2 2 4
6 1
3
* Les salariés N° 1 et 2 participent aux 2 rôles de l’association .
4
* Le salarié N° 3 ne participe à aucun des rôles de l ’association .
5
6 * Les salariés N° 4 et 5 participent à un seul des rôles de l ’association.
Brahim ER-RAHA
Notion de Dépendance Fonctionnelle
Définition : 2 propriétés A et B sont en DF si la connaissance
d’une valeur de A détermine une et une seule valeur de B . On
dit que A détermine fonctionnellement B .
5 - Transitivité : {X Y et Y Z } => X Z
6 - Pseudo-transitivité : {X Y et Y, Z W } => X, Z W
PROPRIETES
Brahim ER-RAHA
DEPENDANCES FONCTIONNELLES
2 - Cas d’une Association hiérarchique ( monovaluée )
COMMANDE CLIENT
1,1 PASSER 0,N Code Client
N° Commande
Nom
Date Commande
Adresse
Montant
DF représentant l’assoc.
N° Commande Code Client Nom
Adresse
Date Commande Montant Téléphone
Une Association Hiérarchique est une association binaire
Occurrences de « PASSER » (dimension = 2) dont l’une des pattes possède une Cardinalité
N° Commande Code Client Maxi égale à 1 .
1 4 Ce type d’association est toujours orienté suivant le sens de la
2 9 dépendance fonctionnelle qui relie les identifiants de ses Entités .
3 4
4 6 Remarque : La dépendance fonctionnelle Code Client --->
5 2 N°Commande n’existe pas car un Client peut passer plusieurs
6 4 commandesBrahim
( exemple du Client N° 4 )
ER-RAHA
DEPENDANCES FONCTIONNELLES
3 - Cas d’une Association N-aire multivaluée non porteuse de propriétés
DF représentant l’assoc.
( N° Facture , Réf. Produit ) Quantité Produitc
DF représentant l’assoc.
( N° Ville Départ , N° Ville Arrivée , N° Route ) Distance
Brahim ER-RAHA
DEPENDANCES FONCTIONNELLES
PERSONNE 0,N
Parent PARENTE
N° CIN ( Nom , Prénom )
N° CIN
Nom
Enfant
Prénom 0,2
DF représentant l’assoc.
( N° CIN Parent , N° CIN Enfant ) -
Brahim ER-RAHA
DEPENDANCES FONCTIONNELLES
FACTURE REGLEMENT
0,1 PAYER 1,1
N° Règlement
N° Facture
Date Règlement
Date Facture
Montant Règlement
Montant Facture
Règles de gestion:
Ce type d’association est orienté
RG1 - Une facture fait l’objet d ’un seul règlement dans les 2 sens pour indiquer
l’existence de 2 dépendances
RG2 - Un règlement compense toujours une seule facture
fonctionnelles entre les identifiants
RG3 - A un instant donné , certaines factures peuvent être impayées. des entités de l’association .
N° Facture N° Règlement
Date Montant
Date Montant Règlement Règlement
Facture Facture Brahim ER-RAHA
Notion d’entité faible et d’identification relative
Une entité faible possède un identifiant relatif qui se rapporte
toujours à celui d’une entité classique . L’identifiant absolu de
l’entité faible est obtenu en concaténant les identifiants des 2 entités.
Exemple :
1,N
ETAGE
CHAMBRE HOTEL
N° Etage
( 1,1 )
N° Chambre Nbre de toilettes 1,N N° Hotel
( 1,1 )
Surface Adresse Hotel
Règles de gestion:
RG1 - Une réservation est effectuée sur une ou plusieurs chambres
RG2 - Une réservation de client à l’hôtel précise le nombre de nuits relatif à chaque chambre ( durée )
RG3 - Une chambre est identifiée relativement à un étage et à un hôtel particuliers
Brahim ER-RAHA
Dépendances Fonctionnelles particulières
et Représentations MERISE 2
E1 1,1 -, - E2
DF DF forte inter-entités
E1
-,1 -, -
DF F DF Entité - Association
DEPARTEMENT
N° Département
REPRESENTANT
1,N 0,1 1,N
Gérer Affecter N° Représentant
1,N Nom Représentant
PERSONNE MOIS
Modèle Affecter 0,N
N° CIN 0,N N° Mois
normalisé Mont. salaire
en 1FN Nom Personne Libellé Mois
Brahim ER-RAHA
2ème Forme Normale ( 2FN )
Une association est dite en 2FN si elle est en 1FN et si toutes les DF entre ses propriétés sont
élémentaires
PRODUIT FOURNISSEUR
Fournir 1,N
1,1
N° Produit N° Fournisseur
Brahim ER-RAHA
3ème Forme Normale ( 3FN )
Une entité ou une association est en 3FN si elle est en 2FN et si toutes les DF entre ses propriétés
sont directes ( élimination des dépendances fonctionnelles transitives )
PRODUIT FAMILLE
Appartenir 1,N
N° Produit 1,1 Code Famille
Libellé Produit Libellé Famille
E2 - , - - , 1
DF
- , 1 - , - -,1 - , -
ASSOC. ASSOC. F DF E2
Brahim ER-RAHA
FORME NORMALE DE BOYCE-CODD ( suite )
Exemple
MATIERE
1,N 1,1
N° Matière DF
Pseudo-entité Intitulé Matière
« COURS »
ANNEE 1,N SALLE
ANNEE Enseigner 1,1 1,N N° Salle
DF
1,N 0,N Libellé Sallle
PROFESSEUR SALLE
0,N Affecter 1,N
N° Professeur N° Salle
1,N
Nom Professeur Libellé Sallle
Enseigner 1,1
ANNEE MATIERE
1,N
ANNEE 1,N N° Matière DF
Intitulé Matière
« Réserver »
=> Il ne doit pas être décomposé et se trouve déjà en 4 ème forme normale
Brahim ER-RAHA
Normalisation des entités
Première forme normale (1FN) : toutes les propriétés sont élémentaires et il existe au
moins une clé. Si une clé est unique, elle sera
prise comme identifiant
Deuxième forme normale (2FN) : toute propriété doit dépendre de la clé par une DF
élémentaire
Troisième forme normale (3FN) : toute propriété doit dépendre de la clé par une DF
élémentaire directe
Forme normale de Boyce-Codd (BCFN) : si une entité possède un identifiant concaténé, un des
éléments de cet identifiant ne doit pas dépendre d'une
autre propriété.
Exemples :
CLIENT
Nom, adresse
Ligne-Commande
Pas FN2 car Df avec clé n'est pas élémentaire
N°cde,Réf,Dés, Qté
Client
Pas FN3 (Pas de transitivités)
Codecli,nomcli, codecaté, nomcaté
Brahim ER-RAHA
Exemples (suite)
COURS
N'est pas BCFN
Matière, N°classe, Code-prof
Brahim ER-RAHA
PERSONNALISATION D’ASSOCIATIONS
BUT : Transformer une association en entité lorsqu’il y a une perte sémantique dans le MCD par
rapport aux règles de gestion du S.I .
CLIENT
Exemple : ASSUREUR
1,N Fournir 1,N N° Client
N° Assureur Date signature
Nom Client
Date échéance
Nom Assureur
Mont. Prime Adresse Client
Adresse Assureur 1,N
Selon le modèle , le client ne peut signer qu’un seul contrat
VEHICULE
d’assurance pour un véhicule donné avec le même assureur N° Immatr.
d’après la structure de l’identifiant de l’association .
Modèle
Date mise en service
Solution : Personnaliser l’association « Assurer » en entité
CLIENT
ASSUREUR
CONTRAT N° Client
1,1 1,N Nom Client
N° Assureur 1,N CIF Adresse Client
Nom Assureur CIF N° Contrat
1,1
Adresse Assureur Date Signature
VEHICULE
Un client peut signer plusieurs
Date échéance 1,1
N° Immatric.
contrats d’assurance relatifs au même Mont. Prime 1,N Modèle
véhicule chez le même assureur . CIF Date mise en service
Brahim ER-RAHA
PERSONNALISATION DE PSEUDO-ENTITES
BUT : Transformer une pseudo-entité en entité lorsqu’il y a participation de l’association formant
la pseudo-entité à une ou plusieurs autres associations dans le but de simplifier le modèle
conceptuel des données .
Exemple : EMPLOYE
N° Employé TACHE
0,N
Nom Employé 1,N N° Tâche
Attribuer
Prénom Employé Libellé Tâche
ANNEE Date Attribution
0,N
ANNEE Affecter
1,N 1,N
FONCTION
N° Fonction
Libellé Fonction
Personnalisation de la
pseudo-entité en entité
1,N « Employé Opérationnel »
Année CIF 1,1 Employé
Opérationnel 1,N Attribuer 0,N
1,N 1,1
Fonction CIF Date Attribution
Code Employé Op. TACHE
1,1 N° Tâche
Employé 1,N
CIF Libellé Tâche
Brahim ER-RAHA
Graphe de Dépendances Fonctionnelles
N° fournisseur
....
Brahim ER-RAHA
Enrichissement du MCC
• Les MCT ont pour objectif de représenter les activités du
domaine d ’étude
• Le MCT est un « zoom » sur le modèle de flux
– Dans les modèles de flux sont représentés les messages
échangés entre acteurs
– Dans les MCT, on représente comment un acteur de
l’organisation réagit quand il reçoit ce message et quelle
opération il effectue
Messages reçus à traiter
Acteur Opération
Brahim ER-RAHA
Niveau Conceptuel
• La modélisation conceptuelle des traitements
– représente formellement les activités exercées par le
domaine (à la base de la connaissance du SI)
– repose sur la prise en compte des échanges (flux) du
domaine avec son environnement
– s’effectue en faisant abstraction de l ’organisation et des
choix technologiques
• Au niveau conceptuel des traitements
– La définition des interactions du domaine avec son
environnement prime sur la manière dont on assurera ces
activités
Brahim ER-RAHA
Représentation
• Déclencheurs
Evt_1 Evt_2
• Synchronisation
et
• Nom de l’opération Oper_3
• Actions action1
acion2
• Règles d’émission ok pas ok
Brahim ER-RAHA
Terminologie (1)
• Evénements déclencheurs
– Matérialisent une sollicitation du système, par un acteur externe, à
laquelle le système doit réagir
• Synchronisation
– Expression booléenne reliant les événements déclencheurs et
exprimant les conditions d’activation d’une opération
• Opération.
– Ensemble d’actions s’exécutant dans les mêmes conditions, dont
l’enchaînement n’est conditionné par aucun événement externe
• Action.
– Activité élémentaire du système qui utilise les informations contenues
dans le message associé aux événements déclencheurs
Brahim ER-RAHA
Terminologie (2)
• Règles d’émission.
– Conditions déterminants la production d’un événement
résultant
• Evénements résultants.
– Evénement interne produit par une opération du système
• Opérations périodiques.
– Dans certains cas le déclenchement d’une opération n’est
pas conditionné par l’arrivée d’un événement externe,
c’est le cas pour des opérations périodiques qui sont
exécutées à intervalle de temps régulier. On dit qu’elles
sont déclenchées par un événement « calendaire »
Brahim ER-RAHA
EXEMPLE D'ENCHAINEMENT D'OPERATIONS
Processus livraison
dem_rdzvous
Planning
toujours
colis
Date_retenue
et
Livraison
livrer
toujours
Livraison_effectuée
Brahim ER-RAHA
Du MCC au MCT
listes
résultats_bac
•dossier
•candidat •Résultats_bac et
•scolarité
enregistrement résultats
•avis
•dossiers_complets
•listes
•président résultat
Brahim ER-RAHA
Règles à respecter
livraison
cde
évènements cde
(a)
livraison
(c)
a ou (b et c)
traitement cde2
vérifier_stock cde_incomplète
préparer_cde (b)
Brahim ER-RAHA
Interaction Traitements - Données
Représentation et conventions MERISE 2
Objet A Interrogation
C1 Etat actuel
( lecture seule )
Objet A
Mise à jour
L’objet A désigne une entité Etat final 1 C4 d’occurrence
Etat initial Etat final 2 C5
ou une association du MCD C1
C1,C2,C3,C4,C5 sont des conditions Objet A Suppression
logiques à vérifier sur les données Etat actuel Supprimé d’occurence
du MCD
Brahim ER-RAHA
Exemple de MCTA avec représentation des interactions
Traitements - Données
Produit
C1 En stock
Enregistrer commande
- Saisie ordinateur Commande
En attente C1
En livraison C1
Stock suffisant Stock insuffisant
C1
Bon livraison
Commande Commande Créé
en livraison en attente
Brahim
C1 : Si la quantité en stock est suffisante pourER-RAHA
assurer la livraison ( la quantité en stock est mise à jour )
Processus Facturation
Bon livraison
Livraison
Créé Facturé
en cours
Commande
En attente En livraison
En livraison
Facture Livraison
imprimée effectuée
ET Facture
Enregistrer Règlement En attente Facture
règlement réglée
- Saisie ordinateur
Facture
réglée
Brahim ER-RAHA
Autre exemple
Service
Demande
de promotion
employé
Responsable
C1
Affecter responsabilité
- Saisie ordinateur Employé
Employé La décision de promotion d’un employé en tant que chef de service est
responsable soumise à la condition C1 :
de service « L’employé doit avoir : - au moins 4 ans d’ancienneté dans le service
- l’échelle 11
- géré au moins 10 grands projets »
Brahim ER-RAHA
Graphe d’Ordonnancement des Evénements ( GOE )
Le développement du MCTA est difficile lorsque l’ordre d ’enchaînement des
événements et leur synchronisation n’est pas établi au préalable .
Le GOE est un graphe intermédiaire permettant de faciliter la construction d’un
modèle de traitement . Il affiche tous les événements intervenant dans un
domaine en indiquant leur succession à l’aide de flèches et leur synchronisation
à l’aide d ’un segment vertical .
Opération Synchronisation
Remarque
Les opérations identifiées dans
Op. 1 Néant le GOE d’un domaine doivent être
Op. 2 EV2 ou EV3 affectées aux processus de traitement
Op. 3 EV5 et ( EV6 ou EV7 ) de ce domaine puis libellées et
Op. 4 EV8 et EV9 analysées au niveau du MCTA
Brahim ER-RAHA
Le Cycle de Vie des Objets ( CVO )
Définition : Le cycle de vie d’un objet décrit l’ensemble des états que peut
prendre un objet au cours de son cycle de vie ainsi que les
événements qui font passer cet objet d ’un état dans un autre état
( événements de transition ) .
Objet Entité dynamique du MCD ( susceptible de changer d ’état au cours de son cycle de vie )
Etat d’objet L’état d’un objet est un stade transitoire par lequel passe un objet durant son cycle de vie
Evénement de CVO Un événement déclenche la transition d ’un état à un autre par l’intermédiaire d’une
opération . Un même événement peut déclencher plusieurs transitions .
Transition Une transition d ’un objet correspond au passage d ’un objet d ’un état à un autre état .
Une transition peut être conditionnelle
Brahim ER-RAHA .
Règles de construction d’un CVO
* Création ( Etat initial d’un objet )
Objet A
EV
Etat initial
Objet A
EV
Etat final
Objet A C1 Objet A
EV Avec condition
Etat 1 Etat 2
Brahim ER-RAHA
Règles de construction d’un CVO ( suite )
Objet A Objet A
EV
Etat 1 / var1 Etat 2 / var1
Etat 1 / var2 Etat 2 / var2
* Alternative
Objet A C1 Objet A
EV
Etat 1 Etat 2
C2 Objet A
Etat 3
* Itération
Objet A Objet A
EV
Etat 1 Etat 2
Brahim ER-RAHA
Règles de construction d’un CVO ( suite )
Interaction entre plusieurs CVO
* Evénement dépendant de * Evénement avec transition d’état
l’état de plusieurs objets sur plusieurs objets
Objet A Objet A
EV EV Etat 1
Etat 1
Objet B
Objet B
Etat 2
Etat 2
Objet A Objet A
EV
Etat 1 Etat 2
Objet B
Etat 3
Brahim ER-RAHA
Exemple 1 : Cycle de vie d’un objet « Représentant »
Recrutement Représentant
représentant Affectation Représentant
Secteur-Produit
En formation Affecté
Départ
Produit Secteur
0,N Commercialiser sur 0,N N_Secteur
Code Produit Nom Secteur
0,N
1,1 0,N
Affectation
Classer Calendrier
0,N
Début formation
0,N Date
1,N 1,1
Représentant 0,N
Fin formation 0,N
Type Produit N_Représentant 1,1
Nom représentant 0,1 Départ
Type Produit
taux Commission
Brahim ER-RAHA
Règles de syntaxe
• Un événement provient d’au moins un acteur
• Un résultat provient d’au moins une opération
• Une opération est déclenchée soit directement par un
événement ou un résultat, soit par une synchronisation unique
• Une synchronisation lie au moins deux événements ou résultats
par une expression logique
• Les résultats sont utilisés
– une expression logique associée à une synchronisation ou à
l’émission d’un résultat ne peut être toujours fausse
Brahim ER-RAHA
Modélisation Organisationnelle
des Traitements
....
Brahim ER-RAHA
Niveau Organisationnel
• Qui est qui ? Qui fait quoi ?
– Analyse des postes de travail. Partage des
traitements entre l’homme et la machine. Type
d’individu qui réalisera les traitements
• Quand ?
– Influence du temps et comment structurer les
traitements en conséquence
• Où ?
– Comment les traitements sont-ils organisés dans
l’espace? Brahim ER-RAHA
Modèle Organisationnel des Traitements
Brahim ER-RAHA
Modèle Organisationnel
• Un modèle d’organisation doit préciser au
minimum
– l’organisation prévue pour les personnels, avec les
différents postes de travail et/ou services dans
lesquels seront réalisés les traitements des
différentes tâches
– la circulation des informations entre ces centres
d’activités
– dans les postes de travail, les différentes tâches à
réaliser et selon quelle chronologie
– pour chaque poste de travail et chaque tâche, la
part assurée par l’homme et celle assurée par la
machine Brahim ER-RAHA
Modèle Organisationnel des traitements
MOT = MCT + lieu + moment + nature
• Lieu
– Qui exécute ? Acteurs (MCC)
• Moment
– Quand exécute-t-on l’opération ?
• Agencement temporel
• Attente
• Nature
– Manuelle
– Automatique
Brahim ER-RAHA
Liste des acteurs
• Le MCC fournit la liste des acteurs
Acteur B Acteur C
Brahim ER-RAHA
Importation du MCT
Acteur A Acteur B Acteur C
• Le MCT est importé dans
cette structure
Brahim ER-RAHA
Réagencement du MCT
• Pour tenir compte de l’organisation
• Pas toujours trivial, quand une opération est
supportée par plusieurs acteurs
Acteur A Acteur B Acteur C
Acteur A Acteur B Acteur C
OP1
OP2 OP1
OP2 OP3a
OP4
OP3b
OP4 OP3 OP3
OP4
Brahim ER-RAHA
Prise en compte des aspects temporels
Temps Acteur A Acteur B Acteur C
lundis-mardis- OP3a
mercredis OP4a
OP3b
jeudis
vendredis OP4b
Brahim ER-RAHA
Nature des opérations
Acteur B Acteur C Nature
OP4a manuelle
OP3b manuelle
OP4b1 manuelle
OP4b2 automatisée
Brahim ER-RAHA
MOT vs MCT
Temps Acteur A Acteur B Acteur C Nature
lundis-mardis-
mercredis OP1 manuelle
lundis-mardis-
mercredis OP2 automatisée
OP2 OP1
lundis-mardis-
mercredis OP3a automatisée
jeudi matin OP4a automatisée
OP4 OP3
Brahim ER-RAHA
Le Modèle Logique de Données Relationnel ( MLDR )
Ce modèle permet de constituer une base de données au sens logique au moyen
de tables désignées aussi sous le terme de relations .
2 ) La Relation : Une relation ( appelée aussi table ) est un ensemble d’attributs significativement
associés ( dont l’association a un sens au niveau du S.I ) .
* les attributs par rapport à leur domaine de valeurs (contrainte d’intégrité de domaine)
Exemple : Si l’attribut ‘ N° Client ’ est défini sur un domaine de valeurs numériques , il ne
peut pas contenir de lettres .
Brahim ER-RAHA
Construction du Modèle Logique de Données Relationnel
Le MLDR est construit à partir du MCD en appliquant des règles de transformation simples
aux entités et aux associations .
Les entités donnent toujours lieu à des relations dans le MLDR .
Les associations , selon leur cardinalités , peuvent ou non donner lieu à des relations .
ENTITE A ENTITE B
ENTITE A ENTITE B
ENTITE A ENTITE B
Identifiant Ao *,1 Association *,1 Identifiant Bo
Propriété A1 Propriété B1
Propriété A2 Propriété B2
*,N
ENTITE A
Représentation graphique
Identifiant Ao Association du MLDR
Propriété A1
Propriété A2
A
*,N
Ao #
Relations obtenues : A, B A1
A2 B
A ( Ao# , A1 , A2 , ... )
Ao1 #
B ( Ao1# , Ao2# ) : Cas d’une assoc. non porteuse Ao2 #
B ( Ao1# , Ao2# , B1 , B2 , ...) : Cas d’une assoc. porteuse B1
B2
Exemple :
Est parent de Relations obtenues :
PERSONNE 0, N
N° CIN PERSONNE ( N° CIN # , Nom , Prénom )
Parenté
Nom
Prénom 0, 2 PARENTE ( N° CIN_Parent # , N° CIN_Enfant # )
Est enfant de
Brahim ER-RAHA
Construction du Modèle Logique de Données Relationnel ( suite 5 )
2.5 ) Association réflexive hiérarchique Un [ 0, 1 ou 1, 1 ] à Plusieurs [ 0, N ou 1, N ]
*,N
ENTITE A
Représentation graphique
Identifiant Ao Association du MLDR
Propriété A1
Propriété A2
A
*,1
Ao #
A1
Relation obtenue : A A2
Ao‘ #
A ( Ao# , A1 , A2 , ... , Ao’ # )
Exemple :
Brahim ER-RAHA
Construction du Modèle Logique de Données Relationnel ( suite 6 )
4 ) Application : Schéma relationnel d’un service clientèle dans un café
SERVEUR MLDR
1# 1,N 0,N CALENDRIER
AFFECTER
2 SERVEUR ( 1 # , 2 )
9#
1,N 1,N
CALENDRIER ( 9 # )
0,N AFFECTER ( 1 #, 9 # , 3 # )
SUIVRE 1,N TABLE
3#
CONCERNER TABLE ( 3 # )
1,1 TRAITER
1,1 COMMANDE ( 11 #, 12, 10 ,
1,1
COMMANDE 1 #, 3 #, 9 # )
11 # CONSOMMATION
FIGURER 1,N FIGURER ( 11 # , 4 # , 7 , 8 )
12 1,N 4 #
10 5
7 CONSOMMATION ( 4#, 5 , 6 )
8 6
Dictionnaire de données
Brahim ER-RAHA
Qu’est-ce qu’une base de données ? ( BD )
Une base de données ( BD ) est un ensemble structuré de données enregistrées avec le minimum
de redondance sur un support de stockage informatique et accessibles à plusieurs utilisateurs de
manière sélective et simultanée au moyen d’un système de gestion de base de données ( SGBD ) .
- Une réservation : « Liste des passagers qui ont réservé un vol déterminé ? »
- Un équipage : « Quel est le pilote du vol Royal Air Maroc Casablanca – Londres du 15 Octobre
Départ 15 H 30 ? »
Brahim ER-RAHA
Un Système de Gestion de Bases de Données
- Sécurité : vérifier les droits d’accès des utilisateurs sur les données
- Intégrité : définir des règles qui maintiennent une cohérence entre les données compte tenu
de leur structure ( contraintes d’intégrité )
- Concurrence d’accès : détecter et traiter les cas où il y a conflit d’accès entre plusieurs
utilisateurs et les traiter correctement .
Brahim ER-RAHA
MODULE 3
Requêtes SQL
Brahim ER-RAHA
LE LANGAGE DE REQUETES SQL
1 – Origines et évolutions
- SQL est dérivé de l’algèbre relationnelle et du langage SEQUEL ( Structured English Query
Language )
Il existe 3 versions normalisées , du plus simple au plus complexe :
* SQL 1 ( 1986 ) : le langage de base
* SQL 1 ( 1989 ) : addendum ( contraintes d’intégrité sur les données )
* SQL 2 ( 1992 ) : langage complet à 3 niveaux
* SQL 3 ( 1998 ) : Les évolutions orientées objet ( SQL 3 n’est pas encore le nouveau
standard )
2 – Les 3 niveaux du langage SQL
Les ordres LMD sont des instructions SQL créées à partir des commandes suivantes :
Commande Rôle
SELECT Interroger une base de données en vue d’extraire les enregistrements qui
répondent à
des critères particuliers
INSERT Insérer ( charger ) des lots de données dans la base de données en une seule
opération
UPDATE Modifier ( mettre à jour ) des valeurs d’attributs dans une table ou bien des
valeurs
d’enregistrements entiers répondant à des critères particuliers
DELETE Supprimer des enregistrements dans une table de base de données sélectionnés
’après
un critère donné .
Chaque commande peut utiliser une ou plusieurs clauses obligatoires et des clauses optionnelles .
Les clauses permettent de définir l’origine et la nature des données qu’il faut sélectionner ou
manipuler .
Clause Rôle
FROM Nommer une ou plusieurs tables ou vues à partir desquelles les enregistrements
doivent être sélectionnés
Brahim ER-RAHA
WHERE Spécifier des conditions de jointure et / ou de sélection sur les enregistrements
GROUP BY Spécifier les attributs de regroupement lors d’une opération de calcul et / ou
COMMANDE SELECT : Forme générale
* Liste des données sur les produits dont le poids est supérieur à 15 Kg
SELECT * FROM Produit WHERE Poids > 15 ;
* Liste des libellés de produits différents dont le poids est compris entre 15 et 40 Kg
SELECT DISTINCT Libellé _Produit FROM Produit WHERE Poids BETWEEN 15 AND 40 ;
* Liste des produits dont le poids n’est pas compris entre 15 et 40 Kg et dont la couleur est
verte , rouge ou bleue
SELECT * FROM Produit
WHERE Poids NOT BETWEEN 15 AND 40
AND Couleur IN ( ‘Vert’, ‘Rouge’, ‘Bleu’ ) ;
•Sous-requête renvoyant une seule valeur ( relation à une seule ligne et une seule colonne ) :
•Sous-requête renvoyant plusieurs valeurs ( relation à une seule colonne et plusieurs lignes ) :
L’opérateur : IN
Liste des produits dont la couleur est la même que celle de l’une des tables
SELECT Libellé_Produit FROM Produit
WHERE Couleur IN ( SELECT Couleur FROM Produit WHERE Libellé_Produit = ‘Table’ )
Liste des produits dont le prix unitaire est différent de celui de toutes les armoires
SELECT Libellé_Produit FROM Produit
WHERE Prix_U NOT IN ( SELECT Prix_U FROM Produit WHERE Libellé_Produit = ‘Armoire’ )
Brahim ER-RAHA
COMMANDE SELECT : Les Sélections ( restrictions ) avec sous-requête
(suite 1)
* Sous-requête renvoyant plusieurs valeurs ( relation à une seule colonne et plusieurs lignes ) :
=> Liste des produits dont le poids et la couleur sont identiques à ceux de l’article N° 125
SELECT Libellé_Produit FROM Produit
WHERE ( Poids , Couleur ) = ( SELECT Poids , Couleur FROM Produit WHERE N_Produit = 125
Brahim ER-RAHA
COMMANDE SELECT : Les Sélections ( restrictions ) avec sous-requête
(suite 2)
* Sous-requête renvoyant au moins 1 ligne ( relation à 1 ou plusieurs colonnes comportant au moins 1 ligne ) :
L’opérateur : EXISTS
=> Liste des produits stockés dans au moins un dépôt avec une quantité supérieure à 1000 unités ?
SELECT Libellé_Produit FROM Produit AS P
WHERE EXISTS ( SELECT * FROM STOCKER WHERE [N_Produit#] = P. N_Produit
AND Qté_Stockée > 1000 )
=> Liste des produits qui ne sont stockés dans aucun dépôt ?
SELECT Libellé_Produit FROM Produit AS P
WHERE NOT EXISTS ( SELECT * FROM STOCKER WHERE [N_Produit#] = P. N_Produit )
* Sous-requêtes multiples
Lorsque les attributs de projection appartiennent tous à la requête principale , on peut utiliser plusieurs
sous-requêtes imbriquées au lieu d’utiliser des jointures
=> Liste des produits ( Libellé, Prix_U et Poids ) stockés à Tanger dans le dépôt ‘Grossisterie Znibar‘ ?
SELECT Libellé_Produit, Prix_U, Poids FROM Produit
WHERE N_Produit IN ( SELECT [ N_Produit# ] FROM STOCKER
WHERE [ N_Dépôt# ] IN ( SELECT N_Dépôt FROM Dépôt
WHERE Ville = ‘Tanger’
AND Nom_Dépôt = ‘Grossisterie Znibar’ )
Brahim ER-RAHA
COMMANDE SELECT : Les Sélections ( restrictions ) avec sous-requête
(suite 3)
•Les sous-requêtes dépendantes ou corrélées
=> Liste des prix unitaires les plus élevés de chaque type de produit
SELECT Libellé_Produit, Prix_U FROM Produit AS P1
WHERE Prix = ( SELECT MAX ( Prix_U ) FROM PRODUIT P2
WHERE P2. Libellé_Produit = P1. Libellé_Produit )
=> Liste des dépôts stockant tous les produits ( simulation de l’opérateur relationnel ‘Division‘ )
SELECT Nom_Dépôt , Ville FROM Dépôt AS D
WHERE NOT EXISTS ( SELECT * FROM Produit AS P
WHERE NOT EXISTS ( SELECT * FROM STOCKER S
WHERE S. [N_Produit#] = P. N_Produit
AND S. [N_Dépôt#] = D. N_Dépôt )
Brahim ER-RAHA
COMMANDE SELECT : Les Fonctions Statistiques
Le langage SQL offre la possibilité de récupérer des données chiffrées sur des tables ou des vues .
On peut par exemple obtenir le nombre de tuples répondant à un critère de sélection avec la fonction
COUNT , la valeur moyenne d’une colonne avec la fonction AVG , la valeur maximale ou minimale
et la somme d’une colonne avec les fonctions MAX , MIN et SUM .
=> Calculer la somme globale , la moyenne , le maximum et le minimum des quantités stockées du produit
N° 122
Brahim ER-RAHA
COMMANDE SELECT : Les
Regroupements
On appelle « Groupe » un ensemble de lignes ( tuples ) dans une relation qui possèdent une valeur identique dans
une ou plusieurs colonnes . Cette colonne ( ou ensemble de colonnes ) peut être définie comme un
« facteur de regroupement » à l’aide de la clause « GROUP BY » de la commande SELECT .
SQL permet alors d’effectuer des calculs sur les autres colonnes ( qui ne sont pas des facteurs de regroupement )
en utilisant les fonctions statistiques ( fonctions d’agrégation ) : COUNT , SUM , AVG, MAX et MIN .
La clause « HAVING » permet d’appliquer une condition de sélection ( restriction ) à chaque groupe dans la
relation résultat de la requête au niveau des colonnes de regroupements et / ou de calcul .
Remarque : Dans la commande SELECT , les colonnes de calcul sont toujours spécifiées dans la liste des
attributs de projection . Toutes les autres colonnes ( non calculées ) figurant dans cette liste sont alors
considérées comme des facteurs de regroupement et doivent figurer dans la clause « GROUP BY » .
=> Liste du nombre de produits par type de produit
SELECT Libellé_Produit , COUNT(*) AS [Nombre articles ] FROM PRODUIT
GROUP BY Libellé_Produit ORDER BY 1 ;
=> Liste des N° de produits stockés dans plus de 2 dépôts
SELECT [ N_Produit# ] , COUNT(*) AS [Nombre dépôts] FROM STOCKER
GROUP BY [ N_Produit# ]
HAVING COUNT(*) > 2 ORDER BY 1 ;
=> Lister les dépôts de la ville de Rabat dont la valeur marchande est supérieure à 100 000 DH
SELECT Nom_Dépôt , SUM ( Prix_U*Qté_Stockée ) As [ Valeur en DH ]
FROM Dépôt As D , Stocker As S , Produit As P
WHERE D.N_Dépôt = S.[N_Dépôt#] AND S.[N_Produit#] = P.N_Produit AND Ville = ‘ Rabat ’
GROUP BY Nom_Dépôt
HAVING SUM ( Prix_U*Qté_Stockée ) > 100 000 ORDER BY 2 DESC
Brahim ER-RAHA
COMMANDE INSERT : Forme générale
1ère Forme
INSERT [INTO] < Nom de Table >
[ < Liste d’attributs entre parenthèses > ]
VALUES < Liste de valeurs correspondant aux attributs entre parenthèses >
2ème Forme
INSERT [INTO] < Nom de Table >
[ < Liste n° 1 d’attributs entre parenthèses > ]
SELECT < Liste n°2 d’attributs correspondant en type à ceux de la Liste n°1 >
FROM < liste de tables ou vues >
[WHERE < critère de jointure naturelle, théta-jointure, jointure externe > ]
[ AND < critère de sélection simple > ]
[ AND < critère de sélection complexe appelant une sous-requête > ]
[etc… ]
Remarques :
- Les attributs non spécifiés dans la liste n°1 restent à NULL ou à leur valeur par défaut après l’insertion de tuples
- On doit toujours fournir une valeur dans l’ordre INSERT pour les attributs déclarés NOT NULL
( déclaration effectuée lors de la création deBrahim
la table )
ER-RAHA
COMMANDE INSERT : Exemples
Schéma relationnel : PRODUIT ( N_Produit , Libellé_Produit , Prix_U , Poids , Couleur )
ARTICLE ( N_Article , Désignation , Prix_U )
* Insertion de 2 lignes ( 2 tuples ) dans la table PRODUIT avec certaines valeurs nulles
INSERT INTO PRODUIT VALUES ( 21 , ‘VERRE CRISTAL’ , 50 , 0.25 , NULL ) ,
( 22 , ‘FOURCHETTE INOX’, 10 , NULL , NULL )
* Insertion de 2 lignes dans la table PRODUIT avec spécification des attributs d’insertion
INSERT INTO PRODUIT ( N_Produit , Libellé_Produit )
VALUES ( 23 , ‘CUILLERE INOX’ ) , ( 24 , ‘COUTEAU INOX’ )
* Insertion de tous les tuples de la table PRODUIT dont le prix est supérieur à 200 DH dans la Table ARTICLE :
( la structure des colonnes dans la table cible doit être la même que celle des colonnes dans la table source )
INSERT INTO ARTICLE
SELECT N_Produit , Libellé_Produit , Prix_U FROM PRODUIT
WHERE Prix_U > 200 ;
* Requête interdite : la duplication des tuples d’une table par un INSERT avec une sous-requête sur la même table
INSERT INTO PRODUIT
SELECT * FROM PRODUIT ;
Brahim ER-RAHA
COMMANDE UPDATE : Forme générale
1ème Forme
UPDATE < Nom de Table >
SET < Attribut1 = Valeur1 > ,
< Attribut2 = Valeur2 > , etc …
[WHERE < critère de sélection simple
ou critère de sélection complexe appelant une sous-requête > ]
2ème Forme
UPDATE < Nom de Table >
SET < Attribut1 = Valeur1 > ,
< Attribut2 = Valeur2 > , etc …
FROM < liste de tables ou vues >
WHERE < critère de jointure naturelle, théta-jointure, jointure externe >
[ AND < critère de sélection simple > ]
[ AND < critère de sélection complexe appelant une sous-requête > ]
Brahim ER-RAHA
COMMANDE UPDATE : Exemples
Schéma relationnel : PRODUIT ( N_Produit , Libellé_Produit , Prix_U , Qté_Stock )
ACHETER ( N_Produit , N_Client , Qté_Achetée , Date_Achat )
CLIENT ( N_Client , Nom , Adresse , Tél , Chiffre_Affaire )
* Mise à jour du prix de tous les produits pour tenir compte d’une augmentation de 10 DH
UPDATE PRODUIT SET Prix_U = Prix_U + 10 ;
* Mise à jour des produits de luxe dont le prix est supérieur à 1000 DH seulement ( augmentation de 15 % )
UPDATE PRODUIT SET Prix_U = Prix_U * 1.15
WHERE Prix_U > 1000 ;
* Mise à la valeur nulle des adresses et téléphones et initialisation du chiffre d’affaires réalisé avec tous les clients
dont le nom commence par la lettre B ( dans le but de recommencer leur saisie )
UPDATE CLIENT SET Adresse = Null , Tél = Null , Chiffre_Affaire = 0
WHERE Nom LIKE ‘ B% ’ ;
* Mise à jour de la Qté en stock de tous les produits ayant fait l’objet de ventes durant la journée
du 10/01/2001 ( seule une vente par produit sera prise en compte à cette date )
UPDATE PRODUIT SET Qté_Stock = Qté_Stock - A.Qté_Achetée
FROM PRODUIT P , ACHETER A
WHERE P.N_Produit = A.N_Produit
AND A.Date_Achat = ‘ 10/01/01’
Brahim ER-RAHA
COMMANDE UPDATE : Exemples ( suite )
Attention !
Une instruction UPDATE ne met jamais à jour une même ligne à deux reprises.
Le schéma relationnel considéré suppose qu'un produit peut être vendu à plusieurs reprises
( acheté par plusieurs clients ) le même jour .
Avec l’ordre UPDATE précédent , il y aura exécution sans erreur, mais chaque produit ne sera mis à jour
qu'avec une seule vente, en dépit du nombre de ventes ayant réellement eu lieu à la date spécifiée .
Solution du problème :
Au cas où plusieurs ventes ont lieu le même jour pour un produit donné, toutes les ventes de chaque
produit doivent être additionnées dans l’ordre UPDATE et le stock mis à jour à l’aide de la somme obtenue ,
comme le montre l’ordre SQL suivant :
UPDATE PRODUIT P
SET Qté_Stock = Qté_Stock -
( SELECT SUM ( Qté_Achetée )
FROM ACHETER A
WHERE P.N_Produit = A.N_Produit
AND Date_Achat = ‘ 10/01/01’ ) ;
Les ordres LDD sont des instructions SQL créées à partir des commandes suivantes :
Commande Rôle
Chaque commande peut utiliser une ou plusieurs clauses obligatoires et des clauses
optionnelles
Brahim ER-RAHA
COMMANDE CREATE TABLE : Forme générale
Les contraintes constituent une méthode normalisée par l’ANSI pour assurer l’intégrité
des données .
Chaque type d’intégrité ( de domaine , d’entité ou référentielle ) est mis en œuvre à l’aide
de types
de contraintes spécifiques ( voir tableau ).
Les contraintes garantissent la validité des valeurs saisies dans les colonnes et le maintien
des
relations entre les tables .
Les principales contraintes sont DEFAULT , CHECK , PRIMARY KEY , UNIQUE
et FOREIGN KEY .
L’écriture d’un ordre CREATE TABLE utilisant ces contraintes peut différer légèrement
suivant Brahim ER-RAHA
le SGBD utilisé ( ACCESS , SQL Server , ORACLE , SYBASE , INFORMIX , etc… )
COMMANDE CREATE TABLE : Les Contraintes d’intégrité
1ère Forme :
ALTER TABLE < Nom de Table >
[ ADD < Nom attr. > < Type > [ < Contrainte d’attr. > ] ] , …
ou [ ADD CONSTRAINT < Nom contrainte > < Contrainte > ] , …
2ème Forme :
ALTER TABLE < Nom de Table >
[ DROP COLUMN < Nom attr. > ] , ...
ou [ DROP CONSTRAINT < Nom contrainte > ] , …
3ème Forme :
ALTER TABLE < Nom de Table >
[ ALTER COLUMN < Nom attr. > < Nouveau Type > [ < Contrainte d’attr. > ] ] , .
Brahim ER-RAHA
COMMANDE ALTER TABLE : Exemples ( Suite )
- Ajout d’une colonne simple à la structure d’une table
ALTER TABLE Vente ADD Commission MONEY NULL ;
On utilise un indexe sur un attribut ou un groupe d’attributs de table dans les situations
suivantes :
* Pour implémenter l’intégrité de relation ( de table ) permettant de garantir l’unicité des
valeurs
de la clé primaire ( Commande CREATE INDEX avec le qualificatif UNIQUE )
* Pour définir une ou plusieurs clés candidates ( attributs à valeurs distinctes ) dans une table
* Pour accélérer le temps de réponse de certaines opérations de traitement sur la base de
données
lorsque le nombre d’enregistrements des tables est très important :
- Recherche ou Tri croissant / décroissant sur une ou plusieurs colonnes
- Requête de sélection utilisant un filtre sur une ou plusieurs colonnes avec une clause
WHERE
- Requête utilisant des jointures sur certains attributs communs à 2 ou plusieurs tables
On définit alors un indexe sur la ou les colonnes en question ( colonnes de recherche , de tri ,
de sélection , de jointure , etc… )
Exemples : Brahim ER-RAHA
CREATE VIEW < Nom de Vue > ( < Nom Attr. > , < Nom attr. > , … )
AS < Instruction SELECT > ;
1 - Notion de Vue : Une vue est une table virtuelle déterminée à partir d’autres tables à l’aide d’une
requête de sélection . Les données affichées par une vue ne sont pas physiquement stockées dans la base de
données mais correspondent au résultat de l’exécution d’une requête d’interrogation sur les données
stockées dans d’autres tables .
But : Supprimer un objet table , index ou vue de la base de données en éliminant les
informations de structure liées à cet objet et les données qui lui sont attachées .
Exemples :
Brahim ER-RAHA