Vous êtes sur la page 1sur 10

27/10/2011

Introduction

Oprateurs Algbriques

Algbre Relationnelle (AR)


Objectif
Manipulation des relations de la BD (Interrogation et MAJ) Assurer lindpendance physique : langage assertionnels Aussi important que les oprateurs arithmtiques pour les nombres

Oprateurs de lAR
Oprateurs ensemblistes traditionnels Binaires :
Union Intersection Diffrence Produit cartsien Slection Projection Jointure Anti-projection Division

Cest une collection d'oprateurs ensemblistes agissant sur des relations et produisant toujours une nouvelle relation Lalgbre relationnelle est la base de SQL Les oprateurs de lAR se rpartissent en deux groupes : Les oprateurs ensemblistes traditionnels Les oprateurs particuliers aux BDR
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

Oprateurs particuliers aux BDR

Cet ensemble est complt par loprateur dAgrgation


88
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

89

Oprateurs Algbriques

Oprateurs Classiques

Oprateurs de lAR
Relations compatibles (de mme schma)
Soient 2 relations R1(A1, An) et R2 (B1, Bn) R1 et R2 sont compatibles ssi : 1. Degr(R1) = Degr(R2) et 2. Dom(Ai) = Dom (Bi) i [1..n]

Union ()
Dfinition Lunion de 2 relations R1 et R2 produit une relation R3 de mme schma contenant les n-uplets appartenant R1 ou R2 ou aux deux relations (sans duplication). Pr-condition : R1 et R2 compatibles Notation symbolique : R3 R1 R2 Exemple
Si R1 et R2 de schma (Nvoit, Marque, Puissance) tel que R1 : Voiture de marque Peugeot R2 : Voiture de Puissance 5CV Alors R3 : . Voitures de marque Peugeot ou 91 27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0) Renault

Exemple
R1 NOETUD
Mme domaine

NOM_ET
Mme domaine

PRENOM_ET
Mme domaine

R2 NOET

NOM

PRENOM

La compatibilit garantie un rsultat smantiquement valide


27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

90

27/10/2011

Oprateurs Classiques

Oprateurs Classiques

Union () : Exemple
Soient R1 et R2 des produits stocks dans 2 dpts diffrents
R1
NP P2 P1 LibP Prise Coul Blanc Robinet Gris

Union ()
Notation graphique R3
NP LibP Cble Peinture Robinet Coul Gris Blanc Noir Rouge Si |R1|= n1 et |R2| =n2 Alors |R3| ??? |R3| = ???
92

R2
Couleur Noir Rouge Gris

R1 Notation par langage


SELECT FROM UNION SELECT FROM
27/10/2011 15:52

P4 P3 P2

R2
A1, An | * | R1.* R1 B1, Bn | * | R2.* R2 ;
93

R3

R1 R2
P2 P1 P4 P3

NP

LibP Robinet Prise Cble Peinture

Comment traduire en SQL lopration daffectation dans R3?


J. FEKI FSEG-Sfax (Version 1.0)

27/10/2011 15:52

J. FEKI FSEG-Sfax (Version 1.0)

Oprateurs Classiques

Oprateurs Classiques

Intersection ()
Dfinition Lintersection de 2 relations R1 et R2 produit une relation R3 de mme schma contenant les n-uplets communs R1 et R2 Pr-condition : R1 et R2 compatibles Notation symbolique : R3 R1 R2 Exemple
Si R1 et R2 de schma (Nvoit, Marque, Puissance) tel que R1 : Voiture de marque Peugeot R2 : Voiture de puissance 5 CV Alors R3 : .. Voitures de marque Peugeot et de
27/10/2011 15:52

Intersection () : Exemple
Soient R1 et R2 des produits stocks dans 2 dpts diffrents
R1
NP P2 P1 LibP Prise Coul Blanc Robinet Gris

