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

Chapitre 5

Comprendre SQL grce


lAlgbre Relationnelle

1
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Langage de requtes pour les BDs
relationnelles (1/2)
Langage de requtes : ils permettent de
manipuler et de retrouver des donnes dune
base de donnes

Le modle relationnel supporte des requtes


simples et expressives
Les langages de requtes pour les BDs
relationnelles sont fonds sur des bases
formelles solides (logique du premier ordre)

2
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Langage de requtes pour les BDs
relationnelles (2/2)

Langage de requtes langage de


programmation
Un langage de requtes na pas pour but
dtre utilis pour faire des traitements ou
calculs complexes

But : tre facile dutilisation et offrir un


accs efficace aux donnes

3
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Langages de requtes formels

2 langages de requtes formels existent


(fondement de SQL)
Lalgbre relationnelle : langage oprationnel,
une requte scrit comme une succession
doprations effectues sur des relations
Calcul relationnel : langage dclaratif, une
requte scrit comme la spcification du
rsultat attendu (sous forme logique)

4
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Prliminaire 1
Une requte sapplique des instances
de relations et le rsultat dune requte
est aussi une instance de relation
Autrement dit : Une requte se pose sur des
tables qui ont un contenu (potentiellement
vide) et renvoie une table avec un contenu
(potentiellement vide)
Rsultat de Q
R1 : table R2 : table Requte Q = une table
prenant en
entre R1 et
R2

5
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Prliminaire 2

Le schma du rsultat dune requte


sera toujours le mme, quelque soit le
contenu des relations
La table rsultat dune requte mettra toujours
en jeu les mmes attributs (quelque soit le
contenu !)

6
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Prliminaire 3
Les schmas des relations prises en
entres par une requte sont fixs
Une requte sexprime grce des noms
dattributs et de tables
Mais une requte ne doit jamais
dpendre des instances des relations
Aucune connaissance du contenu des tables
ne doit tre ncessaire pour bien comprendre
la requte

7
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Algbre relationnelle
Oprateurs de base
Slection ( ), Projection (), Produit cartsien (X),
Diffrence (\ ou -) et Union (U)
Autres oprateurs
Intersection, jointure, division, renomage: trs utiles
aussi !

Puisque chaque oprateur appliqu une


relation renvoie une relation, les oprateurs
peuvent tre imbriqus (clture de lAlgbre
relationnelle)
8
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Projection : introduction

Notation :
A1,,Ap(R) avec r relation et
A1,,Ap attributs de R

Supprime les attributs qui sont diffrents des


attributs de la liste de projection (A1,,Ap)

Le schma du rsultat contient exactement les


champs de la liste de projection (A1,,Ap)

NB : Loprateur de projection limine les


redondances (ce nest pas le cas en SQL)
9
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Projection : exemple

Q1= NumClient, DateRes(Reservation)

Reservation Q1
NumRes Classe DateRes NumClient NumClient DateRes
001
1 18/11/2007 17902567 17902567 18/11/2007
002 2 19/11/2007 2780289 2780289 19/11/2007

NB : la projection est un oprateur qui nagit pas sur


les lignes du rsultat mais sur les colonnes (cest--
dire sur le schma)
10
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Projection : Dfinition formelle
Input
r une relation de schma R


X un ensemble dattributs tels que X R
Output
X(r)={t(X) / t r}
O t(X) est la restriction de t sur les attributs de X

Ensemble des n-uplets de r restreints aux


attributs de X
Le schma de X(r) est X
11
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Slection : introduction

Slection des n-uplets (lignes) qui


satisfont la condition de slection

Le schma du rsultat est identique au


schma pris en entre

12
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Slection : exemple


ET

Q2= (DateRes<20-11-2007Classe=2)( Reservation)


Condition de slection

Rservation Q2
NumRes Classe DateRes NumClient NumRes Classe DateRes NumClient
001 002
1 18/11/2007 17902567 2 19/11/2007 2780289
002 2 19/11/2007 2780289

003 2 20/11/2007 2780289


13
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Slection : Dfinition formelle
Input
r une relation de schma R
une condition de slection (dfinie ci-aprs)

(r)={t / t r et (t)}
Output

Lensemble des n-uplets de la relation r pour


lesquels la condition est vraie

Le schma de (r) est R


14
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Dfinition formelle de la condition
Dfinition rcursive
Base : Soient 2 attributs A et B (non
ncesairement diffrents), et a Dom(A)

peut prendre les formes suivantes


A =B, A < B, A=a, A < a (on utilisera aussi >, , et )

Si 1 et 2 sont deux conditions alors


