Next Formation
MERISE
MCD - MEA
Règles de passage du MCD au MLD
journée 2
1
Il y a 2 modèles à distinguer :
•
Le Modèle Relationnel : MR (qui correspond aux SGBD-R).
-
C’est un modèle avec « clés étrangères ».
-
C’est un modèle avec uniquement des associations 1 à plusieurs sans association plusieurs à plusieurs et sans association avec des attributs.
-
Il y a différentes représentations des MR : graphique, textuelle ou codée.
-
On associe en général MLD et MR.
•
Le Modèle Entité Association : MEA
-
C’est un modèle sans « clés étrangères ».
-
C’est un modèle avec des associations 1 à plusieurs et aussi des associations plusieurs à plusieurs qui peuvent avoir des attributs.
-
Un MEA est forcément graphique.
-
On associe en général MCD et MEA.
•
Bertrand Liaudet // bliaudet.free.fr 2
0 - Introduction
Les deux grandes classes de modèle
Syntaxe du MEA
• Dans ce document, on va présenter la syntaxe du MEA : modèle entité association.
• Cette syntaxe introduit les notions de - cardinalité des associations
- association plusieurs à plusieurs - association avec des attributs
Bertrand Liaudet // bliaudet.free.fr 3
0 - Introduction
MCD-MEA et MLD-MR
Règles de passage du MCD-MEA au MLD-MR
• Le MR ne contient que des « R » : Relations = Tables et des clés étrangères.
• Le MEA contient des « E » : Entités et des « A » : Associations.
• Les règles de passages vont dire comment transformer les entités et les associations du MEA en tables et clés étrangères du MR
Bertrand Liaudet // bliaudet.free.fr 4
0 - Introduction
MCD-MEA et MLD-MR
MCD - MEA
1 - Table seule
- Table Excel - MLD-MR
- Représentation ensembliste MCD-MEA
5
6 La table type : un tableau de données excel
• La première ligne d’un tableau Excel correspond à la description des caractéristiques de l’ensemble des lignes. C’est une description abstraite.
• Les lignes suivantes correspondent aux données concrètes.
Table des Employés
1 - Table seule
Table excel
➡ Représentation textuelle du MLD-MR :
On peut aussi présenter le résultat sans les données. On parle alors de Modèle Relationnel. On écrit tout simplement :
Employe(NE, nom, fonction, dateEntrée, salaire, commission)
• La clé primaire est mise en premier et soulignée.
• Le nom de la table est mis de préférence au singulier, pour faciliter la transformation de la table en classe de P.O.O. Ce n’est pas toujours le cas dans ce PPT !
➡ Représentation graphique du MLD-MR :
Bertrand Liaudet // bliaudet.free.fr 7
1 - Table seule
MLD-MR
Représentation ensembliste d’une table
Une table d’employés est un ensemble d’employés.
On peut le noter : Employes = {e1, e2, e3, e4, e5 } On peut le représenter graphiquement :
Cette représentation permet de montrer les éléments en plus de l’ensemble.
Elle ne montre pas les attributs. On peut les préciser avec le nom de l’ensemble.
Bertrand Liaudet // bliaudet.free.fr 8
1 - Table seule
Représentation ensembliste
MEA :
Dans le cas précédent, le MR textuel est :
Employes(NE, nom, fonction, dateEntrée, salaire, commission) La représentation du MEA est la même :
En MEA (Modèle Entité Association), on parle d’entité à la place de relation ou de table.
La notion de clé primaire est la même dans le MR et le MEA.
Bertrand Liaudet // bliaudet.free.fr 9
1 - Table seule
MEA
MCD - MEA
2 - Relation entre 2 tables
relation « 1 à plusieurs »
- Tables excel
- Représentation ensembliste - MLD-MR
- MCD-MEA
10
11 La table type : un tableau de données excel
• La première ligne d’un tableau Excel correspond à la description des caractéristiques de l’ensemble des lignes. C’est une description abstraite.
• Les lignes suivantes correspondent aux données concrètes.
Certaines colonnes permettent de passer d’une ligne à une autre ligne à une autre :
• le ND des Employés permet de passer au ND des
Départements.
• le NEchef des Employés permet de passer à une autre ligne
dans la table des Employés.
Table des Employés Table des Départements
2 - Relation « 1 à plusieurs » entre 2 tables
Tables excel
Relations entre les objets de deux ensembles - 1er cas
Employes est un ensemble d’employés : Employes = {e1, e2, e3, e4, e5 }
Departements est un ensemble de départements : Departements = {d1, d2, d3}
On s’intéresse à la relation : « travailler dans » : les employés travailler dans un départements.
1.1 est une « cardinalité ». Elle veut dire que 1 employé travaille dans 1 département et 1 seul (minimum 1, maximum 1).
0.* veut dire que dans un département, il peut y avoir 0 ou plusieurs (et parfois 1 seul) employés.
On parle de relation « 1 à plusieurs » ou « 1 à * »
Bertrand Liaudet // bliaudet.free.fr 12
2 - Relation « 1 à plusieurs » entre 2 tables
Représentation ensembliste
MLD-MR
représentation graphique :
On met une flèche de la clé étrangère vers la clé primaire
MLD-MR textuel :
•
EMPLOYE (NE, nom, fonction, dateEntree, salaire, commission, #ND, #NEchef)
•
DEPARTEMENT (ND, nom, ville)
Les clés primaires sont en premier et soulignées.
Les clés étrangères sont en dernier et précédées d’un #.
MLD-MR
graphe des table :
EMPLOYES NEchef
DEPARTEMNTS
On précise le nom de l’attribut clé étrangère dans le cas d’un
clé réflexive.
Bertrand Liaudet // bliaudet.free.fr 13
2 - Relation « 1 à plusieurs » entre 2 tables
MLD-MR
MCD-MEA - représentation graphique :
• Entre les deux entités du MEA, on place 2 « associations » et on précise les cardinalités.
• On a ici 2 associations « 1 à plusieurs ».
• Ces associations se traduisent par une clé étrangère dans le MR.
• Il n’y a jamais de clé étrangère dans le MCD-MEA.
Bertrand Liaudet // bliaudet.free.fr 14
2 - Relation « 1 à plusieurs » entre 2 tables
MCD-MEA
MCD-MEA - précisions sur les associations
★ On a 2 associations : « travaille dans » et « a pour chef »
➡ Une association relie 2 entités au minimum (parfois 3, ou plus, mais c’est rare).
➡ Une association correspond à un « verbe » qui permet de faire une phrase : « sujet verbe complément » en utilisant 2 entités.
➡ Une fois qu’on a trouvé une association, il reste à déterminer ses cardinalités.
Bertrand Liaudet // bliaudet.free.fr 15
2 - Relation « 1 à plusieurs » entre 2 tables
MCD-MEA
MCD-MEA - précisions sur les cardinalités
• L’association « travaille dans » a pour cardinalités : 1,1 - 0,n
• L’association « a pour chef » a pour cardinalités : 0,1 - 0,n
• Chaque couple : (1,1), (0,1), (0,n) est une cardinalité. C’est un couple (min, max).
• Les seules valeurs possibles dans les cardinalités sont : 0, 1, n
• Les seules cardinalités possibles sont : (0,1), (1,1), (0,n), (1,n)
• La différence entre (0,n) et (1,n) n’a pas d’importance (pas de conséquences sur le MLD).
• Les paires de cardinalités possibles pour une association sont :
- (1,1 - 0,n) (1,1 - 1,n) (0,1 - 1,1) (0,1 - 0,n) (0,1 - 1,n)
• On peut aussi écrire * à la place de n, ou * à la place de (0,n) ou de (1,n).
Bertrand Liaudet // bliaudet.free.fr 16
2 - Relation « 1 à plusieurs » entre 2 tables
MCD-MEA
MCD-MEA - justification des cardinalités
★ Justification des cardinalités de l’association « travaille dans » :
➡ 1 employé travaille dans au minimum 1 département et au maximum 1 département.
➡ Dans un département travaillent au minimum 0 employés et au maximum n employés.
★ Justification des cardinalités de l’association « a pour chef » :
➡ 1 employé a au minimum 0 chef (c’est le cas du président) et au maximum 1 chef.
➡ 1 employé est le chef de de au minimum 0 employé et au maximum n employés.
Bertrand Liaudet // bliaudet.free.fr 17
2 - Relation « 1 à plusieurs » entre 2 tables
MCD-MEA
MCD - MEA
3 - Relation entre 2 tables
relation « plusieurs à plusieurs »
- Représentation ensembliste - MLD-MR
- MCD-MEA
18
Relations entre les objets de deux ensembles: 2ème cas
Soit L un ensemble de lions : L = {l1, l2, l3, l4}
Soit B un ensemble de buffles : B = {b1, b2, b3, b4}
On s’intéresse à la relation : « manger ». Les lions mangent les buffles.
0.* du côté de L veut dire que 1 lion peut manger 0 ou plusieurs buffles.
0.* du côté de G veut dire que 1 buffle peut être mangé par 0 ou plusieurs lions.
On parle de « relation plusieurs à plusieurs ».
Bertrand Liaudet // bliaudet.free.fr
3 - Relation « plusieurs à plusieurs » Représentation ensembliste
19
On peut décrire l’ensemble des relations comme un ensemble M de couples : M = { (l1, b1), (l2, b1), (l2, b2), (l3, b2) , (l4, b2) , (l4, b3) }
On peut décrire l’ensemble des relations comme un comme un tableau à deux colonnes :
Manger :
Id_Lion Id_Buffle
l1 b1
l2 b1
l2 b2
l3 b2
l4 b2
l4 b3
Le tableau « manger » va contenir les « id » des lions et des buffles. Cette table est une table de liaison. Elle peut aussi contenir des attributs supplémentaires.
Bertrand Liaudet // bliaudet.free.fr 20
3 - Relation « plusieurs à plusieurs »
Représentation ensembliste
MLD-MR
représentation graphique : MLD-MR textuel :
•
LIONS (idLion nom, dateNaissance)
•
BUFFLES (idBuffle, nom, dateNaissance)
•
MANGER(#idLion, #idBuffle)
A noter la clé primaire de MANGER : #idLion, #idBuffle
On met une flèche des clés étrangères vers les
clés primaires MLD-MR
graphe des table :
MANGER
LIONS BUFFLES
On ne représente que le nom des tables et les flèches des clés étrangères vers les clés primaires.
Bertrand Liaudet // bliaudet.free.fr 21
3 - Relation « plusieurs à plusieurs »
MLD-MR
MCD-MEA - représentation graphique :
• L’intérêt du MCD-MEA c’est que l’analyse des associations est la même dans tous les cas :
➡ Une association correspond à un « verbe » qui permet de faire une phrase :
« sujet verbe complément » en utilisant 2 entités.
• Entre les deux entités du MEA, on place 1 « association » et on précise les cardinalités.
• On a ici 1 association « plusieurs à plusieurs ».
• Une association plusieurs à plusieurs se traduit par une table dans le MLD-MR.
• Il n’y a jamais de clé étrangère dans le MCD-MEA.
Bertrand Liaudet // bliaudet.free.fr 22
3 - Relation « plusieurs à plusieurs »
MCD-MEA
MCD-MEA - justification des cardinalités
★ Justification des cardinalités de l’association « manger » :
➡ 1 lion mange au minimum 0 buffle et au maximum n.
➡ 1 buffle est mangé par au minimum 0 lion et au maximum n.
Bertrand Liaudet // bliaudet.free.fr 23
3 - Relation « plusieurs à plusieurs »
MCD-MEA
MCD - MEA
4 - Relation entre 2 tables
relation « plusieurs à plusieurs » avec des attributs
- Représentation ensembliste - MLD-MR
- MCD-MEA
24
Relations entre les objets de deux ensembles: 3ème cas
Les relations peuvent porter des attributs.
Les lions attaquent les buffles. Un lion peut attaquer plusieurs fois le même buffle. On enregistre la date et heure de l’attaque.
On peut décrire l’ensemble des relations comme un comme un tableau à trois colonnes : Attaquer :
Le tableau « Attaquer » va contenir les « id » des lions et des buffles et aussi la date et heure de chaque attaque.
On parle de « relation plusieurs à plusieurs » porteuse d’attributs.
Id_Lion
Id_Buffle Date_heurel1 b1
1/06-11hl2 b1
1/06-11h15l3 b1
1/06-11h15l2 b2
2/06-14h30l3 b2
2/06-14h45l4 b3
1/06-10hl1 b1
3/06-12hBertrand Liaudet // bliaudet.free.fr 25
4 - Relation « plusieurs à plusieurs » avec des attributs
Représentation ensembliste
MR
représentation graphique :
MR textuel :
• LIONS (idLion nom, dateNaissance)
• BUFFLES (idBuffle, nom, dateNaissance)
• ATTAQUER(#idLion, dateHeure, #idBuffle)
A noter la clé primaire de ATTAQUER : #idLion, dateHeure
On met une flèche des clés étrangères vers les
clés primaires MR
graphe des table :
ATTAQUER
LIONS BUFFLES
On ne représente que le nom des tables et les flèches des clés étrangères vers les clés primaires.
Bertrand Liaudet // bliaudet.free.fr 26
4 - Relation « plusieurs à plusieurs » avec des attributs
MLD-MR
MCD-MEA - représentation graphique :
• On a ici 1 association « plusieurs à plusieurs ».
• Les associations « plusieurs à plusieurs » peuvent avoir des attributs.
• Ici, l’association « attaquer » a un attribut : « date_heure »
• On peut dire :
➡ « un lion attaque un buffle à une certaine date_heure »
➡ « un buffle est attaqué par un lion à une certaine date_heure »
Bertrand Liaudet // bliaudet.free.fr 27
4 - Relation « plusieurs à plusieurs » avec des attributs
MCD-MEA
MCD-MEA - justification des cardinalités
★ Justification des cardinalités de l’association « manger » :
➡ 1 lion mange au minimum 0 buffle et au maximum n à une certaine date_heure.
➡ 1 buffle est mangé par au minimum 0 lion et au maximum n à une certaine date_heure.
Bertrand Liaudet // bliaudet.free.fr 28
4 - Relation « plusieurs à plusieurs » avec des attributs
MCD-MEA
MCD - MEA
5 - Comment modéliser ?
- Trouver les ensembles contenant les réalités les plus concrètes - Chercher les relations entre ces ensembles
- Eviter d’avoir plusieurs valeurs pour un attribut Eviter toute forme de duplication
29
1) Définir les ensembles contenant les réalités les plus concrètes
•
Par exemple, les employés, les départements, les lions, les buffles, etc.
•
Trouver des attributs qui caractérisent ces ensembles.
•
Vérifier que les attributs sont reliés au nom de la table par une formule du type « a un » et pas plusieurs ! Sinon, créer une table pour cet
attribut.
•
Définir la clé primaire.
•
Trouver une clé significative.
•
Eviter les attributs calculés ou préciser qu’ils le sont.
2) Chercher les associations entre ces ensembles.
3) Définir les cardinalités des associations entre ces ensembles.
4) Pour les associations plusieurs à plusieurs, chercher si on ne peut pas y ajouter des attributs.
Bertrand Liaudet // bliaudet.free.fr 30
5 - MCD-MEA - Comment modéliser ?
4 étapes
En appliquant correctement la méthode :
c’est facile !
Bertrand Liaudet // bliaudet.free.fr 31
5 - MCD-MEA - Comment modéliser ?
avantage de la méthode
1) Une valeur d’attribut ne doit contenir qu’une seule information
• Une information par valeur d’attribut, jamais plusieurs.
• Un produit a un nom et un prix, pas plusieurs.
• Par contre, un produit peut avoir plusieurs photos le décrivant.
• Si une valeur d’attribut peut contenir plusieurs valeur, l’attribut doit être transformé en table et cette table reliée à la table initiale par une clé étrangère.
2) Il faut éviter toute forme de duplication d’information
• La duplication d’une information engendre des risques d’incohérences des données.
• Il faut l’éviter.
• Si on repère des couples, triplets, n-uplet de valeurs dupliquées dans une table, il faut les sortir de la table pour créer une autre table.
Bertrand Liaudet // bliaudet.free.fr 32
5 - MCD-MEA - Comment modéliser ?
2 principes fondamentaux
MCD - MEA
6 - Les 3 premières règles de passage du MCD-MEA au MLD-MR
- Règle 1 - Entité -> Table
- Règle 2 – Association « 1 à plusieurs » -> Clé étrangère Règle 3 – Association « plusieurs à plusieurs » -> Table
33
• La modélisation MCD-MEA est relativement facile à faire.
• Ensuite, il faut transformer le MCD-MEA en MLD-MR pour pouvoir finalement coder en SQL.
• Il existe des règles qui permettent de passer d’un MCD-MEA au MLD-MR.
• Attention : ces règles ne sont pas clairement standardisées !
• On va présenter d’abord les 3 premières règles qu’on a mis en oeuvre jusqu’à présent qui correspondent aux 3 éléments qu’on a distingués dans le MEA :
➡ les entités
➡ les associations 1 à plusieurs
➡ les associations plusieurs à plusieurs
34
Bertrand Liaudet // bliaudet.free.fr
6 - Règles de passage du MCD-MEA au MLD-MR
Les 3 première règles
Règle 1 - Entité : Chaque entité devient une table. Chaque attribut de l'entité devient un attribut de cette table.
Règle 2 – Association « 1 à plusieurs » : la clé primaire de l’entité côté plusieurs devient attribut clé étrangère dans la table issue de l’entité coté 1.
Dans le cas d'une association « 1 à plusieurs » réflexive, ce nouvel attribut doit être renommé (exemple : #NE devient # NEchef).
Dans le cas d’une association 1.1, la clé étrangère sera obligatoire (NOT NULL).
Dans le cas d’une assocation 0.1, la clé étrangère ne sera pas obligatoire (default NULL).
Règle 3 – Association « plusieurs à plusieurs » : Une association « plusieurs à plusieurs » devient une table. Les clés primaires des entités associées deviennent clés étrangères dans cette table. Les attributs de l’association deviennent attributs de la table. La détermination de la clé primaire de cette table n’est pas automatique.
En général, la clé primaire de cette table est constituée de la concaténation des clés primaires des
entités associées. Toutefois, il faut se demander si cette concaténation forme bien la clé primaire. Si ce n’est pas le cas, on peut essayer d’ajouter des attributs non-clés pour trouver la clé primaire. Ensuite, il faut se demander si on ne peut pas supprimer certains attributs clés étrangères de cette clé primaire.
35
Bertrand Liaudet // bliaudet.free.fr
6 - Règles de passage du MCD-MEA au MLD-MR
Les 3 première règles
MCD - MEA
7 - Quelques subtilités, plus rares
- Association entre 3 tables - 2 Associations entre 2 tables
- Association 0,1-* porteuse d’attributs
36
Association entre 3 tables :
• On peut avoir des associations qui relient 3 tables ou plus.
• Au delà de 3, c’est probablement une erreur !
• Les cardinalités sont forcément (0,n) ou (1,n) : elles ne sont jamais (0,1) ni (1,1)
Bertrand Liaudet // bliaudet.free.fr 37
7 - Quelques subtilités
Association entre 3 tables
2 associations entre 2 tables :
• On peut plusieurs associations différentes entre 2 tables.
Bertrand Liaudet // bliaudet.free.fr 38
7 - Quelques subtilités
2 associations entre 2 tables
Association 0,1- * porteuses d’attributs
• Une association 0,1 - 0,n ou 0,1 - 1,N peut porter des attributs.
• Dans ce cas, on lui applique la règle 3 pour le passage au MLD-MR : elles se transforme en table.
Bertrand Liaudet // bliaudet.free.fr 39
7 - Quelques subtilités
Association 0,1 - * porteuse d’attributs
MCD - MEA
8 - Série d’exercices
- Dans un fichier séparé
40