Vous êtes sur la page 1sur 34

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

Donsez/cours

Le Modle Entit-Association (et UML)


et les Bases de Donnes Relationnelles

Didier DONSEZ
Universit Joseph Fourier
PolyTechGrenoble - LIG/ADELE
Didier.Donsez@imag.fr
Didier.Donsez@ieee.org

25/09/2007

Motivations
 Modle Entit/Association (Entity/Relationship)
point de dpart aux MCD de nombreuses mthodes
Merise, OMT, UML,

extension objet (hritage)

 Modle Relationnel
modle de base pour les SGBDs relationnels
>70 % des applications SI
D. Donsez, EA et BD, 1998-2007

thorie de la normalisation
suppression des redondances
mais il faut dterminer toutes les dpendances fonctionnelles

 Transformation E/A vers le Relationnel

25/09/2007

Modle 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
numss

nom adresse anne

Cours
code

titre

 Base pour de nombreux autres mthodologies


D. Donsez, EA et BD, 1998-2007

Merise, OMT, Booch, , Diagramme de classes UML (1 & 2)


Etudiant
numss
nom
adresse

0..n

0..n

Suivre
anne

Cours
code
titre
heure

heures

25/09/2007

Les Cls
 Une entit a une et une seule cl
 mme si plusieurs cls sont candidates
les attributs cl sont souligns

D. Donsez, EA et BD, 1998-2007

Cours

formation intitul

salle

Cours

heure

formation intitul

salle

heure

25/09/2007

Choisir une Cl
 Naturelle (Natural)
Attribut seul ou composition d attributs
doit toujours tre renseign (NOT NULL)

Remarque : Attribut cl reprsentant une composition


ISBN : numro intl d diteur + numro d ouvrage
GENCOD, EAN, SKU : numro intl de fabricant + numro de produit

cl d une entit faible

D. Donsez, EA et BD, 1998-2007

 Artificielle (Surrogate)
introduction d un attribut artificiel n appartenant pas au
systme dcrit.
performance en comparaison
compacit du stockage
souvent employ pour les bases dcisionnelles

25/09/2007

Cardinalits des Assocations


Multiplicity of Relationships
A

D. Donsez, EA et BD, 1998-2007

Many-to-many
N-M
0,n - 0,n
E/A

UML A

R
0..n

0..n

One-to-one
1-1
0,1 - 0,1

Many-to-one
N-1
0,n - 0,1
B

R
0..n

0..1

R
0..1

0..1

25/09/2007

Associativit Many-to-One

Etudiants

D. Donsez, EA et BD, 1998-2007

Se lit : Un tudiant est encadr


que par un enseignant

Encadrant
de Stage

Enseignants

Se lit : Un enseignant encadre


plusieurs tudiants

25/09/2007

Association n-Aire
Plusieurs entits peuvent participer la mme associations

 Exemple d un association ternaire

Etudiants

D. Donsez, EA et BD, 1998-2007

numss

nom

Enseigne

adresse

TDs

codcours

Assistants

numemp

nom

bureau

titre

coef

25/09/2007

Modle Entit-Association
Entity-Relationship Model
Etudiants

Suivre

Cours

anne

D. Donsez, EA et BD, 1998-2007

Etudiants

Suivre
Anne
anne

Cours

25/09/2007

10

Rles dans une association


Rles asymtrique / symtrique
Couple
poux

Ami
pouse

D. Donsez, EA et BD, 1998-2007

Personne

Personne

poux

pouse

Joseph
Sanson

Marie
Dalida

1
Pierre
Paul

2
Paul
Jean

25/09/2007

11

Les Entits Faibles (Weak Entity)


 Parfois, un attribut de la cl d une entit (dite faible)
provient d une autre entit
 Exemple
Logins

Machines

nom

D. Donsez, EA et BD, 1998-2007

Produit

nserie

Instance de

nom

Modle

code

fabriquer

Marque

nom

 Remarque
Certains attributs cls sont composs et forme la cl dune entit faible
ISBN, GENCOD, EAN, SKU, IBAN,

25/09/2007

13

Transformation E/A vers Relationnel


 But
Implantation du modle E/A sur un SGBD rel

 Mthode

D. Donsez, EA et BD, 1998-2007

transformation
des associations n-aires en associations binaires
1 entit = 1 relation
1 association = dpendant de sa cardinalit

 Cas de navigation restriente


Employ
nemp
nom
sal

appartient >

1..n

Service
1

nom
adr

25/09/2007

14

Cas gnral : Association Many-to-Many


A
ka
Many-to-Many

D. Donsez, EA et BD, 1998-2007

N-M
create table A (
ka , aa ,
primary key(ka)
)

ka
...

aa
...

aa
R

cc

kb bb

ka
...

kb
...

cc
...

0..n

A
ka
aa

0..n

B
cc
B

kb bb
... ...