(1), 1 (ngation), 1 2 (et) et 1 2 (ou)
sont des conditions de slection
15
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Exemples de conditions
DateRes 20-11-2007
Classe = 2
Nom = Payen
(DateRes = 20-11-2007
DateRes = 21-11-2007)
Classe = 2
NumClient = NumSS

16
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Exercice 1
Quel est le rsultat de la requte Q3
suivante en considrant linstance de la
relation R ci-dessous ?

Q3 =Nom (Prnom = Jean (Enseignant) )


Enseignant
NumEns Nom Prnom

1 Voisin Jean
2 Benzaken Claudine
3 Forest Jean

17
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Correction (Exercice 1)
Quel est le rsultat de la requte Q3
suivante en considrant linstance de la
relation R ci-dessous ?

Q3 =Nom (Prnom = Jean (Enseignant) )


Enseignant Q3
NumEns Nom Prnom
Nom
1 Voisin Jean
Voisin
2 Benzaken Claudine
Forest
3 Forest Jean

18
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Produit cartsien : Introduction
Oprateur binaire (prend deux relations
entre entre : r1 et r2)
Chacun des n-uplets de r1 est combin
avec chacun des n-uplets de r2
Le schma du rsultat a lunion des
attributs des relations
NB : Si les deux relations ont un attribut
de mme nom, on renomme cet attribut
19
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Produit cartsien : Exemple
R1
Renommage
A B C
R1 x R2
a1 b1 c1

a2 b2 c2 R1.A B C R2.A D
a1 b1 c1 a2 d2
R2 a1 b1 c1 a2 d3
A D a1 b1 c1 a3 d4
a2 d2 a2 b2 c2 a2 d2
a2 d3 a2 b2 c2 a2 d3
a3 d4 a2 b2 c2 a3 d4
20
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Produit cartsien : Dfinition formelle
Input
r, s deux relations de schma R et S
Output
r x s = {t / t(R) r et t(S) s}
La restriction du produit aux attribut de R est r et
celle aux attributs de S est s

r x s a pour schma R+S


NB : R+S est lunion disjointe de R et S
{R.A / AR } U {S.B / B S}
21
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
SQL par dfaut fait un produit cartsien !
Client
Reservation
NumSS Nom Prnom
NumRes Classe DateRes NumClient
17902567 Payen Olivier
1
1 18/11/2007 17902567
2780289 Payen Judith
2 2 19/11/2007 2780289
29005579 Quoti Mathilde

SELECT Nom, Nom Prenom NumRes DateRes


Prenom, Payen Olivier 1 18/11/2007
Reservation.NumRes,
DateRes
Payen Judith 1 18/11/2007
FROM Reservation,
Client
Quoti Mathilde 1 18/11/2007
WHERE DateRes <
2007-11-19
Ces deux lignes mlangent des informations qui nont
rien voir !!
Sarah Cohen-Boulakia, Bases de donnes
Dpartement Informatique
22
Jointure naturelle : Introduction
Opration binaire fondamentale (optimisation) !

Utilise R1 et R2 qui ont des attributs communs


(appelons-les X)

Le schma du rsultat est


similaire au schma du produit cartsien
modulo que les attributs X napparaissent quune fois

Au niveau des lignes : on combine les lignes de


R1 avec les lignes de R2 qui ont mme valeur
pour les attributs X

23
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Jointure naturelle : Exemple
R1
R1 R2
A B C quivaut

a1 b1 c1 R1 R2
R1.A = R2.A
a2 b2 c2

A B C D
R2
a2 b2 c2 d2
A D
a2 b2 c2 d3
a2 d2

a2 d3
a3 d4

24
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Jointure naturelle : Dfinition formelle
Input
r et s de schma R et S
Output
r s = {t / t(R) r et t(S) s}

r s= R union S (r x s)
Avec R S = {B1, , Bp}

: t(R.B1)= t(S.B1) t(R.Bp)= t(S.Bp)

25
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Phi (ou thta) Jointure

Cas particulier de jointure avec condition


R1 R2
R1 R2
est une condition de slection R2.A > R1.C

A D E B C
R2
R1 3 2 1 7 1
A D

3 2 E B C 3 2 9 2 2
2 3 1 7 1 2 3 1 7 1
1 4 9 2 2
26
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Union, Intersection, Diffrence :
Introduction
Tous ces oprateurs prennent en entre 2
relations qui doivent avoir le mme schma

Union (R1 R2) : ensemble de n-uplets qui


sont dans R1 ou dans R2

Intersection (R1 R2) ensemble de n-uplets


qui sont dans R1 et dans R2
Diffrence (R1 \ R2 ou R1 R2) : ensemble de
n-uplets qui sont dans R1 mais pas dans R2

27
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Union, Intersection, Diffrence :
Exemples

