Escolar Documentos
Profissional Documentos
Cultura Documentos
Oprateurs de base
Oprateurs drivs
Exemples de requtes algbriques
2-1
Avantages :
2-2
Schma relationnel
Un schma de relation R(A1: D1, A2: D2, , An: Dn) est
compos
2-3
EMP
ENO ENAME
PROJ
PNO PNAME
BUDGET
WORKS
ENO PNO
TITLE
RESP
DUR
PAY
TITLE SALARY
2-4
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
2-6
2-7
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):
2-9
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
2-10
#agence
#client
Client
1:1
domicilie
1:n
Agence
nom
adresse
#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
2-13
2-14
Langages logiques :
Et SQL ?
2-15
Algbre relationnelle
Oprateurs unaires :
<Oprateur><parametres> <Oprande> <Rsultat>
Oprateurs binaires :
<Oprande> <Oprateur><parametres> <Oprande> <Rsultat>
2-16
slection
projection
produit cartsien
oprations ensemblistes: union, diffrence
renommage
Oprateurs drivs :
intersection
jointure
division
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
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.
TITLE='Elect. Eng.'(EMP)
ENO ENAME
E1
E6
TITLE
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
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
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
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
slection
projection
produit cartsien
oprations ensemblistes: union, diffrence
renommage
Oprateurs drivs :
intersection
jointure
division
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.
2-27
Notations et renommage
Soit R une table et t un n-uplet (on dira aussi tuple)
Ai Bi
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
Exemple
2-29
Jointure
R
FS
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
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
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.
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
Equi-jointure
2-32
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
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
PNO
PNAME
BUDGET
P1
Instrumentation
150000
P2
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
2-36
Requtes algbriques
Emp (Eno, Ename, Title, City)
Pay(Title, Salary)
Project(Pno, Pname, Budget, City)
Works(Eno, Pno, Resp, Dur)
City(Emp) City(Project)
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)
Pname(Budget>225 (Project))
Pname, Budget(Project
(Eno=E1 (Works)))
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
2-40
2-41