Documente Academic
Documente Profesional
Documente Cultură
Donsez/cours
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,
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
25/09/2007
Cours
code
titre
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
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)
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
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
Encadrant
de Stage
Enseignants
25/09/2007
Association n-Aire
Plusieurs entits peuvent participer la mme associations
Etudiants
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
Etudiants
Suivre
Anne
anne
Cours
25/09/2007
10
Ami
pouse
Personne
Personne
poux
pouse
Joseph
Sanson
Marie
Dalida
1
Pierre
Paul
2
Paul
Jean
25/09/2007
11
Machines
nom
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
Mthode
transformation
des associations n-aires en associations binaires
1 entit = 1 relation
1 association = dpendant de sa cardinalit
appartient >
1..n
Service
1
nom
adr
25/09/2007
14
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
A
Many-to-One
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
ka
...
ka
aa
R
aa
...
cc
kb bb
ka
...
kb
...
0..1
A
ka
aa
B
cc
B
cc
...
0..1
kb bb
... ...
1-1
A
ka
...
aa
...
ka
...
aa
...
kb
...
cc
...
B
kb bb
... ...
kb bb
... ...
ka
...
cc
...
B
kb
bb
25/09/2007
17
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
)
ka
...
aa krole2 cc
...
...
...
Rle Symtrique
et One-to-One
25/09/2007
18
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
)
0..n
kb bb
... ...
0..1
B
cc
B
kb
bb
25/09/2007
19
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
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
date
Produit
#serie
sav
Modle
#mod design
cc
Marque
#mar
nom
25/09/2007
23
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
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
Cadre
Empl
Cadre
prime
prime
nemp
nom
sal
sal
3 - Push Up
Emp
nemp
nom
100
200
Dupond
Durant
sal
5000
20000
prime
NULL
10000
25/09/2007
27
Inconvnients
25/09/2007
28
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
Emp typemp
EMP
CAD
nemp
nom
100
200
Dupond
Durant
sal
5000
20000
prime
NULL
10000
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
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
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
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
25/09/2007
34
Hritage
Hritage de Table
Mettre en correspondance les Sous-Entits avec des Sous
Tables
Hritage de Type
25/09/2007
35
Cas gnral :
Association Many-to-Many (i)
A
ka
Many-to-Many
N-M
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
... ...
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
N-M
ka
ka
...
R
aa
aa {rbs}
...
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
N-M
ka
...
aa
...
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
1,1
ka
...
aa
...
R
aa
rb
B
kb bb
B
kb bb
... ...
ra
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
dcrit bien les alternatives de conception des associations avec l objet-relationnel et avec le relationnel
http://www.umlchina.com/Indepth/usinguml.htm
http://www.intelinfo.com/newly_researched_free_training/UML.html
25/09/2007
40
dpendances