Vous êtes sur la page 1sur 61

IV.

Chapitre
L’Algèbre Relationnelle

1. Opérateurs classiques
2. Opérateurs particuliers
3. Opérateurs d’agrégation
4. Application
5. Conclusion
Introduction

ALGEBRE RELATIONNELLE (AR)


• Objectif
– Manipulation des relations de la BD (Requêtes recherche et MAJ)
– Assurer l’indépendance physique : langage assertionnels
Aussi important que les opérateurs arithmétique pour les nombres
• C’est une collection d'opérateurs ensemblistes agissant sur
des relations et produisant toujours une nouvelle relation
• L’algèbre relationnelle est la base de SQL
• Les opérateurs de l’AR se répartissent en deux groupes :
– Les opérateurs ensemblistes traditionnels
– Les opérateurs particuliers aux BDR

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

R1 NOETUD NOM_ET PRENOM_ET


Même domaine même domaine Même domaine
R2 NOET
La compatibilité garantieNOM PRENOM valide
un résultat sémantiquement

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

Union (∪) : Exemple


Soient R1 et R2 des produits stockés dans 2 dépôts différents.

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

Union (∪) : Exemple


R1(Nvoit, Marque, Puissance) : Voitures de marque « Peugeot »
R2(Nvoit, Marq, Puiss) : Voitures de puissance 5 cv
R3 : Voitures de marque «Peugeot» ou de puissance 5 cv.
R1 Nvoit Marque Puissance R2 Nv Marq Puiss
1230 Peugeot 5 1456 Renault 5
1231 Peugeot 6 1457 Renault 5
1233 Peugeot 4 1230 Peugeot 5

R3 Nvoit Marque Puissance


1230 Peugeot 5
1231 Peugeot 6
1233 Peugeot 4
1456 Renault 5
1457 Renault 5

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

Intersection (∩) : Exemple


Soient R1 et R2 des produits stockés dans 2 dépôts différents.

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

Intersection (∩) : Exemple

R1 Nvoit Marque Puissance R2 Nv Marq Puiss


1230 Peugeot 5 1456 Renault 5
1231 Peugeot 6 1457 Renault 5
1233 Peugeot 4 1230 Peugeot 5

R3 Nvoit Marque Puissance


1230 Peugeot 5

11
Opérateurs Classiques

Produit (x) : Exemple


R1 R2
A B C D E
x u a a u
y v d x u
z v b
Si |R1|= n1 et |R2| =n2
R3 R1 x R2 A B C D E Alors
x u a a u |R3| = ???
y v d a u
z v b a u
x u a x u
y v d x u
z v b x u

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

Différence (–) : Exemple

R1 Nvoit Marque Puissance R2 Nv Marq Puiss


1230 Peugeot 5 1456 Renault 5
1231 Peugeot 6 1457 Renault 5
1233 Peugeot 4 1230 Peugeot 5

R3 Nvoit Marque Puissance


1231 Peugeot 6
1233 Peugeot 4

15
Opérateurs Classiques

Différence (–)
Notation graphique R3

Lecture de gauche à droite


R1 R2

Notation par langage


SELECT A1, …… An
FROM R1
MINUS
SELECT B1, …… Bn
FROM 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

Produit (x) : Exemple


R1 Nvoit Marque Puissance R2 NPers Nom
1230 Peugeot 5 1 Alia
1231 Renault 6 2 Ridha
1233 Volkswagen 4 3 Jamel

R3 Nvoit Modele Puissance NPers Nom


Si |R1|= n1 et |R2| =n2
1230 Peugeot 5 1 Alia
Alors
1231 Renault 6 1 Alia
|R3| = ???
1233 Volkswagen 4 1 Alia
1230 Peugeot 5 2 Ridha
1231 Renault 6 2 Ridha
1233 Volkswagen 4 2 Ridha
1230 Peugeot 5 3 Jamel
1231 Renault 6 3 Jamel
1233 Volkswagen 4 3 Jamel

18
Opérateurs Classiques

Produit (x)
Notation graphique
R3

R1 R2

Notation par langage


SELECT A1, …… An, B1, …… Bk | *
FROM R1, R2 ;

SELECT A1, …… An, B1, …… Bk | *


FROM R1 CROSS JOIN R2

19
Chapitre III
L’Algèbre Relationnelle

III.1. Opérateurs classiques


III.2. Opérateurs particuliers
III.3. Opérateurs d’agrégation
III.4. Application
III.5. Conclusion
Opérateurs Particuliers

Projection d’une relation (π)


Définition
La projection d’une 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.

