Вы находитесь на странице: 1из 34

http://www-adele.imag.fr/users/Didier.

Donsez/cours

Le Modèle Entité-Association (et UML)


et les Bases de Données Relationnelles

Didier DONSEZ
Université Joseph Fourier
PolyTech’Grenoble - LIG/ADELE
Didier.Donsez@imag.fr
Didier.Donsez@ieee.org
25/09/2007
2

Motivations

 Modèle Entité/Association (Entity/Relationship)


• point de départ aux MCD de nombreuses méthodes
• Merise, OMT, UML, …
• extension objet (héritage)
 Modèle Relationnel
• modèle de base pour les SGBDs relationnels
• >70 % des applications SI
• théorie de la normalisation
• suppression des redondances
D. Donsez, EA et BD, 1998-2007

• mais il faut déterminer toutes les dépendances fonctionnelles


 Transformation E/A vers le Relationnel
25/09/2007
3
Modèle Entité-Association E/A [Chen76]
Entity-Relationship Model E/R

 Concepts de Base
• Type d ’Entité (Entity Set)
• Type d ’Association (Relationship Set)
• Attribut (Attribute)
• Clé (Key) Etudiant Suivre Cours

numss nom adresse année code titre heures


 Base pour de nombreux autres méthodologies
• Merise, OMT, Booch, …, Diagramme de classes UML (1 & 2)
D. Donsez, EA et BD, 1998-2007

0..n 0..n
Etudiant Cours
numss code
Suivre
nom titre
adresse année heure
25/09/2007
4

Les Clés

 Une entité a une et une seule clé


 même si plusieurs clés sont candidates
• les attributs clé sont soulignés

Cours Cours

formation intitulé salle heure formation intitulé salle heure


D. Donsez, EA et BD, 1998-2007
25/09/2007
5

Choisir une Clé

 Naturelle (Natural)
• Attribut seul ou composition d ’attributs
• doit toujours être renseigné (NOT NULL)
• Remarque : Attribut clé représentant une composition
ISBN : numéro intl d ’éditeur + numéro d ’ouvrage
GENCOD, EAN, SKU : numéro intl de fabricant + numéro de produit
• clé d ’une entité faible
 Artificielle (Surrogate)
• introduction d ’un attribut artificiel n ’appartenant pas au
D. Donsez, EA et BD, 1998-2007

système décrit.
• performance en comparaison
• compacité du stockage
souvent employé pour les bases décisionnelles
25/09/2007
6

Cardinalités des Assocations


Multiplicity of Relationships

A B A B A B

Many-to-many Many-to-one One-to-one


N-M N-1 1-1
0,n - 0,n 0,n - 0,1 0,1 - 0,1
D. Donsez, EA et BD, 1998-2007

E/A A R B A R B A R B

0..n 0..n 0..n 0..1 0..1 0..1


UML A B A B A B
25/09/2007
7

Associativité Many-to-One

Encadrant
Etudiants Enseignants
de Stage

Se lit : « Un étudiant est encadré Se lit : « Un enseignant encadre


que par un enseignant » plusieurs étudiants »
D. Donsez, EA et BD, 1998-2007
25/09/2007
8

Association n-Aire

• Plusieurs entités peuvent participer à la même associations


 Exemple d ’un association ternaire

Etudiants Enseigne TDs

numss nom adresse codcours titre coef


Assistants
D. Donsez, EA et BD, 1998-2007

numemp nom bureau


25/09/2007
9
Modèle Entité-Association
Entity-Relationship Model

Etudiants Suivre Cours

année

Etudiants Suivre Cours


D. Donsez, EA et BD, 1998-2007

Année

année
25/09/2007
10

Rôles dans une association

Rôles asymétrique / symétrique

Couple Ami
époux épouse 1 2

Personne Personne
D. Donsez, EA et BD, 1998-2007

époux épouse 1 2

Joseph Marie Pierre Paul


Sanson Dalida Paul Jean
25/09/2007
11

Les Entités Faibles (Weak Entity)

 Parfois, un attribut de la clé d ’une entité (dite faible)


provient d ’une autre entité
 Exemple
Logins @ Machines

nom nom

