You are on page 1of 18

Institut superieur des etudes

technologiques de beja
Département d’Informatique 2010/2011

TI.2.5
Proposée par: Réalisée par:
Mme Kalai Kalai Oussama
Ben yahya Heithem
Rahma
Algèbre relationnelle
Proposée par E. Codd, 1969
Utilisée en général à l'intérieur de tout SGBD
relationnel
Un LMD algébrique est possible, mais en
général peu commode pour l'homme
On préfère les requêtes SQL, QUEL, QBE...
◦ celles-ci sont traduites en expressions algébriques
+ procedurales donc + faciles à optimiser par des
transformations syntaxiques
Opérateurs traditionnels
Opérateurs ensemblistes:
UNION, INTERSECT, DIFFERENCE, TIMES
Ces opérateurs sont reformulés
spécifiquement pour le modèle relationnel
Opérateurs relationnels spécifiques
RESTRICT, PROJECT, JOIN, DIVIDE
Les expressions algébriques transforment
des tables en une table (propriété de
fermeture)
UNION INTERSECT PRODUCT
DIFFERENCE

a x a x
b y a y
c b x
b y
c x
c y
Opérateurs ensemblistes
a1 b1 c1
Jointure a1 b1 c1 b1 a1 b1 c2
(naturelle) a2 b1 c2 b1 a2 b1 c1
a3 b2 c3 b2 a2 b1 c2
a3 b2 c3
Division
ax x a
ay y
az
bx
Opérateurs relationnels
cy
Restriction

Projection

Opérateurs relationnels
Définition syntactique
A TIMES B
Pour les 3 autres, A et B doivent
être union-compatibles:
Mêmes attributs et dans le même ordre
Le résultat a les mêmes attributs
 A UNION B
 A INTERSECT B
 A MINUS B S# SNAME STATUS CITY
S1 Smith 20 London
S4 Jones 10 Paris

S# SNAME STATUS CITY S# SNAME STATUS CITY


S1 Smith 20 London S1 Smith 20 London
S4 Clark 20 London
 UNION,INTERSECT, TIMES sont associatifs
et commutatifs
(A UNION B) UNION C = A UNION (B UNION C)
(A UNION B) = (B UNION A)
démontre !

 Et MINUS ?

Propriétés
Restriction
A WHERE X theta Y
theta est un opérateur de comparaison
WHERE X theta Y est la condition de
restriction
un tuple t de A est sélectionné ssi WHERE
X theta Y (t) = 'vrai'
 Y = 'littéral' est aussi possible
 A WHERE booléen - idem
formellement on procède en fait par les
opérateurs ensemblistes, ex.
A WHERE c1AND c2 = (A WHERE c1) INTERSECT
(A WHERE c2)
 S WHERE CITY = 'Paris' AND STATUS > '10'
A [X, Y,...Z] est une projection de A sur les
attributs énumérés, tous distincts
 A sans liste est une projection d'identité
 A [ ] est une projection nulle
 Exemples

S
S [S#, CITY]
(S WHERE STATUS = 10 ) [S#, CITY]
(S WHERE STATUS = 10 ) [S#, CITY] WHERE CITY =
'Paris'

Projection
 La jointure A JOIN B de deux tables
A (X, Y) et B (Z, Y)
est la table C avec les attributs :
C (X, Y, Z)
et les tuples (X:x, Y:y, Z:z ) tels que (x, y)
est dans A et (y, z) est dans B
 X, Y, Z peuvent être composés
 La jointure naturelle est associative et
commutative ?

Jointure naturelle
 table C égale à :
C = ( A TIMES B ) WHERE X Y
 est la jointure de tables A(X,...) et B (Y,...)

(S TIMES SP ) WHERE S.S# = SP.S#

(((S RENAME CITY AS SCITY) TIMES S ) WHERE SCITY


> CITY RENAME SNAME AS SNAME1) RESTRICT
WHERE SNAME1 > SNAME)

Est-ce
-jointures
que la jointure est associative et commutative ?
Table C ( X ) notée:
A DIVIDEBY B
est une division de tables A (X, Y) et B
(Y) ssi C contient tous les tuples ( x )
tels que
( y ) B , ( x, y ) A S# P#
P# S#
S1 P1
P1 S1
Les fournisseurs de S1 P2
P2
toutes les pièces S2 P1
S2 P3

Division
DIVIDEBY est-t-il associatif ou commutatif ?
 Technique de choix pour l'implémentation
 Il n'y a que 8 opérateurs
 Ces opérateurs sont faciles à implementer
 Leur propriétés permettent de transformer
les expressions en +efficaces à évaluer, en
général
(( S JOIN SP ) WHERE P# = 'P2' ) [SNAME] =
( S JOIN ( SP WHERE P# = 'P2' )) [SNAME]
pourquoi la 2-ème expression semble plus efficace ?
Utilité de l'algèbre
( EXTEND P ADD 'Weight in Gr' ,
(WEIGHT * 454 ) AS WEIGHT1 )
WHERE WEIGHT1 > 1000 ;

 SUMMARIZE SP GROUPBY ( P# ) ADD SUM (


QTY) AS TOTQTY

(SUMMARIZE ( P WHERE COLOR = 'Red')


GROUPBY ( CITY ) ADD COUNT AS N )
WHERE N > 5 ) [CITY]

Opérateurs additionnels
Division généralisée
La division de A (X, Y) par B (X, Z) est
C ( X, Z) où tout sous-tuple C (X:x)
est le tuple de la division relationnelle
et vice versa
Jointure externe
Assignation (pour mises à jour)
S := S UNION (( S# : 'S6', SNAME : 'Baker')
S := S MINUS ( S WHERE CITY = 'Paris')

Opérateurs additionnels
A E. Codd
pour les 30
ans du Modèle
Relationnel
 L’algèbre
relationnelle est
plus
opérationnelle;
elle est utile
comme
représentation
interne des plans
d’évaluation des
requêtes.

Conclusion

You might also like