R1 R2 R1 R2 R1 \ R2
A B A B
R1 R2 A B
a1 b1 a1 b1 a2 b2
A B A B
a2 b2 a3 b3
a1 b1 a1 b1 Les n-uplets
a3 b3 la fois
a2 b2 a2 b3 dans R1 et
a2 b3 Les n-uplets
a3 b3 a3 b4 dans R2 de R1 mais
a3 b4
qui ne sont
pas dans R2
Les n-uplets de R1
union ceux de R2
Pas de doublon 28
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Union, Intersection, Diffrence :
Dfinitions formelles
Input
r, s deux relations de mme schma R
Output
r s = { t / t r ou t s }
r s = { t / t r et t s }
r \ s = { t / t r et t s }

de schma R
29
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Exercice 2
Quel est le rsultat de la requte Q4
suivante en considrant les instances des
relations ci-dessous ?

Q4 =(A,B (C c1 (R1) )) R2
R1 R2
A B C A B
a1 b1 c1 a2 b2
a2 b2 c2 a2 b3
a3 b3 c3 a3 b4

30
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Correction (Exercice 2) 1/3
Quel est le rsultat de la requte Q4
suivante en considrant linstance des
relations ci-dessous ?

Q4 =A,B (C c1 (R1) ) R2
R1 R2
A B C A B
a1 b1 c1 a2 b2
a2 b2 c2 a2 b3
a3 b3 c3 a3 b4

31
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Correction (Exercice 2) 2/3
Quel est le rsultat de la requte Q4
suivante en considrant linstance des
relations ci-dessous ?

Q4 =A,B (C c1 (R1) ) R2
R1 R2
A B C A B
a1 b1 c1 a2 b2
a2 b2 c2 a2 b3
a3 b3 c3 a3 b4

32
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Correction (Exercice 2) 3/3
Quel est le rsultat de la requte Q4
suivante en considrant linstance des
relations ci-dessous ?

Q4 =(A,B (C c1 (R1) )) R2
R1 R2 Q4
A B C A B A B
a1 b1 c1 a2 b2 a2 b2
a2 b2 c2 a2 b3
a3 b3 c3 a3 b4

33
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Proprits algbriques
Lunion et lintersection sont commutatifs et
associatifs
r s = s r, r (s1 s2) = (r s1) s2
De mme pour

Le produit cartsien est associatif et commutatif*

La jointure est associative et commutative*

Dautres proprits peuvent tre nonces :


monotonie de certains oprateurs, fermeture etc.
*si on considre un ordre sur les colonnes
34
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Exemple dquivalences
Les relations dquivalence de lalgbres sont des
galits entre des formules
Elles sont la base des optimisations de requtes !
Exercice
Sachant que les schmas de R et S sont les mmes et si
X R, trouvez un contre exemple aux galits qui sont
fausses et dmontrez celles qui sont justes

X (r s) = X (r) X (s)
X(r s) = X (r) - X (s)
X(r s) = X (r) X (s)
35
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Exemple dquivalences (correction)
Exercice
Sachant que R = S (schmas) et X R, trouvez
un contre exemple aux galits qui sont
fausses et dmontrez celles qui sont justes

X (r s) = X (r) X (s) NON


X(r s) = X (r) - X (s) NON
X(r s) = X (r) X (s) OUI !
36
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Non Distributivit de lintersection

X (r s) = X (r) X (s) NON


Contre exemple
r s A (r s) =
A (r) A (s) = {a}
A B A B
a b a b

37
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Non Distributivit de la diffrence

X (r - s) = X (r) - X (s) NON


Contre exemple
r s A (r - s) = {a}
A (r) - A (s) =
A B A B
a b a b

38
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Distributivit de lunion : Dmonstration
X (r s) = X (r) X (s)
On se ramne aux dfinitions

Rappel : X(r)={t(X) / t r} ; tX(r) t r et t(X)=t


t X (r s) t, t (r s) et t(X)=t // par dfinition de la projection
t ((t r) ou (ts)) et t(X)=t // par dfinition de lunion
t ((t r) et t(X)=t) ou ((ts) et t(X)=t) // distrib. de et sur ou
( t, t r et t(X)=t) ou ( t, ts et t(X)=t) // distributivit de

t X (r) ou t X (s) // par dfinition de la projection


t ( X (r) X (s)) // par dfinition de lunion
39
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes
Conclusion
Lalgbre relationnelle est dfinie de faon
trs rigoureuse et offre un langage de
requtes la fois simple et puissant

Lalgbre relationnelle est la base


De SQL
Des plans de requtes utiliss par les SGBD
pour optimiser les requtes

40
Dpartement Informatique Sarah Cohen-Boulakia, Bases de donnes

Вам также может понравиться