Vous êtes sur la page 1sur 41

Le modle relationnel

Le modle relationnel : dfinitions


Schmas et instances de relation
Passage dun schma E/A vers un schma relat.
Lalgbre relationnelle

Oprateurs de base
Oprateurs drivs
Exemples de requtes algbriques

Cours Bases de donnes (Licence)

2-1

Bases de donnes relationnelles


Modle de donnes relationnelles

organise les donnes dans des tables ou relations

Avantages :

Relation est un concept simple avec des fondements


mathmatiques solides (thorie des ensembles, logique du
premier ordre)
On peut dfinir des langages de requtes simples, puissants
et efficaces (techniques doptimisation performantes)
On a une thorie pour la conception (dpendances
fonctionnelles)
Il existe un standard : SQL

Cours Bases de donnes (Licence)

2-2

Schma relationnel
Un schma de relation R(A1: D1, A2: D2, , An: Dn) est
compos

dun nom de relation R et


dun ensemble dattributs A={A1, A2, , An} dfinis sur n
domaines de valeurs D={D1, D2, ..., Dn}
Autre notation (sans domaines): R(A1, A2, , An)

Un schma relationnel est un ensemble de schmas de


relations.

Cours Bases de donnes (Licence)

2-3

Schma relationnel (exemple)


EMP(ENO, ENAME, TITLE)
PROJ (PNO, PNAME, BUDGET)
WORKS(ENO,PNO, RESP, DUR)
PAY(TITLE, SALARY)

EMP
ENO ENAME
PROJ
PNO PNAME

Cours Bases de donnes (Licence)

BUDGET

WORKS
ENO PNO

Les attributs souligns sont les cls


(identificateurs de n-uplets)

TITLE

RESP

DUR

PAY
TITLE SALARY

2-4

Base de donnes relationnelle


Une relation r est un ensemble fini de n-uplets
<d1, d2, ..., dn>
Une relation r est une instance dun schma de
R(A1: D1, A2: D2, , An: Dn)
si r est un sous-ensemble du produit cartsien des domaines de
R (r D1 D2 Dn).
Une base de donnes relationnelle (BD) est dfinie par

un schma relationnelle R1, R2,.Rn et


un ensemble dinstances de R1, R2,.Rn (tables)

Gnralement on considre que pour chaque schma de relation


Ri, il existe exactement une instance quon note galement Ri.
Cours Bases de donnes (Licence)

2-5

BD relationnelle (exemple)
EMP

WORKS

ENO

ENAME

TITLE

E1
E2
E3
E4
E5
E6
E7
E8

J. Doe
M. Smith
A. Lee
J. Miller
B. Casey
L. Chu
R. Davis
J. Jones

Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer
Syst. Anal.
Elect. Eng.
Mech. Eng.
Syst. Anal.

ENO PNO

PROJ

E1
E2
E2
E3
E3
E4
E5
E6
E7
E7
E8

P1
P1
P2
P3
P4
P2
P2
P4
P3
P5
P3

RESP
Manager
Analyst
Analyst
Consultant
Engineer
Programmer
Manager
Manager
Engineer
Engineer
Manager

DUR
12
24
6
10
48
18
24
48
36
23
40

PAY

PNO

PNAME

BUDGET

TITLE

SALARY

P1
P2
P3
P4
P5

Instrumentation
Database Develop.
CAD/CAM
Maintenance
CAD/CAM

150000
135000
250000
310000
500000

Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer

55000
70000
45000
60000

Cours Bases de donnes (Licence)

2-6

Proprits du modle relationnel


Degr ou arit dune relation : nombre d'attributs
Cardinalit dune relation : nombre de n-uplets
Le modle relationnel est fond sur la thorie des ensembles:

pas d'ordre entre les attributs (noms)


pas d'ordre entre les n-uplets (ou n-uplets)

pas de n-uplets dupliqus (ensemble)

mais les rsultats de requtes peuvent tre tris


mais : les SGBD autorisent les doublons (multi-ensemble)

orient valeur: on distingue les n-uplet par leur valeurs

Les valeurs d'attributs sont atomiques :

pas de structures, ni ensembles, ni listes comme valeurs dun


attribut (1re forme normale)
Cours Bases de donnes (Licence)

2-7

Conception de schmas relationnels

Cours Bases de donnes (Licence)

2-8

Conception de schmas
relationnels
Une schma relationnel peut contenir des
centaines de tables avec des milliers dattributs.
Problme: comment viter des erreurs de
conception?
Deux solutions (complmentaires):