R2
NP P4 P3 P2 LibP Cble Peinture Robinet Coul Gris Si |R1|= n1 et |R2| =n2 Alors |R3| ??? Couleur Noir Rouge Gris

R3

R1 R2
P2

NP

LibP Robinet

puissance 5 CV

J. FEKI FSEG-Sfax (Version 1.0)

94

95
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

27/10/2011

Oprateurs Classiques

Oprateurs Classiques

Intersection ()
Notation graphique R3 R1 Notation par langage
SELECT FROM INTERSECT SELECT FROM
27/10/2011 15:52

Diffrence ()
Dfinition La diffrence de deux relations R1 et R2 (dans lordre R1 R2) produit une relation R3 de mme schma contenant les n-uplets de R1 napparaissant pas dans R2. Pr-condition : R1 et R2 compatibles Notation symbolique : R3 R1 R2 Exemple
Si R1 et R2 de schma (Nvoit, Marque, Puissance) tel que R1 : Voiture de marque Peugeot R2 : Voiture de puissance 5CV Alors R3 : . Voitures de marque Peugeot et de puissance
96
27/10/2011 15:52

R2
A1, An | * | R1.* R1 B1, Bn | * | R2.* R2 ;

J. FEKI FSEG-Sfax (Version 1.0)

autre que 5 CV

J. FEKI FSEG-Sfax (Version 1.0)

97

Oprateurs Classiques

Oprateurs Classiques

Diffrence () : Exemple
Soient R1 et R2 des produits stocks dans 2 dpts diffrents
R1
NP P2 P1 LibP Prise Coul Blanc Robinet Gris

Diffrence ()
Notation graphique R3
LibP Couleur Noir Rouge Gris

R2
NP P4 P3 P2 Cble Peinture Robinet

R1 Notation par langage


SELECT FROM MINUS SELECT FROM
98
27/10/2011 15:52

Lecture de gauche droite

R2
A1, An R1 B1, Bn R2 ;
99

R3
NP P1

R1 R2
LibP Prise Coul Blanc

R3
NP P4 P3

R2 R1
LibP Cble Peinture Couleur Noir Rouge

Si |R1|= n1 et |R2| =n2


27/10/2011 15:52

Alors

|R3|

n1 et |R3|

n2

J. FEKI FSEG-Sfax (Version 1.0)

J. FEKI FSEG-Sfax (Version 1.0)

27/10/2011

Oprateurs Classiques

Oprateurs Classiques

Produit (x)
Dfinition Le produit de deux relations R1 et R2 produit une relation R3 dont le schma est la concatnation des deux schmas de R1 et R2 contenant les (n+k)uplets obtenus en associant chaque n-uplet de R1 avec chaque k-uplet de R2. Pr-condition : Aucune (R1, R2 de schmas quelconques) Notation symbolique : R3 R1 x R2

Produit (x) : Exemple


R1 A x y z R3 u v v R2 B a d b
A x y z x y z 100 u v v u v v B a d b a d b C a a a x x x D u u u u u u 101
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

D a x u u

R1 x R2

E Si |R1|= n1 et |R2| =n2 Alors |R3| = ???

27/10/2011 15:52

J. FEKI FSEG-Sfax (Version 1.0)

Oprateurs Classiques

Oprateurs Particuliers

Produit (x)
Notation graphique R3 X R1 Notation par langage
SELECT FROM A1, An, B1, Bk R1, R2 ;

Projection dune relation ()


Dfinition La projection dune relation R1 sur une liste X de ses attributs retourne les n-uplets de R1 restreints aux valeurs des attributs de X en supprimant les duplicats. R2 Notation symbolique : R Exemple
R1 (Nvoit, Marque, Puissance) R (Marque) R1 ou R R1[Marque] R3 : ..les marques diffrentes des voitures

x R1

(ou R

R1 [X])

27/10/2011 15:52

J. FEKI FSEG-Sfax (Version 1.0)

102

27/10/2011 15:52

