• Aucun résultat trouvé

MERISEMCD - MEARègles de passage du MCD au MLDjournée 2

N/A
N/A
Protected

Academic year: 2022

Partager "MERISEMCD - MEARègles de passage du MCD au MLDjournée 2"

Copied!
40
0
0

Texte intégral

(1)

Next Formation

MERISE

MCD - MEA

Règles de passage du MCD au MLD

journée 2

1

(2)

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

(3)

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

(4)

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

(5)

MCD - MEA

1 - Table seule

- Table Excel - MLD-MR

- Représentation ensembliste MCD-MEA

5

(6)

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

(7)

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

(8)

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

(9)

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

(10)

MCD - MEA

2 - Relation entre 2 tables

relation « 1 à plusieurs »

- Tables excel

- Représentation ensembliste - MLD-MR

- MCD-MEA

10

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

MCD - MEA

3 - Relation entre 2 tables

relation « plusieurs à plusieurs »

- Représentation ensembliste - MLD-MR

- MCD-MEA

18

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

MCD - MEA

4 - Relation entre 2 tables

relation « plusieurs à plusieurs » avec des attributs

- Représentation ensembliste - MLD-MR

- MCD-MEA

24

(25)

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_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 attributs

Représentation ensembliste

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

• 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

(35)

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

(36)

MCD - MEA

7 - Quelques subtilités, plus rares

- Association entre 3 tables - 2 Associations entre 2 tables

- Association 0,1-* porteuse d’attributs

36

(37)

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

(38)

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

(39)

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

(40)

MCD - MEA

8 - Série d’exercices

- Dans un fichier séparé

40

Références

Documents relatifs

Le dossier reçu complet est instruit par la Direction de l’Economie et transmis pour avis technique consultatif aux chambres consulaires ardéchoises et

1ère solution : la commande est représentée de façon implicite dans les associations acheter et vendre qui sont ternaires.. 2ème solution : la commande est représentée de

c/ pour chaque plat, chaque chef a sa propre recette (variante) d/ les chefs sont reconnus par leur nom, leur restaurant, etc.. Construire le modèle E/A associé à

Construire le modèle E/A associé à cette liste de requêtes..

Peut-il y avoir plusieurs articles sur le même sujet dans le même numéro?. Connaissant un article, est-ce que je connais le journal où il

On ne peut pas le placer dans l’entité Plage, puisqu’il peut y avoir plusieurs instruments joués par différents interprètes sur une même plage?. On ne peut pas non plus, le

• Pour une utilisation sécurisée de cet appareil, l’utilisateur doit avoir lu et compris ces instructions d’utilisation avant d’utiliser l’appareil pour la première fois.. •

— Etape 1 : Toute classe d’entités du diagramme entité/association est représentée par une relation dans le schéma