Gnration (automatique) partir dun schma E/A


Thorie des dpendances et normalisation (on verra
plus tard)

Cours Bases de donnes (Licence)

2-9

Rgles de passage dE/A vers un


schma relationnel
Pour chaque type dentit C avec les attributs A1, A2, , An

crer un schma de relation RC(A1, A2, , An)


cl de R = attributs cls de C

Pour chaque type dassociation A avec au moins un 1:1:

rajouter dans le schma de relation RC du type dentit C du ct du 1:1,


les cls des autres types dentit associs ainsi que les attributs de
lassociation.
la cl de RC ne change pas (sauf pour une entit faible).

Pour les autres associations A (1:N, N:M) :

crer un schma de relation RA avec les cls des types dentit relis et
les attributs de lassociation.
cl de RA = union des cls des types dentits associs

NB. Cas de lassociation avec 0:1?


Cours Bases de donnes (Licence)

2-10

#agence
#client
Client

1:1

domicilie

1:n

Agence

nom

adresse

Client( #client, nom, #agence)

Agence( #agence, adresse)


#compte

#client
Client

0:m

a_compte

1:n

Compte
solde

nom
depuis

Client(#client, nom)
Compte(#compte, solde)
Acompte(#client, #compte, depuis)
Cours Bases de donnes (Licence)

2-11

#agence
#client
Client

0:1

domicilie

1:n

Agence

nom

adresse

Client(#client, nom)
Agence(#agence, adresse)
Domicile(#client, #agence)
#bat
#salle
Salle

est_dans

1:n

Batiment

nb_places
La cl de lentit dominante fait partie de la cl de lentit faible
Salle( #salle, #bat, nbplaces)
Batiment(#bat, )
Cours Bases de donnes (Licence)

2-12

Spcialisation
#compte

#client
0:m
Client

1:n

a_compte

Compte
solde

nom
est_un

depuis
#carte
Carte

1:1

a_carte

1:n

CompteCheque

est_un

CompteEpargne

code
dec_autor

taux

Compte( #compte, solde) CompteCh(#compte, dec-aut) CompteEp(#compte, taux)


Si Compte est un type dntit abstrait (sans instances) :
CompteEp(solde, taux, #compte)
CompteCh(solde, dec-aut, #compte)
Cours Bases de donnes (Licence)

2-13

Interrogation dune base de


donnes relationnelle

Cours Bases de donnes (Licence)

2-14

Interrogation dune base de


donnes relationnelle
Langages algbriques :

Une requte est une composition doprations : algbre


relationnelle

Langages logiques :

Une requte est exprime par une formule logique :


calcul relationnel

Et SQL ?

smantique : calcul relationnel


valuation : algbre relationnelle
Cours Bases de donnes (Licence)

2-15

Algbre relationnelle
Oprateurs unaires :
<Oprateur><parametres> <Oprande> <Rsultat>

Oprateurs binaires :
<Oprande> <Oprateur><parametres> <Oprande> <Rsultat>

Langage ferm : les oprandes et les rsultats sont


toujours des relations composition doprations
Cours Bases de donnes (Licence)

2-16

Oprateurs de l'algbre relationnelle


Oprateurs de base :

slection
projection
produit cartsien
oprations ensemblistes: union, diffrence
renommage

Oprateurs drivs :

intersection
jointure
division

Cours Bases de donnes (Licence)

2-17

Slection
Slection dun sous-ensemble de la relation oprande :
F(R)={t | tR et F(t) est vrai}
o
R est une relation, t est un n-uplet variable
F est une formule logique sans quantificateur
compose de

oprandes: constantes et attributs


oprateurs de comparaison :<, >, =, , ,
oprateurs logiques : , ,

Cours Bases de donnes (Licence)

2-18

Exemple de slection
EMP
ENO ENAME
E1
E2
E3
E4
E5
E6
E7
E8

J. Doe
M. Smith
A. Lee
J. Miller
B. Casey
L. Chu
R. Davis
J. Jones

TITLE
Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer
Syst. Anal.
Elect. Eng.
Mech. Eng.
Syst. Anal.

Cours Bases de donnes (Licence)

TITLE='Elect. Eng.'(EMP)
ENO ENAME
E1
E6

TITLE

J. Doe Elect. Eng


L. Chu Elect. Eng.

2-19

Projection
Projection sur un ensemble dattributs d'une relation
A1,,An(R)={t.A1 An | tR}
R est une relation, t est une variable n-uplet
{A1,, An} est un sous-ensemble des attributs de R
Note:
La projection de lalgbre limine les n-uplets
doublons (smantique ensemliste).
SQL permet la projection avec (distinct) et sans
limination des doublons (par dfaut)
Cours Bases de donnes (Licence)

2-20

Exemple de projection
PROJ
PNO

PNAME

PNO,BUDGET(PROJ)

BUDGET

P1 Instrumentation
150000
P2 Database Develop. 135000
P3 CAD/CAM

250000

P4 Maintenance
P5 CAD/CAM

310000
500000

PNO

BUDGET

P1

150000

P2

135000

P3
P4
P5

250000
310000
500000

PNAME(PROJ)
PNAME
Instrumentation
Database Develop.
CAD/CAM
Maintenance
Cours Bases de donnes (Licence)

2-21

Produit cartsien
Produit cartsien entre deux tables :
R S = {t.A1Ak1 Ak1+1Ak1+k2 | t.A1Ak1R et
t.Ak1+1Ak1+k2 S}
ou
R est une table de degr k1 , cardinalit n1
S est une table de degr k2 , cardinalit n2
Le rsultat est une relation de degr (k1+ k2) et contient
(n1* n2) n-uplets, o chaque n-uplet est la concatnation
d'un n-uplet de R avec un n-uplet de S.
Cours Bases de donnes (Licence)

2-22

Exemple de produit cartsien


EMP PAY

EMP
ENO

ENAME

TITLE

E1
E2
E3
E4
E5
E6
E7
E8

J. Doe
M. Smith
A. Lee
J. Miller
B. Casey
L. Chu
R. Davis
J. Jones

Elect. Eng
Syst. Anal.
Mech. Eng.
Programmer
Syst. Anal.
Elect. Eng.
Mech. Eng.
Syst. Anal.

PAY
TITLE

SALARY

Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer

55000
70000
45000
60000

ENO

ENAME

EMP.TITLE PAY.TITLE SALARY

E1
E1
E1
E1
E2
E2
E2
E2
E3
E3
E3
E3

J. Doe
J. Doe
J. Doe
J. Doe
M. Smith
M. Smith
M. Smith
M. Smith
A. Lee
A. Lee
A. Lee
A. Lee

Elect. Eng.
Elect. Eng.
Elect. Eng.
Elect. Eng.
Syst. Anal.
Syst. Anal.
Syst. Anal.
Syst. Anal.
Mech. Eng.
Mech. Eng.
Mech. Eng.
Mech. Eng.

Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer
Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer
Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer

55000
70000
45000
60000
55000
70000
45000
60000
55000
70000
45000
60000

E8
E8
E8
E8

J. Jones
J. Jones
J. Jones
J. Jones

Syst. Anal.
Syst. Anal.
Syst. Anal.
Syst. Anal.

Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer

55000
70000
45000
60000

Cours Bases de donnes (Licence)

2-23

Union
Union ensembliste entre deux tables :
R S={t | tR ou tS}
o R et S sont des relations, t est une variable n-uplet
Le rsultat contient les n-uplets qui sont dans R ou
dans S (limination des doublons)
Contrainte : les schmas de R et S doivent tre
compatibles pour lunion (mme arit et domaines
dattributs);
Cours Bases de donnes (Licence)

2-24

Diffrence
Diffrence ensembliste entre deux tables :
R S={t | tR et tS}
o
R et S sont des relations, t est une variable n-uplet
Le rsultat contient tous les n-uplets qui sont dans
R, mais pas dans S
R doivent tre S compatibles pour lunion.
Cours Bases de donnes (Licence)

2-25

Oprateurs de l'algbre relationnelle


Oprateurs de base :

slection
projection
produit cartsien
oprations ensemblistes: union, diffrence
renommage

Oprateurs drivs :

intersection
jointure
division

Cours Bases de donnes (Licence)

2-26

Intersection
Intersection de deux tables:
R S = {t | tR et tS}
= R (R S)
o
R, S sont deux tables compatibles pour l'union.

Cours Bases de donnes (Licence)

2-27

Notations et renommage
Soit R une table et t un n-uplet (on dira aussi tuple)

t.A dsigne la valeur de lattribut A pour le n-uplet t

t.A1A2..An dsigne le n-uplet (t.A1, t.A2,..., t.An )

R.A dsigne lattribut A de la table R

Renommage : soit R(A1, A2An ) le schma de la table R:

Ai Bi

= R(A1, A2, Bi ,An )

Changement du schma de R: On change le nom de


lattribut Ai.

Les n-uplets (linstance R) ne changent pas.


Cours Bases de donnes (Licence)

2-28

Renommage
Renommage de plusieurs attributs dune table :
A1,,An B1,,Bn (R) = {t | tR et t.Bi = t.Ai pour i=1n}
o

R est une relation, t est une variable n-uplet


{A1,, An} est un sous-ensemble des attributs de R
{B1,, Bn} est un ensemble dattributs

Exemple

EMP(ENO, TITLE, ENAME)

TITLE,ENAME JOB, NOM (EMP) change le schma de la relation EMP


en EMP (ENO, NOM, JOB)

Cours Bases de donnes (Licence)

2-29

Jointure
R

FS

= {t.A1AnB1Bm| t.A1AnR et t.B1BmS


et F est vrai}

o
R et S sont des relations
t est une variable n-uplet
F est une formule logique compose datomes de la
forme Ai Bj o {<, >, =, , , }.
La jointure sexprime aussi par un produit cartsien suivi
dune slection: R F S = F(R S)
Cours Bases de donnes (Licence)

2-30

Exemple de jointure

EMP
ENO

ENAME

TITLE

E1
E2
E3
E4
E5
E6
E7
E8

J. Doe
M. Smith
A. Lee
J. Miller
B. Casey
L. Chu
R. Davis
J. Jones

Elect. Eng
Syst. Anal.
Mech. Eng.
Programmer
Syst. Anal.
Elect. Eng.
Mech. Eng.
Syst. Anal.

EMP

EMP. ENAME TITLE


ENO.

WORKS
ENO PNO

RESP

EMP.ENO>WORKS.ENOWORKS

DUR

E1
E2
E2
E3
E3
E4
E5
E6
E7
E7

P1
P1
P2
P3
P4
P2
P2
P4
P3
P5

Manager
Analyst
Analyst
Consultant
Engineer
Programmer
Manager
Manager
Engineer
Engineer

12
24
6
10
48
18
24
48
36
23

E8

P3

Manager

40

E2
E3
E3
E3
E4
E4
E4
E4
E4
E5
E5
E5
E5
E5
E5
E6
E6
E6
E6
E6
E6
E6

M. Smith
A. Lee
A. Lee
A. Lee
J. Miller
J. Miller
J. Miller
J. Miller
J. Miller
B. Casey
B. Casey
B. Casey
B. Casey
B. Casey
B. Casey
L. Chu
L. Chu
L. Chu
L. Chu
L. Chu
L. Chu
L. Chu

Cours Bases de donnes (Licence)

Syst. Anal.
Mech. Eng.
Mech. Eng.
Mech. Eng.
Programmer
Programmer
Programmer
Programmer
Programmer
Syst. Anal.
Syst. Anal.
Syst. Anal.
Syst. Anal.
Syst. Anal.
Syst. Anal.
Elect. Eng.
Elect. Eng.
Elect. Eng.
Elect. Eng.
Elect. Eng.
Elect. Eng.
Elect. Eng.

WORKS. PNO RESP


ENO
E1
E1
E2
E2
E1
E2
E2
E3
E3
E1
E2
E2
E3
E3
E4
E1
E2
E2
E3
E3
E4
E5

P1
P1
P1
P2
P1
P1
P2
P3
P4
P1
P1
P2
P3
P4
P2
P1
P1
P2
P3
P4
P2
P2

Manager
Manager
Analyst
Analyst
Manager
Analyst
Analyst
Consultant
Engineer
Manager
Analyst
Analyst
Consultant
Engineer
Programmer
Manager
Analyst
Analyst
Consultant
Engineer
Programmer
Manager

DUR
12
12
24
6
12
24
6
10
48
12
24
6
10
48
18
12
24
6
10
48
18
24

2-31

Types de jointure
-jointure

la formule F utilise les comparaisons <, >, , ,

Equi-jointure

la formule F n'utilise que lgalit : =


R R.A=S.B S

Jointure naturelle : R(X,Y), S(X, Y)

Equi-jointure o on limine les attributs en communs


R S = R.X, R.Y, S.Y F (R S) = S.X, R.Y, S.Y F (R S)
la condition de jointure F est R.X = S.X (X reprsente
tous les attributs en commun entre R et S)
Cours Bases de donnes (Licence)

2-32

Exemple de jointure naturelle


EMP
ENO

ENAME

TITLE

E1
E2
E3
E4
E5
E6
E7
E8

J. Doe
M. Smith
A. Lee
J. Miller
B. Casey
L. Chu
R. Davis
J. Jones

Elect. Eng
Syst. Anal.
Mech. Eng.
Programmer
Syst. Anal.
Elect. Eng.
Mech. Eng.
Syst. Anal.

PAY
TITLE

SALARY

Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer

55000
70000
45000
60000

Cours Bases de donnes (Licence)

EMP

PAY

ENO ENAME

TITLE

SALARY

E1

J. Doe

Elect. Eng.

55000

E2

M. Smith

Analyst

70000

E3

A. Lee

Mech. Eng.

45000

E4

J. Miller

Programmer 60000

E5

B. Casey

Syst. Anal.

70000

E6

L. Chu

Elect. Eng.

55000

E7
E8

R. Davis
J. Jones

Mech. Eng.
Syst. Anal.

45000
70000

2-33

Division
Soient les relations R et S tels que le schma de S
contient tous les attributs de R, alors on peut
rordonner les attributs de R tel que
R(A1,,Ak,Ak+1,,Ak+n) est de degr k+n et
S(A1,,Ak) de degr k.
La division de R par S :
T(Ak+1,,Ak+n)= R S
est une relation de degr n qui contient tous les nuplets t tels que {t} S R.
Cours Bases de donnes (Licence)

2-34

Exemple de division
PROJ

EMP
ENO PNO
E1
E2
E2
E3
E3
E4
E5
E6
E7
E8
E3
E3

P1
P1
P2
P1
P4
P2
P2
P4
P3
P3
P2
P3

PNAME
Instrumentation
Instrumentation
Database Develop.
Instrumentation
Maintenance
Instrumentation
Instrumentation
Maintenance
CAD/CAM
CAD/CAM
Database Develop.
CAD/CAM

BUDGET
150000
150000
135000
150000
310000
150000
150000
310000
250000
250000
135000
250000

Cours Bases de donnes (Licence)

PNO

PNAME

BUDGET

P1

Instrumentation

150000

P2

Database Develop. 135000

P3

CAD/CAM

250000

P4

Maintenance

310000

EMPPROJ
ENO
E3

2-35

Expression de la division
R

X
x1
x2
x3
x4
x1
x3
x2
x3
x4
x1
x2
x3

Y
y1
y1
y1
y1
y2
y2
y3
y3
y3
y4
y4
y4

X
x1
x2
x3

T1 Y(R)
T2 Y((S T1) R)
T T1 T2
T

Y
y1
y4

Cours Bases de donnes (Licence)

2-36

Requtes algbriques
Emp (Eno, Ename, Title, City)
Pay(Title, Salary)
Project(Pno, Pname, Budget, City)
Works(Eno, Pno, Resp, Dur)

Villes o il y a des employs ou des projets?

City(Emp) City(Project)

Villes o il y a des projets mais pas d'employs?

City(Project) City(Emp)
Cours Bases de donnes (Licence)

2-37

Requtes algbriques
Emp (Eno, Ename, Title, City) Project(Pno, Pname, Budget, City)
Pay(Title, Salary)
Works(Eno, Pno, Resp, Dur)

Noms des projets de budget > 225?

Pname(Budget>225 (Project))

Noms et budgets des projets o travaille l'employ E1?

Pname, Budget(Project

Pname, Budget(Project.Pno=Works.Pno (Project Eno=E1 (Works)))

(Eno=E1 (Works)))

Employs qui travaillent dans chaque projet?

Eno, Pno(Works) Pno(Project)


Cours Bases de donnes (Licence)

2-38

Arbre algbrique
Utile pour manipuler les requtes (optimisation, vues)
Exemple

Pname, Budget(Project

(Eno=E1 (Works)))
Pname, Budget

Eno=E1

Project

Works
Cours Bases de donnes (Licence)

2-39

Mise jour d'une BD


relationnelle
Avec les oprateurs relationnels

Insertion de n-uplets = union de la relation contenant


les n-uplets insrer avec la relation dj existante dans
la base
Suppression de n-uplets = diffrence entre la relation
existante dans la base et la relation contenant les nuplets supprimer
Modification = suppression suivie d'une insertion

Cours Bases de donnes (Licence)

2-40

Requtes sur la base du poly


1.
2.
3.
4.
5.
6.
7.

Liste des parents (nb. n-uplets du rsultat ?)


Liste des enfants de Raymond ?
Liste des enfants non scolariss
Liste des grands-parents et petits-enfants (renommage)
Combien Toto a-t-il denfants ?
Qui a au moins deux enfants ?
Qui a un enfant dans chaque cole de la base ?

Cours Bases de donnes (Licence)

2-41