create table R (
create table B (
ka , kb , cc ,
kb , bb ,
primary key(ka,kb),
primary key(kb)
foreign key (ka) references A, )
foreign key (kb) references B
)

B
kb
bb

25/09/2007

15

Cas d une Association Many-to-One


A
Cot des jointures !

A
Many-to-One

D. Donsez, EA et BD, 1998-2007

N-1

ka
...
A

ka

cc

kb bb

aa
...
ka
...

aa

aa
...

kb
...

ka
...
cc
...

create table A (
ka , kb , aa, cc ,
primary key(ka),
foreign key (kb) references B
check(cc IS NULL
OR kb IS NOT NULL)
)

kb
...

0..n

A
ka
aa

B
cc
B

cc
...
B

0..1

kb bb
... ...

kb bb
... ...

create table B (
kb , bb ,
primary key(kb)
)

B
kb
bb

25/09/2007

16

Cas d une Association One-to-One


A
Cot des jointures !
A
One-to-One

ka
...

ka

aa
R

aa
...

cc

kb bb

ka
...

kb
...

0..1

A
ka
aa

B
cc
B

cc
...

0..1

kb bb
... ...

D. Donsez, EA et BD, 1998-2007

1-1
A

ka
...

aa
...

ka
...

aa
...

kb
...

cc
...
B

kb bb
... ...

kb bb
... ...
ka
...

cc
...

B
kb
bb

25/09/2007

17

Cas d une Association avec des Rles


A

rle 2
A

R
aa

cc

R krole1 krole2 cc
...
...
...

aa
...

create table A (
ka , aa ,
primary key(ka)
)

rle1
ka

ka
...

create table R (
krole1 , krole2 , cc ,
primary key(krole1, krole2),
foreign key (krole1) references A,
foreign key (krole2) references A
)

D. Donsez, EA et BD, 1998-2007

 Rle symtrique et One-To-One


quel est le danger de cette modlisation ?
A

ka
...

aa krole2 cc
...
...
...

Rle Symtrique
et One-to-One

25/09/2007

18

Cas de l entit faible (Weak Entity)


A
ka

D. Donsez, EA et BD, 1998-2007

ka
...

aa
...

R
aa
kb
...

cc
cc
...

A
ka
aa

B
kb bb
B

create table A (
create table B (
ka , kb ,
kb , bb ,
aa, cc ,
primary key(kb)
primary key(ka,kb),
)
- - diffrent du cas N-to-1
foreign key (kb) references B
)

 Cas de laggrgation en UML

0..n

kb bb
... ...

0..1

B
cc

B
kb
bb

25/09/2007

19

Cas de navigation restreinte


 La navigation est unidirectionnelle
 Exemple
Hotel

D. Donsez, EA et BD, 1998-2007

nom
adr

Hberge

Client
nom
adr

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 schma suivant
D. Donsez, EA et BD, 1998-2007

attention l ordre des noms


Machines

nom

Domaines
Secondaires
nom

Domaines
Primaires
nom

25/09/2007

21

Exercices
de transformation E/A vers Relationnel
 Exercice 3
transformez le schma suivant
#client
Client

Prfre

nom
Date

D. Donsez, EA et BD, 1998-2007

date
Produit
#serie

sav

Modle

#mod design

cc

Marque
#mar

nom

25/09/2007

23

Le Cas des Sous Entits (i)


Employ
nemp nom

sal

Cadre

Empl

Cadre

prime

nemp
nom
sal

prime

1 - Separation
Emp nemp
100
200

nom
Dupond
Durant

sal

Cadre nemp

5000
20000

200

prime
10000

D. Donsez, EA et BD, 1998-2007

Cadre.nemp est une cl trangre sur Emp

2 - Push down
Emp nemp
100

nom
Dupond

sal
5000

Cadre nemp
200

nom
Durant

sal
20000

CI : {Emp.nemp}
{Cadre.emp} =

prime
10000

25/09/2007

25

Le Cas des Sous Entits (ii)


Employ
nemp nom

Cadre

Empl

Cadre
prime

prime

nemp
nom
sal

sal

3 - Push Up

D. Donsez, EA et BD, 1998-2007

Emp

nemp

nom

100
200

Dupond
Durant

sal
5000
20000

prime
NULL
10000

25/09/2007

27

Le Cas des Sous Entits (iii)

D. Donsez, EA et BD, 1998-2007

 Inconvnients

Jointure pour reconstituer Cadre

Union pour reconstituer Employ

Pas de distinction entre un Employe


et un Cadre avec une prime NULL
en gnral, pas d abstraction dans les Traitements

25/09/2007

28

Amlioration du Cas 3 - Push Up


Employ
nemp nom

Emp typemp
EMP
CAD

sal

Cadre

Empl

Cadre
prime

prime

nemp
nom
sal

nemp

nom

100
200

Dupond
Durant

sal
5000
20000

prime

Emp typemp

NULL
10000