J. FEKI FSEG-Sfax (Version 1.0)

103

27/10/2011

Oprateurs Particuliers

Oprateurs Particuliers

Projection () : Exemple
Lister toutes les couleurs diffrentes des produits
NP P1 P3 P2 P4 LibP . . . . Coul Gris Blanc Blanc Blanc Coul Gris Blanc Poids . . . . PU . . . . Qtes . . . .

Projection dune relation ()


Notation graphique R
A, B

Soit X = A, B

(Coul)Produit

R1
Le trapze matrialise lopration rduction des colonnes.

Notation par langage


SELECT DISTINCT A, B FROM R1 ;
104
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

Lister tous les (NP et Coul) des produits


Combien de lignes rsultats ????
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

105

Oprateurs Particuliers

Oprateurs Particuliers

Slection de lignes ()
Dfinition La slection extrait dune relation R les lignes vrifiant un prdicat p. Notation symbolique : R

Slection de lignes () : Exemple


Trouver les produits dont le PU < 20.000
Produit
P1 P3 P5 P4 NP LibP Robinet Prise Cble Peinture Coul Gris Blanc Blanc Blanc Poids 5 1.2 2 25 PU 18.000 1.500 25.000 33.000 Qtes 1200 1000 1500 900

p R1

ou

Sp (R1)

Le prdicat p peut tre simple ou compos, il utilise: les attributs exclusivement de R, des constantes, oprateurs de comparaison (=, >, <, !=, <=, >= ) oprateurs logiques (ET , OU , NOT) toute combinaison valide

(PU < 20.000) Produit


NP P1 P3 106 LibP Robinet Prise Coul Gris Blanc Poids 5 1.2 PU 18.000 1.500 Qtes 1200 1000 107

Exemple
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

27/10/2011 15:52

J. FEKI FSEG-Sfax (Version 1.0)

27/10/2011

Oprateurs Particuliers

Oprateurs Particuliers

Slection de lignes () : Exemple


Notation graphique R
p

Jointure de deux relations ( )


Dfinition La jointure de deux relations R1 et R2 gnre une relation contenant un sous-ensemble des lignes du produit R1xR2 vrifiant un prdicat P. Notation symbolique R R1 ou P R2 Join(R1, R2, p)
Le prdicat p : se spcifie comme celui de la slection peut utiliser les attributs des deux relations prfixe les attributs de mme nom par R1 ou R2

R1
Le trapze invers matrialise lopration rduction des lignes.

Notation par langage


SELECT FROM WHERE
27/10/2011 15:52

A1, A2, An R1 p ;
108

Exemple
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

J. FEKI FSEG-Sfax (Version 1.0)

109

Oprateurs Particuliers

Oprateurs Particuliers

Jointure de deux relations ( ) : Exemple


Associer chaque client ses commandes
CMDE NCMD DATCMD NCLIENT CLT NCL NOMCL ADRCL
C1 C2 C3 C4 10/12/2009 13/02/2010 15/01/2010 03/09/2010 DATCMD 10/12/2003 13/02/2004 15/01/2004 03/09/2003 CL1 CL3 CL2 CL1 CL1 CL2 CL3 CL4 NCL CL1 CL3 CL2 CL1 Batam AMS BIAS INFOS Sfax Sousse Monastir Gabs ADRCL Sfax Monastir Sousse Sfax 110

Jointure ( )
Notation graphique R
p

R1 Notation par langage

R2 | *

CMDE
C1 C2 C3 C4
27/10/2011 15:52

(Cmde.NCLIENT =CLT.NCL)

CLT
NOMCL Batam BIAS AMS Batam

NCMD

NCLIENT CL1 CL3 CL2 CL1

SELECT A1, A2, An, B1, A2, Bk FROM WHERE R1, R2 p ; Alors |R| n1 * n2

Si |R1|= n1 et |R2| =n2


27/10/2011 15:52

J. FEKI FSEG-Sfax (Version 1.0)