Produit Instance de Modèle fabriquer Marque


D. Donsez, EA et BD, 1998-2007

nserie code nom

 Remarque
• Certains attributs clés sont composés et forme la clé d’une entité faible
• ISBN, GENCOD, EAN, SKU, IBAN, …
25/09/2007
13

Transformation E/A vers Relationnel


 But
• Implantation du modèle E/A sur un SGBD réel
 Méthode
• transformation
des associations n-aires en associations binaires
• 1 entité = 1 relation
• 1 association = dépendant de sa cardinalité
 Cas de navigation restriente
D. Donsez, EA et BD, 1998-2007

appartient >
Employé Service
nemp 1..n 1 nom
nom adr
sal
25/09/2007
14

Cas général : Association Many-to-Many

0..n 0..n
A R B A B
ka kb
cc B
ka aa kb bb aa bb
cc

Many-to-Many A ka aa R ka kb cc B kb bb
N-M ... ... ... ... ... ... ...

create table A ( create table R ( create table B (


ka …, aa …, ka …, kb …, cc …, kb …, bb …,
primary key(ka) primary key(ka,kb), primary key(kb)
D. Donsez, EA et BD, 1998-2007

) foreign key (ka) references A, )


foreign key (kb) references B
)
25/09/2007
15

Cas d ’une Association Many-to-One

0..n 0..1
A R B A B
ka kb
Coût des jointures ! cc B
ka aa kb bb aa bb
cc

A ka aa R ka kb cc B kb bb
... ... ... ... ... ... ...
Many-to-One
N-1 A ka aa kb cc B kb bb
... ... ... ... ... ...
D. Donsez, EA et BD, 1998-2007

create table A ( create table B (


ka …, kb …, aa…, cc …, kb …, bb …,
primary key(ka), primary key(kb)
foreign key (kb) references B )
check(cc IS NULL
OR kb IS NOT NULL)
)
25/09/2007
16

Cas d ’une Association One-to-One

0..1 0..1
A R B A B
ka kb
Coût des jointures ! cc B
ka aa kb bb aa bb
cc
A ka aa R ka kb cc B kb bb
One-to-One ... ... ... ... ... ... ...
1-1
A ka aa kb cc B kb bb
... ... ... ... ... ...
D. Donsez, EA et BD, 1998-2007

A ka aa B kb bb ka cc
... ... ... ... ... ...
25/09/2007
17

Cas d ’une Association avec des Rôles

rôle 2 A ka aa R krole1 krole2 cc


... ... ... ... ...
A R
rôle1 create table A (
ka …, aa …, create table R (
ka aa cc primary key(ka) krole1 …, krole2 …, cc …,
) primary key(krole1, krole2),
foreign key (krole1) references A,
foreign key (krole2) references A
)

 Rôle symétrique et One-To-One


D. Donsez, EA et BD, 1998-2007

• quel est le danger de cette modélisation ?

A ka aa krole2 cc Rôle Symétrique


et One-to-One
... ... ... ...
25/09/2007
18

Cas de l ’entité faible (Weak Entity)

0..n 0..1
A B
A R B
ka kb
B
aa bb
ka aa cc kb bb cc

A ka aa kb cc B kb bb
... ... ... ... ... ...

create table A ( create table B (


ka …, kb …, kb …, bb …,
aa…, cc …, primary key(kb)
D. Donsez, EA et BD, 1998-2007

primary key(ka,kb), )
- - différent du cas N-to-1
foreign key (kb) references B
)

 Cas de l’aggrégation en UML


25/09/2007
19

Cas de navigation restreinte


 La navigation est unidirectionnelle
 Exemple
Héberge
Hotel Client
nom nom
adr adr
D. Donsez, EA et BD, 1998-2007
25/09/2007
20

Exercices
de transformation E/A vers Relationnel
 Exercice 1
• transformez les cas de l ’entité faible avec 3 tables A,
B, R

 Exercice 2
• transformez le schéma suivant
• attention à l ’ordre des noms
Domaines Domaines
D. Donsez, EA et BD, 1998-2007

Machines @ @
Secondaires Primaires

nom nom nom


25/09/2007
21