D. Donsez, EA et BD, 1998-2007

Emp.typemp est une cl trangre


CI : Emp.typemp =EMP prime=NULL

Emp typemp
EMP
CAD

nemp

nom

100
200

Dupond
Durant

sal
5000
20000

prime
NULL
10000

Domaine typemp, CD typeemp IN (EMP,CAD)


CI : Emp.typemp =EMP prime=NULL

EMP
CAD

25/09/2007

30

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

prime

Ouvrier

equipe

Employ
nemp nom

D. Donsez, EA et BD, 1998-2007

Emp typemp
OUV
CAD

sal

nemp

nom

100
200

Dupond
Durant

sal
5000
20000

prime
NULL
10000

equipe
Nuit
NULL

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 Schma
 Inconvnients
Ajout d une sous entit Dirigeant
Employ
nemp

nom

Cadre
sal

prime
Dpartement

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

Dirigeant

sur le schma
sur les contraintes d intgrit
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 modle E/A
sur un SGBD Objet-Relationnel

 Fonctionnalits disponibles
pour les Sous-Entits
Hritage de Type et Hritage de Table

D. Donsez, EA et BD, 1998-2007

pour les Associations


table indpendante ou collection imbrique (tableau dimensionnable,
table imbrique)
cl trangre ou rfrence d objet
nombreuses solutions [Soutou99] pp84,93,103-105

25/09/2007

34

Hritage
 Hritage de Table
Mettre en correspondance les Sous-Entits avec des Sous
Tables

 Hritage de Type

D. Donsez, EA et BD, 1998-2007

Mme problme que pour le relationnel pur


Utilisation des sous types dans le Push-Down

25/09/2007

35

Cas gnral :
Association Many-to-Many (i)
A
ka
Many-to-Many

D. Donsez, EA et BD, 1998-2007

N-M

ka
...

create type tA as object (


ka , aa ,
);
create table A of tA (
primary key(ka)
);

aa
...

aa
R

cc

kb bb

ra

rb

create table R (
ra REF(tA), rb REF(tB),
cc ,
primary key(ra,rb),
SCOPE FOR ra IS A,
SCOPE FOR rb IS B
);

cc
...

0..n

A
ka
aa

0..n

B
cc
B

B
kb
bb

kb bb
... ...

create type tB as object (


kb , bb ,
);
create table B of tB (
primary key(kb)
);

25/09/2007

36

Cas gnral :
Association Many-to-Many (ii)
A

Attention la mise
jour des listes de refs
=> risque d incohrence

Many-to-Many

D. Donsez, EA et BD, 1998-2007

N-M

ka
ka
...

R
aa

aa {rbs}
...

create type tB as object;


create type tA as object(
ka , aa ,
rbs varray(10) of REF(tB),
);
create table A of tA (
primary key(ka),
);

B
kb bb
B

A
ka
aa

0..n

0..n

kb bb {ras}
... ...
create or replace type tB
as object (
kb , bb ,
ras varray(10) of REF(tA),
);
create table B of tB (
primary key(kb)
);

B
kb
bb

25/09/2007

Cas gnral :
Association Many-to-Many (ii)
En UML: sens unidirectionnel de navigation (B vers A)
A
ka
aa
Many-to-Many

D. Donsez, EA et BD, 1998-2007

N-M

ka
...

aa
...

create type tA as object(


ka , aa
);
create table A of tA (
primary key(ka),
);

B
kb
bb
B

kb bb {ras}
... ...
create type tB as object (
kb , bb ,
ras varray(10) of REF(tA)
);
create table B of tB (
primary key(kb)
);

37

25/09/2007

38

Cas gnral :
Association One-To-One
A
ka
One-To-One

D. Donsez, EA et BD, 1998-2007

1,1

ka
...

aa
...

create type tB as object;


create type tA as object (
ka , aa , rb REF(tB)
);
create table A of tA (
primary key(ka),
SCOPE FOR rb IS B
);

R
aa

rb

B
kb bb
B

kb bb
... ...

ra

create or replace type tB as object (


kb , bb , ra REF(tA)
);
create table B of tB (
primary key(kb),
SCOPE FOR ra IS A
);

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 Donnes", 6me dition, Ed Intl Thomson Publ.
ISBN 2-84180-964-1, 970 pp
 Jeffrey D. Ullman, Jennifer Widom, "A First Course in Database Systems", 1re 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, Modlisation avec UML", Ed Eyrolles,


1999, ISBN 2-212-09063-3
D. Donsez, EA et BD, 1998-2007

dcrit bien les alternatives de conception des associations avec l objet-relationnel et avec le relationnel

 Christian Soutou, "De UML SQL : Conception de bases de donnes", Ed Eyrolles,


2002, ISBN 2-212-11098-7

La mise jour du prcedent

 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

D. Donsez, EA et BD, 1998-2007

Annexe : Zoo de mthodes

dpendances

daprs HDR Bruel