MERISE MCD - MEA Règles de passage du MCD au MLD journée...

Post on 07-Sep-2020

45 views 1 download

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