J. FEKI FSEG-Sfax (Version 1.0)

111

27/10/2011

Oprateurs Particuliers

Oprateurs Particuliers

Jointure : ses variantes


Equijointure
Si p est de la forme AttributR1 = Attribut R2 , on parle de jointure naturelle ou quijointure Si de plus un des deux attributs est lquivalent dune cl primaire, alors |R| = n1 si cest lattribut de R1 |R| = n2 si cest lattribut de R2

Complment dune relation ( )


Dfinition Le complment de R1 est une relation R de mme schma que R1 contenant les n-uplets du produit cartsien des domaines de R1 qui n'appartiennent pas R1. Notation symbolique Exemple
R(F,P) F F1 F2 F2

-jointure (theta-jointure)
On parle de -jointure lorsque loprateur = est remplac par un autre oprateur de comparaison

Il faut connatre les valeurs de chaque domaine de R1. R R1 ou NOT(R1)


P R(F,P) 1 Dom(F) ={F1,F2,F3} 1 Dom(P) = {1,2} 2 F F1 F3 F3 P 2 1 2

Semi-jointure
Elle

sobtient en ne gardant que les lignes de R correspondant soit R1 (semi-jointure gauche) soit R2 (semi-jointure droite)
J. FEKI FSEG-Sfax (Version 1.0)

R(F,P) U R(F,P) = Dom(F) X Dom(P)


27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

27/10/2011 15:52

112

113

Oprateurs Particuliers

Oprateurs Particuliers

Complment dune relation ( )


Interprtation Smantique
Si R1(F, P) est dfinie par le prdicat le fabricant F fabrique le produit P alors R1 est lensemble des tuples du produit cartsien pour lesquels le prdicat est FAUX, cest--dire que : R1(F, P) donne pour chaque : fabricant l{ } des produits qu il ne fabrique pas, produit l{ } des fabricants qui ne le fabriquent pas

Complment dune relation ( )


Notation graphique R

Notation par langage


Mthode 1:

R1

Construire pour chaque attribut Ai de R1 son domaine dans une relation de travail DAi par projection de R1 sur Ai : DAi R1[Ai] Calculer le produit cartsien P de tous les domaines DAi en respectant le schma de R1 Calculer la diffrence P - R1

Mthode 2: Diffrence de deux requtes


27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

114

27/10/2011 15:52

J. FEKI FSEG-Sfax (Version 1.0)

115

27/10/2011

Oprateurs Particuliers

Oprateurs Particuliers