Exercices
de transformation E/A vers Relationnel
 Exercice 3
• transformez le schéma suivant
#client
Client Préfère
nom

Date ∈
date
D. Donsez, EA et BD, 1998-2007

Produit ∈
R Modèle ∈
R Marque

#serie sav #mod design cc #mar nom


25/09/2007
23

Le Cas des Sous Entités (i)

Employé Cadre Empl Cadre


nemp
nom prime
nemp nom sal prime sal

1 - Separation
Emp nemp nom sal Cadre nemp prime
100 Dupond 5000 200 10000
200 Durant 20000

Cadre.nemp est une clé étrangère sur Emp

2 - Push down
D. Donsez, EA et BD, 1998-2007

Emp nemp nom sal Cadre nemp nom sal prime


100 Dupond 5000 200 Durant 20000 10000

CI : {Emp.nemp}∩
∩ {Cadre.emp} = ∅
25/09/2007
25

Le Cas des Sous Entités (ii)

Employé Cadre Empl Cadre


nemp
nom prime
nemp nom sal prime sal

3 - Push Up

Emp nemp nom sal prime


100 Dupond 5000 NULL
200 Durant 20000 10000
D. Donsez, EA et BD, 1998-2007
25/09/2007
27

Le Cas des Sous Entités (iii)

 Inconvénients

1 • Jointure pour reconstituer Cadre

2 • Union pour reconstituer Employé

3 • Pas de distinction entre un Employée


et un Cadre avec une prime NULL
D. Donsez, EA et BD, 1998-2007

• en général, pas d ’abstraction dans les Traitements


25/09/2007
28

Amélioration du Cas 3 - Push Up

Employé Cadre Empl Cadre


nemp
nom prime
nemp nom sal prime sal

4
Emp typemp nemp nom sal prime Emp typemp
EMP 100 Dupond 5000 NULL EMP
CAD 200 Durant 20000 10000 CAD
Emp.typemp est une clé étrangère
CI : Emp.typemp =EMP ⇒ prime=NULL
5
Emp typemp
D. Donsez, EA et BD, 1998-2007

nemp nom sal prime


EMP 100 Dupond 5000 NULL
CAD 200 Durant 20000 10000

Domaine typemp, CD typeemp IN (EMP,CAD)


CI : Emp.typemp =EMP ⇒ prime=NULL
25/09/2007
30

