Alg - PowerPoint PPT Presentation

About This Presentation
Title:

Alg

Description:

Witold LITWIN 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 ... – PowerPoint PPT presentation

Number of Views:121
Avg rating:3.0/5.0
Slides: 28
Provided by: litwin
Category:
Tags: alg

less

Transcript and Presenter's Notes

Title: Alg


1
Algèbre relationnelle
  • Witold LITWIN

2
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

3
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)

4
Opérateurs ensemblistes
  • UNION INTERSECT DIFFERENCE

PRODUCT
a x a y b x b y c x c y
a b c
x y
5
Opé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
6
Opérateurs relationnels
  • Restriction
  • Projection

7
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 S1 Smith 20 London
S SNAME STATUS CITY S1 Smith 20
London S4 Clark 20 London
8
Proprié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 ?

9
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 gt '10'

10
Projection
  • 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'

11
Jointure 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 ?

13
Division
  • 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 ?
14
Requê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 ?

15
Utilité 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

16
Utilité 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 ?

17
Complé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 !

20
Quelques 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

21
Quelques 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.

22
Opé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

23
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 (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')

24
Conclusion
E. Codd à son travail
25
Conclusion
A E. Coddpour les 25 ans du Modèle Relationnel
26
FIN
27
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com