Notation symbolique : R πx R1 (ou R R1 [X])

Exemple
R1 (Nvoit, Marque, Puissance)
R π (Marque) R1 ou R R1[Marque]
R3 : …..les marques différentes des voitures

21
Opérateurs Particuliers

Projection (π) : Exemple


Lister toutes les couleurs différentes des produits

NP LibP Coul Poids PU Qtes


P1 …. Gris …. …. ….
P3 …. Blanc …. …. ….
P2 …. Blanc …. …. ….
P4 …. Blanc …. …. ….

π (Coul)Produit Coul
Gris
Lister tous les (NP et Coul) des produits
Combien de lignes résultats ???? Blanc

22
Opérateurs Particuliers

Projection (π) : Exemple


R1 (Nvoit, Modele, Puissance),;
Lister toutes les marques différentes des voitures de R1

R π(Marque) R1 ou par R R1[Marque]

R Marque
Peugeot
Renault
Volkswagen

23
Opérateurs Particuliers

Projection d’une relation (π)


Notation graphique
R

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

Sélection de lignes (σ)


Définition
La sélection sur une relation R1 produit une relation de
même schéma que R contenant les lignes extraits de R
vérifiant un prédicat P.
Notation symbolique
R σp (R1) ou R Sp (R1)
Le prédicat P peut être simple ou composé, il utilise:
− les attributs exclusivement de R1, des constantes,
− opérateurs de comparaison (=, >, <, !=, <=, >= )
− opérateurs logiques (ET , OU , NOT)
− toute combinaison valides
Exemple
25
Opérateurs Particuliers

Sélection de lignes (σ) : Exemple


R σMarque=’Peugeot’ ET Puissance<6 (R1)

R1 Nvoit Marque Puissance


1230 Peugeot 5
1231 Renault 6
1233 Volkswagen 4

R Nvoit Marque Puissance


1230 Peugeot 5

26
Opérateurs Particuliers

Sélection de lignes (σ) : Exemple


Notation graphique R

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

Jointure de deux relations ( )


• Définition
La jointure de deux relations R1 et R2 génère une relation
contenant un sous-ensemble des lignes du produit R1xR2
vérifiant un prédicat p.
• Notation symbolique R R1 P R2 ou Join(R1, R2, p)
Le prédicat p :
− se spécifie comme celui de la sélection
− peut utiliser les attributs des deux relations
− préfixe les attributs de même nom par R1 ou R2
• Exemple

28
Opérateurs Particuliers

Jointure de deux relations ( ) : Exemple


Associer chaque client à ses commandes

CMDE NCMD DATCMD NCLIENT CLT NCL NOMCL ADRCL


C1 10/12/2009 CL1 CL1 Batam Sfax
C2 13/02/2010 CL3 CL2 AMS Sousse
C3 15/01/2010 CL2 CL3 BIAS Monastir
C4 03/09/2010 CL1 CL4 INFOS Gabès
CMDE (Cmde.NCLIENT =CLT.NCL) CLT
NCMD DATCMD NCLIENT NCL NOMCL ADRCL
C1 10/12/2003 CL1 CL1 Batam Sfax
C2 13/02/2004 CL3 CL3 BIAS Monastir
C3 15/01/2004 CL2 CL2 AMS Sousse
C4 03/09/2003 CL1 CL1 Batam Sfax
29
Opérateurs Particuliers

Jointure de deux relations ( ) : Exemple


Associer chaque voiture à son propriétaire

R1 Nvoit Marque Puissance NPers R2 NPers Nom


123 Peugeot 5 2 1 Alia
456 Renault 6 1 2 Ridha
689 Volkswagen 4 3 3 Jamel

R Join (R1, R2, R1.NPers=R2.NPers)

R Nvoit Marque Puissance NPers Nom


123 Peugeot 5 2 Ridha
456 Renault 6 1 Alia
689 Volkswagen 4 3 Jamel

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

III.1. Opérateurs classiques


III.2. Opérateurs particuliers
III.3. Opérateurs d’agrégation
III.4. Application
III.5. Conclusion
Opérateurs d’Agrégation

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)

Notation par langage


