MERISE MCD - MEA Règles de passage du MCD au MLD journée...
Transcript of MERISE MCD - MEA Règles de passage du MCD au MLD journée...
Next Formation
MERISE
MCD - MEARè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 - IntroductionLes 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 - IntroductionMCD-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 - IntroductionMCD-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 seuleTable 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 seuleMLD-MR
Représentation ensembliste d’une tableUne 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 seuleRepré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 seuleMEA
MCD - MEA
2 - Relation entre 2 tablesrelation « 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 tablesTables excel
Relations entre les objets de deux ensembles - 1er casEmployes 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 tablesReprésentation ensembliste
MLD-MRrepré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-MRgraphe 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 tablesMLD-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 tablesMCD-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 tablesMCD-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 tablesMCD-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 tablesMCD-MEA
MCD - MEA
3 - Relation entre 2 tablesrelation « 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 b1l2 b1l2 b2l3 b2l4 b2l4 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-MRgraphe 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 tablesrelation « plusieurs à plusieurs »
avec des attributs- Représentation ensembliste
- MLD-MR - MCD-MEA
24
Relations entre les objets de deux ensembles: 3ème casLes 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_heure
l1 b1 1/06-11h
l2 b1 1/06-11h15
l3 b1 1/06-11h15
l2 b2 2/06-14h30
l3 b2 2/06-14h45
l4 b3 1/06-10h
l1 b1 3/06-12h
Bertrand Liaudet // bliaudet.free.fr 25
4 - Relation « plusieurs à plusieurs » avec des attributsRepré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
MRgraphe 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 attributsMLD-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 attributsMCD-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 attributsMCD-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
34Bertrand Liaudet // bliaudet.free.fr
6 - Règles de passage du MCD-MEA au MLD-MRLes 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.
35Bertrand Liaudet // bliaudet.free.fr
6 - Règles de passage du MCD-MEA au MLD-MRLes 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ésAssociation 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és2 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ésAssociation 0,1 - * porteuse d’attributs
MCD - MEA
8 - Série d’exercices
- Dans un fichier séparé
40