Académique Documents
Professionnel Documents
Culture Documents
Chapitre
L’Algèbre Relationnelle
1. Opérateurs classiques
2. Opérateurs particuliers
3. Opérateurs d’agrégation
4. Application
5. Conclusion
Introduction
2
Opérateurs Algébriques
OPÉRATEURS DE L’AR
• Opérateurs ensemblistes traditionnels Binaires :
– Union
– Intersection
– Différence
– Produit cartésien
• Opérateurs particuliers aux BDR
– Sélection
– Projection
– Jointure
– Renommage
– Etc.
Cet ensemble est complété par l’opérateur d’Agrégation
3
Opérateurs Algébriques
OPÉRATEURS DE L’AR
• Relations compatibles (ou de même schéma)
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]
• Exemple
4
Opérateurs Classiques
Union (∪)
• Définition
L’union de 2 relations R1 et R2 produit une relation R3 de
même schéma 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 schéma (Nvoit, Marque, Puissance) tel que
R1 : Voiture de marque « Peugeot »
R2 : Voiture de marque « Renault »
Alors R3 : …. Voitures de marque «Peugeot» ou «Renault»
5
Opérateurs Classiques
R1 R2
NP LibP Coul NP LibP Couleur
P2 Robinet Gris P4 Câble Noir
P1 Prise Blanc P3 Peinture Rouge
P2 Robinet Gris
R3 R1 ∪ R 2 NP LibP Coul
P2 Robinet Gris
P1 Prise Blanc
P4 Câble Noir
P3 Peinture Rouge
6
Opérateurs Classiques
7
Opérateurs Classiques
Union (∪)
Notation graphique R3
R1 R2
Notation par langage
SELECT A1, …… An | * | R1.*
FROM R1
UNION
SELECT B1, …… Bn | * | R2.*
FROM R2 ;
Comment traduire en SQL l’opération d’affectation dans R3?
8
Opérateurs Classiques
Intersection (∩)
• Définition
L’intersection de 2 relations R1 et R2 produit une relation R3
de même schéma 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 schéma (Nvoit, Marque, Puissance) tel que
R1 : Voiture de marque « Peugeot »
R2 : Voiture de puissance « 5 CV»
Alors R3 : ….. Voitures de marque «Peugeot» et de puissance «5 CV»
9
Opérateurs Classiques
R1 R2
NP LibP Coul NP LibP Couleur
P2 Robinet Gris P4 Câble Noir
P1 Prise Blanc P3 Peinture Rouge
P2 Robinet Gris
Si |P1|= n1 et |P2| =n2
Alors
R3 R1 ∩ R2 NP LibP Coul
|R3| ???
P2 Robinet Gris
10
Opérateurs Classiques
11
Opérateurs Classiques
12
Opérateurs Classiques
Intersection (∩)
Notation graphique R3
R1 R2
Notation par langage
SELECT A1, …… An
FROM R1
INTERSECT
SELECT B1, …… Bn
FROM R2 ;
13
Opérateurs Classiques
Différence (–)
Définition
La différence de deux relations R1 et R2 (dans l’ordre R1 –
R2) produit une relation R3 de même schéma contenant
les n-uplets de R1 n’apparaissant pas dans R2.
Pré-condition : R1 et R2 compatibles
Notation symbolique : R3 R1 – R2
Exemple
Si R1 et R2 de schéma (Nvoit, Marque, Puissance) tel que
R1 : Voiture de marque « Peugeot »
R2 : Voiture de puissance « 5CV »
Alors R3 : …. Voitures de marque «Peugeot» et de puissance autre
que « 5 CV»
14
Opérateurs Classiques
15
Opérateurs Classiques
Différence (–)
Notation graphique R3
R1 R2
16
Opérateurs Classiques
Produit (x)
Définition
Le produit de deux relations R1 et R2 fournit une relation
R3 dont le schéma est la concaténation des deux schémas
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 schémas quelconques)
Notation symbolique : R3 R1 x R2
17
Opérateurs Classiques
18
Opérateurs Classiques
Produit (x)
Notation graphique
R3
R1 R2
19
Chapitre III
L’Algèbre Relationnelle
Exemple
R1 (Nvoit, Marque, Puissance)
R π (Marque) R1 ou R R1[Marque]
R3 : …..les marques différentes des voitures
21
Opérateurs Particuliers
π (Coul)Produit Coul
Gris
Lister tous les (NP et Coul) des produits
Combien de lignes résultats ???? Blanc
22
Opérateurs Particuliers
R Marque
Peugeot
Renault
Volkswagen
23
Opérateurs Particuliers
Soit X = A, B A, B
R1
Le trapèze matérialise l’opération réduction des colonnes.
Notation par langage
SELECT DISTINCT A, B
FROM R1 ;
24
Opérateurs Particuliers
26
Opérateurs Particuliers
R1
Le trapèze inversé matérialise l’opération réduction des lignes.
Notation par langage
SELECT A1, A2, …… Aj | *
FROM R1
WHERE P ;
27
Opérateurs Particuliers
28
Opérateurs Particuliers
30
Opérateurs Particuliers
Jointure ( )
Notation graphique R
R1 R2
Notation par langage
SELECT A1, A2, …… An, B1, A2,… Bk | *
FROM R1, R2
WHERE P ;
31
Chapitre III
L’Algèbre Relationnelle
L’agrégation (AGG)
Définition
L’agrégation construit pour chaque groupe de lignes, d’une relation R1,
d’une liste R1.X une ligne contenant
possédant la même valeur
la valeur X et le résultat d’une fonction d’agrégation
calculée sur un attribut R1.B .
Notation symbolique : R AGG(R1 ; X ; B)
− R1 : relation
− X : liste des attributs de R1
− B : attribut de R1 à agréger
− AGG : fonction d’agrégation {COUNT, SUM, MIN, MAX, AVG}
Exemple
SUM(LIGNE-CMDE ; NPROD ; QTE) : Calcule ……..????
33
Opérateurs d’Agrégation
L’agrégation
Notation graphique R
AGG(X ; B)
34
Opérateurs d’Agrégation
L’agrégation : Exemples
EMP COUNT(EMP; DNO; ENO)
ENO NOM SAL DNO
DNO COUNT_ENO S DNO,count(ENO)
7369 SMITH 800 20
7499 ALLEN 1600 30
10 3 F EMP
7521 WARD 1250 30 20 5 GB Dno ;
7566 JONES 2975 20 30 6
7654 MARTIN 1250 30
7698 BLAKE 2850 30 AVG (EMP; DNO; SAL)
7782 CLARK 2450 10 DNO AVG_SAL
7788 SCOTT 3000 20
10 xxxx.yyy
7839 KING 5000 10
7844 TURNER 1500 30
20 ………..
7876 ADAMS 1100 20 30 ………..
7900 JAMES 950 30
SUM (EMP; DNO; SAL)
7902 FORD 3000 20
7934 MILLER 1300 10
35
Opérateurs d’Agrégation
36
Opérateurs d’Agrégation
Arbre Algébrique
• Il est possible de représenter les expressions de l’algèbre
relationnelle sous forme d’arbre.
• Les feuilles sont les relations opérandes (permanentes,
temporaires). Chaque nœud est un opérateur (accompagné
de son paramètre
• Exemple
Cf. à la section suivante (Application )
37
IV. Chapitre
L’Algèbre Relationnelle
1. Opérateurs classiques
2. Opérateurs particuliers
3. Opérateurs d’agrégation
4. Application
5. Conclusion
Application de l’AR
Application
• Soit la BD
FR(FNUM , FNOM , FVILLE) Fournisseurs
PR(PNUM , PDES , QTE, PCOUL) Produits
APPRO(AFNUM#, APNUM#, PU) Cond. d’approvisionnement
Q1. Numéros de fournisseurs qui habitent Sfax
• Notation symbolique
R1 (S FVILLE = ‘Sfax’(FR))[FNUM] R1
ou bien
R0 σ FVILLE = ‘Sfax’(FR) FNUM
R1 πFNUM R0
• Notation graphique FVILLE = ‘Sfax’
FR
39
FR(FNUM , FNOM , FVILLE)
PR(PNUM , PDES , QTE, PCOUL)
APPRO(AFNUM#, APNUM#, PU) Application de l’AR
Application
Q2. Numéro et nom de tous les fournisseurs
• Notation symbolique
R2 FR[FNUM, FNOM]
ou
R2 π(FNUM, FNOM) FR
• Notation graphique R2
FNUM, FNOM
FR
40
FR (FNUM , FNOM , FVILLE)
PR (PNUM , PDES , QTE, PCOUL) Application de l’AR
APPRO(AFNUM#, APNUM#, PU)
Application
R3
Q3. Numéro et nom des
fournisseurs du produit 122 FNUM, FNOM
R2
AFNUM=FNUM
Q3 en SQL ?
APPRO
41
FR (FNUM , FNOM , FVILLE)
PR (PNUM , PDES , QTE, PCOUL) Application de l’AR
APPRO(AFNUM#, APNUM#, PU)
Application
Q4. Nom des fournisseurs qui R4
fournissent au moins un
produit de couleur Rouge FNOM
R3
AFNUM=FNUM
R2
R1 S (Coul= ‘Rouge’) PR FR APNUM=PNUM
Q4 en SQL ?
PR
42
FR (FNUM , FNOM , FVILLE)
PR (PNUM , PDES , QTE, PCOUL)
Application de l’AR
APPRO(AFNUM#, APNUM#, PU)
Application
Q5. Nom des fournisseurs qui ne fournissent pas le produit
122
R1 FR [FNUM]
R2 (S (APNUM= 122) APPRO )[AFNUM]
R3 R1 – R2 -- R1 et R2 compatibles
R4 JOIN(R3, FR, AFNUM = FNUM) [FNOM]
43
FR (FNUM , FNOM , FVILLE)
PR (PNUM , PDES , QTE, PCOUL) Application de l’AR
APPRO(AFNUM#, APNUM#, PU)
Application
• Q5 En SQL
SELECT FNOM
FROM FR
WHERE FNUM IN
(SELECT FNUM
FROM FR
MINUS
SELECT AFNUM
FROM APPRO
WHERE APNUM = 122
);
44
FR(FNUM , FNOM , FVILLE)
PR(PNUM , PDES , QTE, PCOUL)
Application de l’AR
APPRO(AFNUM#, APNUM#, PU)
Application
Q6. Nombre de produits peu chers (PU< 200) par fournisseur
• Notation symbolique
R1 S(PU <200) (APPRO)
R2 COUNT(R1 ; AFNUM ; APNUM)
• Notation graphique
R2
COUNT(AFNUM ; APNUM)
• En SQL
SELECT AFNUM, COUNT(APNUM) R1
FROM APPRO
WHERE PU < 200 PU < 200
Group By AFNUM;
APPRO
45
Application de l’AR
Application II
46
Application de l’AR
Ou
R0 LABORATOIRE [*]
R0
LABORATOIRE
47
Application de l’AR
R1
CHNO, CHNOM
CHERCHEUR
48
Application de l’AR
R2 PUBLIER[CHNO]
49
Application de l’AR
CHNO
CHERCHEUR R2
CHNO
PUBLIER
50
Application de l’AR
CNOM
CHNO
CHERCHEUR PUBLIER
51
Application de l’AR
Q4. Nom des chercheurs qui ont des publications et qui sont
rattachés au laboratoire 20.
52
R4
Application Algébrique II
CNOM
CHNO
CHERCHEUR R42
R41 R2
CHNO CHNO
LABNO=20 PUBLIER
CHERCHEUR
53
Application Algébrique II
Q4. Nom des chercheurs qui ont des publications et qui sont
rattachés au laboratoire 20.
R1 σLABNO=20 (CHERCHEUR)
R2 JOIN(R1, PUBLIER P, R1.CHNO = P.CHNO) R4
R4 R2 [CNOM]
CNOM
R42
CHNO
R41
PUBLIER
LABNO=20
CHERCHEUR
54
Application Algébrique II
Q5. Nom des chercheurs ayant publié en tant que premier auteur (Rang =1).
55
Application Algébrique II
R6
LNOM
R62
LABNO
LABORATOIRE R61
FNOM=‘IIT’
FACULTE
56
Application Algébrique II
Q8. Nom des chercheurs qui ont publié dans l’un des deux thèmes
‘ENTREPOT DE DONNEES’ ou ‘INTEGRITE DES DONNEES’.
57
Application Algébrique II
R8
CNOM
CHNO R2
CHERCHEUR
CNNO
PID
PUBLIER R1
PTHEME = ‘ED’
ou
PTHEME=‘ID’
PUBLICATION
58
Application Algébrique II
Q9. Nom des chercheurs qui ont publié dans les deux thèmes
‘ENTREPOT DE DONNEES’ et ‘INTEGRITE DES DONNEES’.
59
R9
Q9. Nom des chercheurs qui ont publié dans
les deux thèmes ‘ENTREPOT DE DONNEES’ CNOM
et ‘INTEGRITE DES DONNEES’.
R5 CHNO
∩ CHERCHEUR
CHNO CHNO
R2 R4
R1 R3 PID
PID
PUBLIER PUBLIER
PTHEME = ‘ED’ PTHEME = ‘ID
PUBLICATION PUBLICATION
60
Application Algébrique II
Q10. Nom des chercheurs qui n’ont pas encore publié.
R10
R1 CHERCHEUR [CHNO]
R2 PUBLIER [CHNO]
CNOM
R3 R1 R2
R4
R4 JOIN(R3, CHERCHEUR, CHERCHEUR.CHNO=R3.CHNO)
R10 R4 [CNOM]
CHNO
R3
R1
R2
CHERCHEUR
CHNO CHNO
CHERCHEUR PUBLIER
61