Title: Alg
1Algèbre relationnelle
2Algè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
3Opé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)
4Opérateurs ensemblistes
- UNION INTERSECT DIFFERENCE
PRODUCT
a x a y b x b y c x c y
a b c
x y
5Opérateurs relationnels
a1 b1 c1 a1 b1 c2 a2 b1 c1 a2 b1 c2 a3 b2 c3
- Jointure (naturelle)
- Division
a1 b1 a2 b1 a3 b2
c1 b1 c2 b1 c3 b2
a x a y a z b x c y
x y
a
6Opérateurs relationnels
7Dé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 S1 Smith 20 London
S SNAME STATUS CITY S1 Smith 20
London S4 Clark 20 London
8Propriétés
- 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 ?
9Restriction
- 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 gt '10'
10Projection
- 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'
11Jointure naturelle
- 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 (Xx, Yy, Zz ) 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 ?
12??-jointures
- 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 gt CITY RENAME SNAME AS SNAME1) RESTRICT
WHERE SNAME1 gt SNAME) - Est-ce que la ????jointure est associative et
commutative ?
13Division
- 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 S1
S P S1 P1 S1 P2 S2 P1 S2 P3
P P1 P2
Les fournisseurs de toutes les pièces
DIVIDEBY est-t-il associatif ou commutatif ?
14Requêtes algébriques(comment seraient-elles en
SQL ?)
- (( S JOIN SP ) WHERE P 'P2' ) SNAME
- (((P WHERE COLOR 'Red' ) P JOIN SP ) S
JOIN S SNAME - (((P WHERE COLOR 'Red' ) P, PNAME JOIN SP )
S, PNAME JOIN S SNAME - (( SP S, P DIVIDEBY P P ) JOIN S ) SNAME
- SP S, P DIVIDEBY ( SP WHERE S 'S2') P
- Est-ce vrai qu'une requête alg. est toujours
compliquée à formuler que celle correspondant en
SQL ?
15Utilité de l'algèbre
- Puissance expressive
- 8 opérateurs de Codd permettent d'exprimer toute
expression logique de prédicat de 1-er ordre - note seulement 5 sont primitives (lesquels ?)
- La puissance expressive de l'algèbre dite
complétude relationnelle constitue la mesure de
la puissance minimale de tout LMD assertionnel
digne de ce nom
16Utilité de l'algèbre
- 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 ?
17Complétude relationnelle de SQL
- ? expression algébrique, ? une expression
équivalente de SQL - Schéma de preuve
- ? opérateur algébrique, ? une expression
équivalente de SQL - ? composition d'opérateurs algébriques, ? une
composition équivalente de SQL
18?
- A UNION B
- SELECT FROM A UNION SELECT FROM B
- A (X) MINUS B (X)
- SELECT FROM A WHERE NOT EXIST (SELECT FROM B
WHERE A.x1 B.x1 AND A.x2 B.x2...) - A TIMES B
- SELECT FROM A B
- A WHERE p
- SELECT FROM A WHERE p
- A x, y.., z
- SELECT DISTINCT x,y..z FROM A
19?
- Par induction
- ? tables A et B, si?????des expressions SQL pour
A et B, alors ???des expressions SQL permettant à
appliquer tout opérateur relationnel à A ou B - Prouve cette assertion !
20Quelques règles de transformation(améliorations
relationnelles)
- Sélections d'abord
- A JOIN B WHERE restriction-sur-B A JOIN ( B
WHERE restriction-sur-B ) - A JOIN B WHERE restriction-sur-A AND
restriction-sur-B (A WHERE restriction-sur-A
) JOIN ( B WHERE restriction-sur-B) - Forme conjonctive normaleWHERE p OR ( q AND r)
WHERE (p OR q) AND ( p OR r) - Il suffit qu'une condition soit .FAUX pour
rejeter le tuple
21Quelques règles d'amélioration
- Réduction de restrictions
- (( A WHERE r1 ) WHERE r2 ) WHERE r3... ( A
WHERE r1 AND r2 AND r3 ...) - Réduction de projections à la dernière
- ( ((( A project 1 ) project 2) project 3
)...project n A project n - Etc.
22Opérateurs additionnels
- ( EXTEND P ADD 'Weight in Gr' ,
- (WEIGHT 454 ) AS WEIGHT1 )
- WHERE WEIGHT1 gt 1000
- SUMMARIZE SP GROUPBY ( P ) ADD SUM ( QTY) AS
TOTQTY - ( SUMMARIZE ( P WHERE COLOR 'Red')GROUPBY (
CITY ) ADD COUNT AS N ) WHERE N gt 5 ) CITY
23Opé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 (Xx) 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')
24Conclusion
E. Codd à son travail
25Conclusion
A E. Coddpour les 25 ans du Modèle Relationnel
26FIN
27(No Transcript)