La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

B.Shishedjiev - Algèbre relationnelle1 L'algèbre relationnelle Comment on calcule les relation.

Présentations similaires


Présentation au sujet: "B.Shishedjiev - Algèbre relationnelle1 L'algèbre relationnelle Comment on calcule les relation."— Transcription de la présentation:

1 B.Shishedjiev - Algèbre relationnelle1 L'algèbre relationnelle Comment on calcule les relation

2 B.Shishedjiev - Algèbre relationnelle2 Définitions Les opérateurs sur relations Convention On note A(X) (All) l'ensemble de toutes les affectations du schéma de relation X. On note L/Y la restriction de l'affectation L aux attributs de Y. Opérateurs –projection, sélection, opérateurs ensemblistes, jointures, division Exemple –D1 = { écrou, boulon, vis,clou } –D2 = { pierre, paul, alice } –D3 = { a, b, c }

3 B.Shishedjiev - Algèbre relationnelle3 L'opérateur de projection Soient X un schéma et Y une partie de X. La projection sur Y X d'une relation R(X) est la relation, Y R(X) –(1) Z = Y –(2) Y R(X) ={L A(Y) : L' A(X), (L'/Y = L) (L' R) } R :PIECEFOURNISSPROJET écroupaula écroupaulb boulonpierrea Y R(X) : PIECEFOURNISS écroupaul boulonpierre Y={PIECE:D1, FOURNISSEUR:D2 }

4 B.Shishedjiev - Algèbre relationnelle4 L'opérateur de sélection (restriction) Une condition de sélection est une formule logique construite sur les attributs d'un schéma X à l'aide des connecteurs suivant :,, ¬, =, >, <,,,. La sélection sur une relation R(X) suivant une condition de sélection E est la relation S(Y) = σ E R(X) définie par (1) Y =X (2) S(Y)=σ E R(X) = { L A(X) / (L R) et (E(L) = vrai) } R :CLASSENOMVILLENAISSPORT 6pierremarseille11.10.79judo 6pierremarseille11.10.79escrime 6jacquesaubagne05.03.78natation 6paulmarseille06.07.79football 5lucaubagne01.04.77football E = (VILLE='marseille') (NAIS '31.08.79') ((SPORT='judo') (SPORT='football')) σ E R(X)CLASSENOMVILLENAISSPORT 6paulmarseille06.07.79football

5 B.Shishedjiev - Algèbre relationnelle5 Rebaptiser (renommer) Changer le nom dattribut, sans changer le domaine ou la sémantique. S(Y) = b/a R(X) (1)Y = X où lattribut a est nommé b (2)S(Y) = R(X) R :PIECEFOURNISS écroupierre écroupaul boulonalice T = PI/PIECE R(X) PIFOURNISS écroupierre écroupaul boulonalice

6 B.Shishedjiev - Algèbre relationnelle6 Opérateurs sur ensembles Union A B Intersection A B Différence A - B Produit cartésien A B Jointures Division A B ou A/B

7 B.Shishedjiev - Algèbre relationnelle7 Opérateurs sur ensembles Soient R(X) et S(X) deux relations définies sur le même schéma. (1) Y = X (2) T = R S = {L A(X) : L R L S) (3)T = R S = R*S = {L A(X) : (L R) (L S) (4) R-S = { L A(X) : (L R) (L S) } (5) R = {L A(X) : (L R) } R :PIECEFOURNISS écroupierre écroupaul boulonalice S :PIECEFOURNISS écroupierre boulonpierre boulonalice R S : PIECEFOURNISS écroupierre écroupaul boulonalice boulonpierre R S : PIECEFOURNISS écroupierre boulonalice S R : PIECEFOURNISS boulonpierre

8 B.Shishedjiev - Algèbre relationnelle8 Produit cartésien X et Y n'ont aucun attribut en commun. r : (1) Z=X Y (2) R S = {L A(Z) : L/X R L/Y S) Dans le cas où les schémas X et Y ont des attributs communs, il est toujours possible de se ramener à l'hypothèse en rebaptisant des attributs. T= PI/PIECE R R :PIECEFOURNISS écroupierre écroupaul boulonalice S :PIECEPROJET écroua b boulona T :PIFOURNISS écroupierre écroupaul boulonalice T S PIFOURNISSPIECEPROJET écroupierreécroua paulécroua boulonaliceécroua pierreécroub paulécroub boulonaliceécroub pierreboulona écroupaulboulona aliceboulona

9 B.Shishedjiev - Algèbre relationnelle9 Jointures - jointure Soient deux relations R(X) et S(Y) qui n'ont en commun aucun attribut. Soient X1 un attribut de X et Y1 un attribut de Y tels que X1 et Y1 aient même domaine. Soit un opérateur de comparaison (=,,,, ). (1) Z=X Y (2) R X1 Y1 S = { L A(Z) :L/X R et L/Y S (X1 Y1)(L) = vrai} ou encore R X1 Y1 S = σ X1 Y1 (R S) R BD S : ABCDE 32134 32156 65456 S : DE 34 56 R :ABC 987 654 321

10 B.Shishedjiev - Algèbre relationnelle10 Jointures Equi-jointure ( est =) R :PIECEFOURNISS écroupierre écroupaul boulonalice S :PIECEPROJET écroua b boulona T= PI/PIECE R PIECEFOURNISS écroupierre écroupaul boulonalice T PI=PIECE S PIFOURNISS PIECE PROJET écroupierreécroua pierreécroub paulécroua paulécroub boulonaliceboulona

11 B.Shishedjiev - Algèbre relationnelle11 Jointures Jointure naturelle Soient R(X) et S(Y) deux relations (les attributs communs éventuels étant munis des mêmes domaines). (1) Z=X Y (2) R S = {L A(Z) : (L/X R) (L/Y S)} T S PIECEFOURNISSPROJET écroupierrea écroupierreb écroupaula écroupaulb boulonalicec R :PIECEFOURNISS écroupierre écroupaul boulonAlice cloualice S :PIECEPROJET écroua b boulonc visd

12 B.Shishedjiev - Algèbre relationnelle12 Jointures Jointure naturelle

13 B.Shishedjiev - Algèbre relationnelle13 Jointures Semijointures( ) T(Z) = R(X) S(Y), U(W)=R S (1)Z=X, W=Y (2)T = R S = X R S (3)U = R S= Y R S R :PIECEFOURNISS écroupierre écroupaul boulonAlice cloualice S :PIECEPROJET écroua b boulonc visd R S PIECEFOURNISS écroupierre écroupaul boulonalice R S PIECEPROJET écroua b boulona

14 B.Shishedjiev - Algèbre relationnelle14 Jointures Antijointure – le complément de la jointure (1) Z=X (2) R S = {L A(X) : (L R) (L/Y S)}=R-R S R :PIECEFOURNISS écroupierre écroupaul boulonAlice cloualice S :PIECEPROJET écroua b boulonc visd R S PIECEFOURNISS cloualice

15 B.Shishedjiev - Algèbre relationnelle15 Division Le résultat est une relation dont les attributs sont ces qui sont unique en R et les tuples sont ce pour lesquels tous les combinaisons avec les tuples de S sont présents en R (1) Z=X-Y, S, Y X. (2)R S = {L A(Z) : L' A(X) si (L'/Z = L) et (L'/Y S) alors L' R } ou encore R S = z R - z ((S z R ) - R)

16 B.Shishedjiev - Algèbre relationnelle16 Division Exemple R :PIECEFOURNISS vispierre boulonpaul écroupierre vispaul boulonpierre boulonalice S :PIECE vis boulon R S : FOURNISS pierre paul

17 B.Shishedjiev - Algèbre relationnelle17 Propriétés des opérateurs idempotence de la somme : R+R = R idempotence du produit : R*R = R associativité de la somme : R+(S+T) = (R+S)+T associativité du produit : R*(S*T) = (R*S)*T commutativité de la somme : R+S = S+R commutativité du produit : R*S = S*R distributivité de la somme par rapport au produit : R+(S*T) = (R+S)*(R+T) distributivité du produit par rapport à la somme : R*(S+T) = (R*S)+(R*T) relation entre le complément, la somme et le produit : ¬(R+S) = ¬R*¬S ¬(R*S) = ¬R+¬S

18 B.Shishedjiev - Algèbre relationnelle18 Exemple de composition AVION :#AVAVNOMCAPLOC 100airbus300nice 101airbus300paris 102carav200toulouse PILOTE :#PLPLNOMADR 1sergenice 2jeanparis 3claudegrenoble VOL :#VOL#PL#AVVDVAHDHA it1001100niceparis78 it1012100paristoulouse1112 it1021101parisnice1213 it1033102grenobletoulouse911 it1043101toulousegrenoble1718 Quels sont les noms des pilotes qui conduisent tous les types d'avions ?

19 B.Shishedjiev - Algèbre relationnelle19 Exemple de composition R1= AVNOM,#PL ( #AV,AVNOM AVION #VOL,#PL VOL) AVNOM AVION R2= PLNOM ( #PL,PLNOM PILOTE R1) 01 :#AVAVNOM 100airbus 101airbus 102carav 02 :#PL#AV 1100 2101 1 3102 3101 03:PL#AV#AVNOM 1100airbus 2100airbus 1101airbus 3102carav 3101airbus 04:PL#AVNOM 1airbus 2 3carav 3airbus 05:AVNOM airbus carav R1:PL# 3 07 :#PLPLNOM 1serge 2jean 3claude 08:PL#PLNOM 3claude R2PLNOM claude

20 B.Shishedjiev - Algèbre relationnelle20 Les valeurs inconnues - cest une valeur qui nest pas déterminée. Soit elle nexiste pas, soit elle nest pas connue. VRAIFAUXINDÉFINI VRAI FAUXINDÉFINI FAUX INDÉFINI FAUXINDÉFINI VRAIFAUXINDÉFINI VRAI FAUXVRAIFAUXINDÉFINI VRAIINDÉFINI ¬ VRAIFAUX VRAI INDÉF.

21 B.Shishedjiev - Algèbre relationnelle21 La jointure externe Soient deux relations R(X) et S(Y) qui n'ont en commun aucun attribut. Soient X 1 un attribut de X et Y 1 un attribut de Y tels que X 1 et Y 1 aient même domaine. Soit un opérateur de comparaison (=,,,, ). (1) Z=X Y (2)R X1 Y1 S = T ( (R - X T) (Y) ) où T = R X1 Y1 S (3) R X1 Y1 S = T ( (S - Y T) (X) ) où T = R X1 Y1 S (4) R X1 Y1 S = R X1 Y1 S R X1 Y1 S

22 B.Shishedjiev - Algèbre relationnelle22 La jointure externe Exemple R :PI:D1 écrou boulon vis S :PI_F:D1FOUR:D2 écroualice boulonPaul cloupierre R PI = PI_F S : PI:D1PI_F:D1FOUR:D2 écrou alice boulon paul vis R PI = PI_F S : PI:D1PI_F:D1FOUR:D2 écrou alice boulon paul cloupierre R PI = PI_F S : PI:D1PI_F:D1FOUR:D2 écrou alice boulon paul vis cloupierre

23 B.Shishedjiev - Algèbre relationnelle23 Calculs sur domaines Extension Agrégation – Sum, Count, Average, Max, Min RArticlePrixquant Clou8.00200 boulon12.00100 ecrou12.00120 S= Article,e(Prix*quant) as Total R ArticleTotal Clou1600.00 boulon1200.00 ecrou1440.00 Sum( Total S) Total 4240.00

24 B.Shishedjiev - Algèbre relationnelle24 Exemple EMPLOYEES NumberNameAgeSalary 101Mary Smith3440 103Mary Bianchi2335 104Luigi Neri3861 105Nico Bini4438 210Marco Celli4960 231Siro Bisi5060 252Nico Bini4470 301Steve Smith3470 375Mary Smith5065 HeadEmployee 210101 210103 210104 231105 301210 301231 375252 SUPERVISION EMPLOYEES(Number, Name, Age, Salary) SUPERVISION(Head, Employee)

25 B.Shishedjiev - Algèbre relationnelle25 Requêtes Trouvez les numéros, les noms et l'âge des employés qui ont un salaire au-dessus de 40 mille. Number,Name,Age ( Salary 40 (EMPLOYEES)) NumberNameAgeSalary 101Mary Smith3440 103Mary Bianchi2335 104Luigi Neri3861 105Nico Bini4438 210Marco Celli4960 231Siro Bisi5060 252Nico Bini4470 301Steve Smith3470 375Mary Smith5065 NumberNameAgeSalary 101Mary Smith3440 104Luigi Neri3861 210Marco Celli4960 231Siro Bisi5060 252Nico Bini4470 301Steve Smith3470 375Mary Smith5065 NumberNameAge 101Mary Smith34 104Luigi Neri38 210Marco Celli49 231Siro Bisi50 252Nico Bini44 301Steve Smith34 375Mary Smith50

26 B.Shishedjiev - Algèbre relationnelle26 Requêtes Trouver les chefs qui ont des subordonnés qui ont grand salaires ( au dessus de 40) Head (SUPRVISION Employee=Number ( Salary 40 (EMPLOYEES))) NumberNameAgeSalary 101Mary Smith3440 103Mary Bianchi2335 104Luigi Neri3861 105Nico Bini4438 210Marco Celli4960 231Siro Bisi5060 252Nico Bini4470 301Steve Smith3470 375Mary Smith5065 HeadEmployee 210101 210103 210104 231105 301210 301231 375252 NumberNameAgeSalary 101Mary Smith3440 104Luigi Neri3861 210Marco Celli4960 231Siro Bisi5060 252Nico Bini4470 301Steve Smith3470 375Mary Smith5065 NumberNameAgeSalaryHeadEmployee 101Mary Smith3440210101 104Luigi Neri3861210104 210Marco Celli4960301210 231Siro Bisi5060301231 252Nico Bini4470375252 Head 210 301 375 Head 210 301 375

27 27 NumberNameAgeSalary 101Mary Smith3440 103Mary Bianchi2335 104Luigi Neri3861 105Nico Bini4438 210Marco Celli4960 231Siro Bisi5060 252Nico Bini4470 301Steve Smith3470 375Mary Smith5065 HeadEmployee 210101 210103 210104 231105 301210 301231 375252 NumberNameAgeSalaryHeadEmployee 101Mary Smith3440210101 103Mary Bianchi2335210103 104Luigi Neri3861210104 105Nico Bini4438231105 210Marco Celli4960301210 231Siro Bisi5060301231 252Nico Bini4470375252 NumberHNameHAgeHSalaryH 101Mary Smith3440 103Mary Bianchi2335 104Luigi Neri3861 105Nico Bini4438 210Marco Celli4960 231Siro Bisi5060 252Nico Bini4470 301Steve Smith3470 375Mary Smith5065 Numbe r NameAgeSalar y HeadEmploy ee Number H NameHAgeHSalaryH 101Mary Smith 3440210101210Marco Celli 4960 103Mary Bianchi 2335210103210Marco Celli 4960 104Luigi Neri3861210104210Marco Celli 4960 105Nico Bini4438231105231Siro Bisi5060 210Marco Celli 4960301210301Steve Smith 3470 231Siro Bisi5060301231301Steve Smith 3470 252Nico Bini4470375252375Mary Smith 5065 NameHSalaryH Marco Celli60 Marco Celli60 Marco Celli60 Siro Bisi60 Steve Smith70 Steve Smith70 Mary Smith65 NameHSalaryH Marco Celli60 Siro Bisi60 Steve Smith70 Mary Smith65 Requêtes Trouvez tous les chefs (leurs noms et salaires) NameH,SalaryH ( NumberH,NameH,SalaryH.AgeH Number,Name.Salary,Age (EMPLOYEES) NumberH=Head (SUPERVISION Employee=Number (EMPLOYEES)))

28 B.Shishedjiev - Algèbre relationnelle28 Requêtes Trouver les employ é es qui gagnent plus que leur chefs Number,name,Salary,Numberh,nameH,SalaryH ( Salary>SalaryH ( NumberH,NameH,SalaryH.AgeH Number,Name.Salary,Age (EMPLOYEES) NumberH=Head (SUPERVISION Employee=Number (EMPLOYEES)))) NumberNameAgeSalar y HeadEmploy ee Number H NameHAgeHSalaryH 101Mary Smith 3440210101210Marco Celli 4960 103Mary Bianchi 2335210103210Marco Celli 4960 104Luigi Neri3861210104210Marco Celli 4960 105Nico Bini4438231105231Siro Bisi5060 210Marco Celli 4960301210301Steve Smith 3470 231Siro Bisi5060301231301Steve Smith 3470 252Nico Bini4470375252375Mary Smith 5065 NumberNameAgeSalar y HeadEmploy ee Number H NameHAgeHSalaryH 104Luigi Neri3861210104210Marco Celli 4960 252Nico Bini4470375252375Mary Smith 5065 NumberNameSalaryNumberHNameHSalaryH 104Luigi Neri61210Marco Celli60 252Nico Bini70375Mary Smith65

29 B.Shishedjiev - Algèbre relationnelle29 Requêtes Trouver les chefs dont tous les employées gagnent plus de 40 mille – Number,Name (EMPLOYEES Number=Head ( Head (SUPERVISION) – ( Head (SUPERVISION Employee=Number ( Salary 40 (EMPLOYEES))))) NumberNameAgeSalary 101Mary Smith3440 103Mary Bianchi2335 104Luigi Neri3861 105Nico Bini4438 210Marco Celli4960 231Siro Bisi5060 252Nico Bini4470 301Steve Smith3470 375Mary Smith5065 HeadEmployee 210101 210103 210104 231105 301210 301231 375252 NumberNameAgeSalary 101Mary Smith3440 103Mary Bianchi2335 105Nico Bini4438 NumberNameAgeSalaryHeadEmployee 101Mary Smith3440210101 103Mary Bianchi2335210103 105Nico Bini4438231105 Head 210 231 Head 210 231 301 375 Head 301 375 NumberNameAgeSalaryHead 301Steve Smith3470301 375Mary Smith5065375 NumberName 301Steve Smith 375Mary Smith

30 B.Shishedjiev - Algèbre relationnelle30 Optimisation des expressions E(X), E 1 (X 1 ), E 2 (X 2 ) sont données π AB (σ Λ>B (E)) σ Λ>B (π AB (E)) F1 F2 (E) F1 ( F2 (E)) X (E) X ( XY (E)) F (E l E 2 ) E l F (E 2 ) ако F X 2 Ако Y 2 X 2 и Y 2 X 1 X 2, то – X1 (E l E 2 ) E l Y2 (E 2 ) – Y (E l F E 2 ) Y ( Y2 (E l ) F Y2 (E 2 ) F (E l E 2 ) E l F E 2

31 B.Shishedjiev - Algèbre relationnelle31 Optimisation des expressions Les numéros des chefs qui ont des subordonnés dont l'age esy au dessous 30. Head ( Number=Employee Age < 30 (EMPLOYEES SUPERVISION)) Head ( Number=Employee ( Age < 30 (EMPLOYEES SUPERVISION))) Head ( Age < 30 (EMPLOYEES) Number=Employee SUPERVISION) Head ( Number ( Age < 30 (EMPLOYEES)) Number=Employee SUPERVISION )


Télécharger ppt "B.Shishedjiev - Algèbre relationnelle1 L'algèbre relationnelle Comment on calcule les relation."

Présentations similaires


Annonces Google