Anti-Projection ( ] X [ )
Dfinition Elle se fait sur un (ou plusieurs) attribut(s) dune relation R(A1,..Ai ,An) et selecte les valeurs de cet(ces) attribut(s) qui apparai(ssen)t dans R avec toutes les combinaisons du produit cartsien des domaines des autres attributs de R. Notation symbolique Exemple (diapo suivante) R1 ] A1,..Ai [

Anti-Projection ( ] X [ )
Exemple
R PIECE
VIS BOULON ECROU VIS BOULON
R]FOURN[ =

FOURN
PIERRE PAUL PIERRE PAUL PIERRE
FOURN PIERRE

Avec Dom(Pice) = {vis, boulon, crou }

Interprtation Dans R, PIERRE apparat avec toutes les valeurs du Dom(Pice), i.e., {PIERRE} x Dom(Pice) R. PIERRE est un fournisseur de TOUTES les pices.

27/10/2011 15:52

J. FEKI FSEG-Sfax (Version 1.0)

116

27/10/2011 15:52

J. FEKI FSEG-Sfax (Version 1.0)

117

Oprateurs Particuliers

Oprateurs Particuliers

Anti-Projection ( ] X [ )
Notation graphique R
X

Division ( )
Lanti-projection R(X,Y) ]X[ utilise toutes les valeurs de Y (i.e., Dom(Pice)). Supposons que lon veuille raliser cette opration pour un sous ensemble particulier de Y (i.e., quelques pices), on fera alors appel un oprateur plus gnral : La division algbrique. Dfinition La division de la relation D(X, Y) par V(Y) est une relation Q(X) contenant tous les tuples issus de D (par projection sur X) qui concatns avec chacun des tuples de V redonne toujours un tuple de D.
(Version simplifie de la division o Degr(D)= 2 et Degr(V)=1)
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

Notation par langage


Proposez

R1

Restreindre les valeurs de chaque domaine de R1 aux valeurs apparaissant dans R1.
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

118

119

27/10/2011

Oprateurs Particuliers

Oprateurs Particuliers

Division ( )
Notation symbolique R1 Exemple
D S
s1 s1 s1 s1 s1 s1 s2 s2 s3 s4 s4 s4
27/10/2011 15:52

Division ( )
D(X,Y) V(Y) ou DIV(D,V)
Exemple 2 Exemple 3

Notation symbolique R1 Exemple


D S
s1 s1 s1 s1 s1 s1 s2 s2 s3 s4 s4 s4
27/10/2011 15:52

D(X,Y) V(Y) ou DIV(D,V)


Exemple 2 Exemple 3

P
p1 p2 p3 p4 p5 p6 p1 p2 p2 p2 p4 p5

Exemple 1

P
p1 p2 p3 p4 p5 p6 p1 p2 p2 p2 p4 p5

Exemple 1

P p1

P p1

P p2 p4

(X=S) Q(S) = D(S,P) V(P)


Rsultat 1 Rsultat 2

(X=S) Q(S) = D(S,P) V(P)


Rsultat 1 Rsultat 2

P p1 p2 p3 p4 p5 p6

S s1 s2

S 1

J. FEKI FSEG-Sfax (Version 1.0)

120

J. FEKI FSEG-Sfax (Version 1.0)

121

Oprateurs Particuliers

Oprateurs Particuliers

Division ( )
Notation symbolique R1 Exemple
D S
s1 s1 s1 s1 s1 s1 s2 s2 s3 s4 s4 s4
27/10/2011 15:52

Division ( )
D(X,Y) V(Y) ou DIV(D,V)
Exemple 2 Exemple 3

P
p1 p2 p3 p4 p5 p6 p1 p2 p2 p2 p4 p5

Exemple 1

P p1

P p2 p4

(X=S) Q(S) = D(S,P) V(P)


Rsultat 1 Rsultat 2

P p1 p2 p3 p4 p5 p6

Interprtation smantique Si D(S, P) dcrit lapprovisionnement alors Q(S) = D(S, P) V(P) dtermine les fournisseurs tels que chacun deux fournit toutes les pices de la table V (qui est en fait un sous ensembles des pices de D). Notation graphique R3 Notation par langage
Proposez
Mthode 1 ? - Mthode 2 ??
J. FEKI FSEG-Sfax (Version 1.0)

S s1 s2

S s1 s4

S s1

R1

R2
- Mthode 3 ??? 123

|Q| = ??? Nombre de valeurs distinctes de P dans D


J. FEKI FSEG-Sfax (Version 1.0)

122

27/10/2011 15:52

27/10/2011

Oprateurs Particuliers

Redondance de lAR
Lalgbre relationnelle est redondante :
La jointure
Slection sur le produit cartsien des 2 relations.

Lintersection
Exprime par la diffrence

La division

D (X, Y) V(Y) = T U avec T = D[X] U = ((T x V) D) [X]

Lanti-projection est un cas particulier de la division Ces proprits indiquent que les oprateurs examins ne sont pas primitifs, puisque les uns peuvent tre exprims en fonction des autres. Cette redondance est voulue et a pour but doffrir plus dalternatives quant lutilisation du LMD.
27/10/2011 15:52 J. FEKI FSEG-Sfax (Version 1.0)

124

10

Vous aimerez peut-être aussi