Entité Abstraite

 Employé : entité abstraite (notion dans Java, C#, C++, UML, ...)
• pas de tuple (instance) Employé
Cadre prime

Employé

nemp nom sal Ouvrier equipe

Emp typemp nemp nom sal prime equipe


OUV 100 Dupond 5000 NULL Nuit
CAD 200 Durant 20000 10000 NULL
D. Donsez, EA et BD, 1998-2007

Domaine typemp
CD typeemp IN (OUV,CAD)
CI : Emp.typemp !=CAD ⇒ prime=NULL
CI : Emp.typemp !=OUV ⇒ equipe=NULL
25/09/2007
32
Transformation E/A vers Relationnel
L ’évolution de Schéma
 Inconvénients
• Ajout d ’une sous entité Dirigeant

Employé Cadre Dirigeant

nemp nom sal prime

• Impacts Département
sur le schéma
sur les contraintes d ’intégrité
D. Donsez, EA et BD, 1998-2007

sur les contraintes de domaines


sur les traitements
 Solution : l ’Objet-Relationnel ou l ’Objet Pur
25/09/2007
33

Transformation E/A
vers l ’Objet-Relationnel
 But
• Implantation du modèle E/A
sur un SGBD Objet-Relationnel
 Fonctionnalités disponibles
• pour les Sous-Entités
• Héritage de Type et Héritage de Table
• pour les Associations
• table indépendante ou collection imbriquée (tableau dimensionnable,
table imbriquée)
D. Donsez, EA et BD, 1998-2007

• clé étrangère ou référence d ’objet

• nombreuses solutions [Soutou99] pp84,93,103-105


25/09/2007
34

Héritage

 Héritage de Table
Mettre en correspondance les Sous-Entités avec des Sous
Tables
 Héritage de Type
• Même problème que pour le relationnel pur
• Utilisation des sous types dans le Push-Down
D. Donsez, EA et BD, 1998-2007
25/09/2007
35
Cas général :
Association Many-to-Many (i)
0..n 0..n
A R B A B
ka kb
cc B
ka aa kb bb aa bb
cc

Many-to-Many A ka aa R ra rb cc B kb bb
N-M ... ... ... ... ...

create type tA as object ( create table R ( create type tB as object (


ka …, aa …, ra REF(tA), rb REF(tB), kb …, bb …,
); cc …, );
D. Donsez, EA et BD, 1998-2007

create table A of tA ( primary key(ra,rb), create table B of tB (


primary key(ka) SCOPE FOR ra IS A, primary key(kb)
); SCOPE FOR rb IS B );
);
25/09/2007
36
Cas général :
Association Many-to-Many (ii)
0..n 0..n
Attention à la mise A R B A B
à jour des listes de refs ka kb
=> risque d ’incohérence ka aa kb bb aa bb

Many-to-Many A ka aa {rbs} B kb bb {ras}


N-M ... ... ... ...

create type tB as object; create or replace type tB


create type tA as object( as object (
ka …, aa …, kb …, bb …,
D. Donsez, EA et BD, 1998-2007

rbs varray(10) of REF(tB), ras varray(10) of REF(tA),


); );
create table A of tA ( create table B of tB (
primary key(ka), primary key(kb)
); );
25/09/2007
37
Cas général :
Association Many-to-Many (ii)
En UML: sens unidirectionnel de navigation (B vers A)

A B
ka kb
aa bb
Many-to-Many A ka aa B kb bb {ras}
N-M ... ... ... ...

create type tA as object( create type tB as object (


ka …, aa … kb …, bb …,
); ras varray(10) of REF(tA)
D. Donsez, EA et BD, 1998-2007

create table A of tA ( );
primary key(ka), create table B of tB (
); primary key(kb)
);
25/09/2007
38
Cas général :
Association One-To-One

A R B

ka aa kb bb

One-To-One A ka aa rb B kb bb ra
1,1 ... ... ... ...

create type tB as object; create or replace type tB as object (


create type tA as object ( kb …, bb …, ra REF(tA)
ka …, aa …, rb REF(tB) );
D. Donsez, EA et BD, 1998-2007

); create table B of tB (
create table A of tA ( primary key(kb),
primary key(ka), SCOPE FOR ra IS A
SCOPE FOR rb IS B );
);
25/09/2007
39

Bibliographie
 Roger Mounyol, "Merise par l'Exemple", Ed Ellispes, 1991, ISBN 2-7298-9114-5
 Chris Date, "Introduction aux Bases de Données", 6ème édition, Ed Intl Thomson Publ.
ISBN 2-84180-964-1, 970 pp
 Jeffrey D. Ullman, Jennifer Widom, "A First Course in Database Systems", 1ère édition,
Ed. Prentice Hall Engineering, Science & Math, Avril 1997, ISBN 0-13-861337-0, 470 pp.
 PPS Chen. The Entity-Relationship model toward a unified view of data. ACM
Transactions on Database Systems, March 1976.
 Michael Blaha, William Premerlani. Object-Oriented Modeling and Design for Database
Applications, Prentice Hall, Englewood Cliffs, New Jersey, 1998.
• http://www.omtassociates.com/Pages/papers.html
 Christian Soutou, "Objet-Relationnel sous Oracle8, Modélisation avec UML", Ed Eyrolles,
1999, ISBN 2-212-09063-3
• décrit bien les alternatives de conception des associations avec l ’objet-relationnel et avec le relationnel
 Christian Soutou, "De UML à SQL : Conception de bases de données", Ed Eyrolles,
D. Donsez, EA et BD, 1998-2007

2002, ISBN 2-212-11098-7


• La mise à jour du précedent
 Using UML to Design Database Applications
• http://www.umlchina.com/Indepth/usinguml.htm
• http://www.intelinfo.com/newly_researched_free_training/UML.html
25/09/2007
40

Annexe : Zoo de méthodes


D. Donsez, EA et BD, 1998-2007

dépendances d’après HDR Bruel