R1
SELECT X, AGG(B)
FROM R1
GROUP BY X;
Fonctionnement
1. Trier R1 selon X; on obtient un groupe pour chaque valeur x de X
2. Pour chaque groupe, appliquer la fonction d’agrégation, et
3. Générer un tuple et l’insérer à R(X, AGG-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

Agrégation : Opérateur généralisée


Travailler sur un sous-ensemble de R1 et restreindre le résultat à un sous-
ensemble des groupes.
Notation symbolique R AGG(R1; X ; B ; C1 ; C2)
− C1 et C2 Optionnels
− C1 prédicat de sélection sur R1
− C2 prédicat de sélection sur les groupes construits
Notation par langage
SELECT X, AGG(B)
FROM R1
WHERE C1
GROUP BY X
HAVING C2 ;
Exemple : Salaire moyen des employés dans les dépt ayant plus de 2
employés

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

R1 S (APNUM = 122) APPRO FR R1


R2 JOIN(R1, FR, AFNUM = FNUM)
R3 R2 [FNUM, FNOM] APNUM =122

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

R2 JOIN(R1, APPRO, APNUM = PNUM) R1


R3 JOIN(R2, FR, AFNUM = FNUM) APPRO
R4 R3 [FNOM] Coul=‘Rouge’

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

Tous les FR Les FR du


Moins 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

• CHERCHEUR (Chno, Cnom, Grade, Statut, Chefno#, Sal,


Labno#, Facno# …)

• LABORATOIRE (Labno, Lnom, Facno#, ……)

• FACULTE (Facno, Fnom, Loc, Libelle,……)

• PUBLICATION (Pid, Ptitre, Ptheme, Pdate, Editeur, …)

• PUBLIER (Chno#, Pid#, Rang, ..)

46
Application de l’AR

Q0. Restituer toutes les données des laboratoires.

R0 LABORATOIRE [Labno, Lnom, Facno]

Ou

R0 LABORATOIRE [*]

R0

LANNO, LNOM, FACNO

LABORATOIRE

47
Application de l’AR

Q1. Numéro et nom de tous les chercheurs.

R1 CHERCHEUR [CHNO, CNOM]

R1

CHNO, CHNOM

CHERCHEUR

48
Application de l’AR

Q2. Numéro des chercheurs qui ont des publications.

Les numéros des chercheurs qui ont des publications se trouvant


dans PUBLIER.

R2 PUBLIER[CHNO]

49
Application de l’AR

Q3. Nom des chercheurs qui ont des publications.


On peut construire le résultat à partir de la réponse à la question
précédente par jointure :
R3 JOIN(R2, CHERCHEUR C, R2.CHNO = C.CHNO) [CNOM]
R3
CHERCHER C et LABORATOIRE L
Allège les écritures. CNOM

CHNO

CHERCHEUR R2

CHNO

PUBLIER
50
Application de l’AR

Q3. Nom des chercheurs qui ont des publications.


Autrement
R3 JOIN(PUBLIER P, CHERCHEUR C, P.CHNO = C.CHNO)
[CNOM]
R3

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.

R4 JOIN (R42, CHERCHEUR, R42.CHNO =


CHERCHEUR.CHNO) [CNOM]

La première partie de la requête correspond à la question Q2. Ces


chercheurs doivent de plus être rattachés au laboratoire 20. Il suffit
donc de calculer l’intersection entre R2 et l’ensemble des chercheurs
de ce laboratoire. D’où la solution par intersection :
R2 PUBLIER[CHNO]
R41 σLABNO=20 (CHERCHEUR)[CHNO]
-- la projection sur CHNO est indispensable pour que R2 et R4 aient
le même schéma.
R42 R2 ∩ R41
Il suffit maintenant de faire la jointure entre R42 et CHERCHEUR
pour restituer les noms des chercheurs.

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

• R51 σRANG=1 (PUBLIER)


• R52 JOIN(R51, CHERCHEUR C, R51.CHNO = C.CHNO)
• R5 R52 [CNOM]

55
Application Algébrique II

Q6. Nom des laboratoires de la IIT.

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’.

R1 σ(PTHEME=’ENTREPOT DE DONNEES’ OU PTHEME=’INTEGRITE DES DONNEES’)


(PUBLICATION) [PID]

R2 JOIN(R1, PUBLIER, PUBLIER.PID=R1.PID)[CHNO]


R8 JOIN(R2, CHERCHEUR , C.CHNO=R2.CHNO) [CNOM]

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’.

• R1 σPTHEME=’ENTREPOT DE DONNEES’ (PUBLICATION)


• R2 JOIN(R1, PUBLIER, PUBLIER.PID=R1.PID)[CHNO]
• R3 σPTHEME=’INTEGRITE DES DONNEES’ (PUBLICATION)
• R4 JOIN(R3, PUBLIER, PUBLIER.PID=R3.PID)[CHNO]
• R5 R2 ∩ R4
• R9 JOIN (R5, CHERCHEUR, CHERCHEUR.CHNO=R5.CHNO)[CNOM]

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

Vous aimerez peut-être aussi