Vous êtes sur la page 1sur 57

1

Rappels sur la normalisation des 


relations et l'algèbre relationnelle
Noureddine ARIBI
Université Oran1, Faculté des Sciences Exactes et Appliquées
Département d’Informatique

Laboratoire LITIO
aribi.noureddine@univ-oran1.dz
Mai 2021
2

Plan

 Les formes normales


 Algèbre Relationnelle
3

La théorie de la normalisation

 elle met en évidence les relations "indésirables"

 elle définit les critères des relations "désirables"

appelées formes normales


 Propriétés indésirables des relations
- Redondances

- Valeurs NULL
 elle définit le processus de normalisation permettant

de décomposer une relation non normalisée en un ensemble équivalent


de relations normalisées
4

Définitions (soient X, Y, Z et W des ensembles d’attributs) :


DEPENDANCE FONCTIONNELLE :

• Une dépendance fonctionnelle (DF) entre les ensembles d'attributs X et Y exprime le fait
que X détermine Y ou que Y dépend fonctionnellement de X. Elle s’écrit X → Y. Cela
implique qu’à une valeur de X ne peut correspondre qu’au plus une valeur de Y

DEPENDANCE FONCTIONNELLE ELEMENTAIRE (DFE) :

• Une DFE est une dépendance fonc6onnelle de la forme X → A, où A est un a8ribut


unique n’appartenant pas à X et où il n’existe pas X′ inclus au sens strict dans X (i.e. X′ ⊂
X) tel que X′ → A

DEPENDANCE FONCTIONNELLE DIRECTE (DFD) :

• Une DFD X → Y est une DF qui ne peut pas être déduite par transi6vité : il n’existe pas
d’a8ribut Z tel que X → Z et Z → Y
5

Illustrations par contre exemple


DEPENDANCE FONCTIONNELLE : CodeEleve → NoteControle

N’est une dépendance fonctionnelle car le code élève ne peut pas fournir une note de
contrôle. A un élève correspond plusieurs notes.

DEPENDANCE FONCTIONNELLE ELEMENTAIRE DFE :

Dans la relation RESULTAT(CodeEleve, NumControle, NomEleve)

CodeEleve, NumControle → NomEleve, le NumControle est inutile. N’est pas une dépendance
fonctionnelle élémentaire car le nom élève peut être obtenu à partir du simple CodeEleve.

DEPENDANCE FONCTIONNELLE DIRECTE DFD :

CodeEleve → LibelleNiveau

N’est pas une dépendance fonctionnelle directe car il existe CodeEleve → CodeNiveau et
CodeNiveau → LibelleNiveau.
6

La décomposition

Objectif:

- décomposer les relations du schéma relationnel

sans perte d’informations

- obtenir des relations canoniques ou de base du monde réel

- aboutir au schéma relationnel normalisé


7

1ère Forme Normale 1FN

Une relation est en 1FN si tout attribut est atomique (non


décomposable)
Contre-exemple
 ELEVE (no_elv, nom, prenom, liste_notes)

 Un attribut ne peut pas être un ensemble de valeurs

Décomposition
 ELEVE (no_elv, nom, prenom)

 NOTE (no_elv, no_matiere, note)


8

2ème Forme Normale 2FN

Une relation est en 2FN si


- elle est en 1FN
- si tout attribut n’appartenant pas à la clé ne dépend
pas d’une partie de la clé
 C’est la phase d’identification des clés

 Cette étape évite certaines redondances

 Tout attribut doit dépendre fonctionnellement de la totalité de


la clé
9

2ème Forme Normale 2FN


(illustration)
Contre-exemple
 une relation en 1FN qui n'est pas en 2FN

 COMMANDE (date, no_cli, no_pro, qte, prixUHT)

 elle n'est pas en 2FN car la clé = (date, no_cli, no_pro), et le prixUHT
ne dépend que de no_pro
Décomposition
 COMMANDE (date, no_cli, no_pro, qte)

 PRODUIT (no_pro, prixUHT)


10

3ème Forme Normale 3FN

Une relation est en 3FN si


- elle est en 2FN
- si tout attribut n’appartenant pas à la clé ne dépend
pas d’un attribut non clé
Ceci correspond à la non transitivité des D.F. ce qui
évite les redondances.
En 3FN une relation préserve les D.F. et est sans perte
d’information.
11

3ème Forme Normale 3FN


(illustration)
Contre-exemple
 une relation en 2FN qui n'est pas en 3FN

 VOITURE (matricule, marque, modèle, puissance)

 on vérifie qu'elle est en 2FN ; elle n'est pas en 3FN car la clé =

 matricule, et la puissance dépend de (marque, modèle)

Décomposition
 VOITURE (matricule, marque, modèle)

 MODELE (marque, modèle, puissance)


12

Conclusion – partie Normalisation

La normalisation est l’opération qui permet de transformer un


schéma relationnel composé de relations non normalisées en un
autre schéma relationnel composé de relations en 3FN afin
d'éviter toute redondance et anomalie de mise à jour.
13

Plan

 Les formes normales

 Algèbre Relationnelle
14

L'opérateur de projection

R: PIECE FOURNISS PROJET


écrou paul a
écrou paul b
boulon pierre a

Y={PIECE:D1, FOURNISSEUR:D2 }
πYR(X) : PIECE FOURNISS

écrou paul

boulon pierre
15

L'opérateur de sélection (restriction)

R: CLASSE NOM VILLE NAIS SPORT


6 pierre marseille 11.10.79 judo
6 pierre marseille 11.10.79 escrime
6 jacques aubagne 05.03.78 natation
6 paul marseille 06.07.79 football
5 luc aubagne 01.04.77 football
E =(VILLE='marseille') ∧ (NAIS ≤ '31.08.79')∧ ((SPORT='judo') ∨ (SPORT='football'))

σER(X) CLASSE NOM VILLE NAIS SPORT


6 paul marseille 06.07.79 football
16

Rebaptiser (renommer)

R: PIECE FOURNISS T= PI FOURNISS


ρPI/PIECER(X)
écrou pierre
écrou pierre
écrou paul
écrou paul
boulon alice
boulon alice
17

Opérateurs sur les ensembles

 Union A ∪ B

 Intersection A ∩ B

 Différence A - B

 Produit cartésien A⊗B

 Jointures

 Division A ÷ B ou A/B
18

Opérateurs sur les ensembles

R∪S : PIECE FOURNISS


R: PIECE FOURNISS écrou pierre
écrou pierre écrou paul
écrou paul boulon alice
boulon alice boulon pierre

R∩S : PIECE FOURNISS


S: PIECE FOURNISS
écrou pierre
écrou pierre boulon alice
boulon pierre
boulon alice S−R : PIECE FOURNISS
boulon pierre
19

Produit cartésien
S: PIECE PROJET
écrou a
écrou b
boulon a
T⊗S PI FOURNISS PIECE PROJET
R: PIECE FOURNISS
écrou pierre écrou a
écrou pierre écrou paul écrou a
écrou paul boulon alice écrou a
boulon alice écrou pierre écrou b
écrou paul écrou b
T : PI FOURNISS boulon alice écrou b
écrou pierre écrou pierre boulon a
T= ρPI/PIECER écrou paul écrou paul boulon a
boulon alice boulon alice boulon a
20

Jointures

Θ - jointure

D E R ⋈B≤D S : A B C D E
R: A B C S:
9 8 7 3 2 1 3 4
3 4
6 5 4 3 2 1 5 6
5 6 6 5 4 5 6
3 2 1
21

Jointures
Equi-jointure (Θ est “=”)
R: PIECE FOURNISS T ⋈PI=PIECE S PI FOURNISS PIECE PROJET
écrou pierre écrou pierre écrou a
écrou paul
écrou pierre écrou b
boulon alice
écrou paul écrou a
S: PIECE PROJET
écrou paul écrou b
écrou a
boulon alice boulon a
écrou b
boulon a
T= PI FOURNISS
ρPI/PIECER
écrou pierre
écrou paul
boulon alice
22

Jointures
Jointure naturelle : il est inutile de spécifier la condition dans
une jointure naturelle, elle reste toujours implicite.

R: PIECE FOURNISS
écrou pierre
écrou paul
T⋈S PIECE FOURNISS PROJET
boulon Alice
clou alice écrou pierre a

S: PIECE PROJET écrou pierre b


écrou a écrou paul a
écrou b écrou paul b
boulon c boulon alice c
vis d
23

Jointures
Semi-jointures(⋉, ⋊) : c’est une jointure suivie par une
projection sur les attributs de la première (seconde) relation.

R: PIECE FOURNISS
écrou pierre
écrou paul R ⋉S PIECE FOURNISS
boulon Alice écrou pierre
clou alice écrou paul
S: PIECE PROJET boulon alice
écrou a
écrou b R⋊ S PIECE PROJET
boulon c écrou a
vis d écrou b
boulon a
24

Jointures
Anti-jointure : le complément de la jointure

R: PIECE FOURNISS
écrou pierre
écrou paul
boulon Alice
clou alice
R⊳S PIECE FOURNISS
S: PIECE PROJET
clou alice
écrou a
écrou b
boulon c
vis d
25

Division

 Le résultat est une relation dont les attributs sont ceux qui sont
unique en R et les tuples sont ceux pour lesquels toutes les
combinaisons avec les tuples de S sont présents en R.
S: PIECE
R: PIECE FOURNISS
vis
vis pierre
boulon paul boulon
écrou pierre
vis paul R÷S : FOURNISS
boulon pierre pierre
boulon alice paul
26

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
27

Exemple de composition
AVION : #AV AVNOM CAP LOC PILOTE : #PL PLNOM ADR
100 airbus 300 nice 1 serge nice
101 airbus 300 paris 2 jean paris
102 carav 200 toulouse 3 claude grenoble

VOL : #VOL #PL #AV VD VA HD HA


it100 1 100 nice paris 7 8
it101 2 100 paris toulouse 11 12
it102 1 101 paris nice 12 13
it103 3 102 grenoble toulouse 9 11
it104 3 101 toulouse grenoble 17 18

Quels sont les noms des pilotes qui conduisent tous les types d'avions ?
28

Exemple de composition
 R1=πAVNOM,#PL(π#AV,AVNOMAVION⋈ π#AV,#PLVOL) ÷ πAVNOMAVION

 R2= πPLNOM(π#PL,PLNOMPILOTE ⋈R1)


02 : #PL #AV 03: PL# AV# AVNOM 04: PL# AVNOM
1 100 1 100 airbus 1 airbus
2 101 2 100 airbus 2 airbus
1 101 1 101 airbus 3 carav
3 102 3 102 carav 3 airbus

05: AVNOM 3 101 3 101 airbus

airbus 08: PL# PLNOM


07 : #PL PLNOM
R1: PL# 3 claude
carav 1 serge
3
2 jean R2 PLNOM
3 claude claude
29

La jointure externe (Outer Joint)


R: PI:D1 R ⟕PI = PI_F S : PI:D1 PI_F:D1 FOUR:D2
écrou écrou alice
écrou
boulon boulon paul
boulon
vis ω ω
vis
R⟖PI = PI_F S : PI:D1 PI_F:D1 FOUR:D2
S: PI_F:D1 FOUR:D2
écrou écrou alice
écrou alice
boulon boulon paul
boulon Paul
ω clou pierre
clou pierre
R ⟗PI = PI_F S : PI:D1 PI_F:D1 FOUR:D2

écrou écrou alice


boulon boulon paul
vis ω ω
ω clou pierre
30

Calculs sur les domaines


R Article Prix quant
 Extension
Clou 8.00 200
 Agrégation – Sum, Count, boulon 12.00 100

Average, Max, Min ecrou 12.00 120

S=πArticle,e(Prix*quant) as TotalR Article Total


Clou 1600.00
boulon 1200.00
ecrou 1440.00

Sum(πTotalS) Total
4240.00
31

Exemple
EMPLOYEES(Number, Name, Age, Salary)
SUPERVISION(Head, Employee)
EMPLOYEES SUPERVISION

Number Name Age Salary Head Employee


101 Mary Smith 34 40 210 101
103 Mary Bianchi 23 35 210 103
104 Luigi Neri 38 61 210 104
105 Nico Bini 44 38 231 105
210 Marco Celli 49 60 301 210
231 Siro Bisi 50 60 301 231
252 Nico Bini 44 70 375 252
301 Steve Smith 34 70
375 Mary Smith 50 65
32

Requêtes
1. 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))

Number Name Age Salary


101 Mary Smith 34 40
103 Mary Bianchi 23 35
104 Luigi Neri 38 61
105 Nico Bini 44 38
210 Marco Celli 49 60
231 Siro Bisi 50 60
252 Nico Bini 44 70
301 Steve Smith 34 70
375 Mary Smith 50 65
33

Requêtes
1. 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))

Number Name Age Salary


101 Mary Smith 34 40
104 Luigi Neri 38 61
210 Marco Celli 49 60
231 Siro Bisi 50 60
252 Nico Bini 44 70
301 Steve Smith 34 70
375 Mary Smith 50 65
34

Requêtes
1. 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))

Number Name Age


101 Mary Smith 34
104 Luigi Neri 38
210 Marco Celli 49
231 Siro Bisi 50
252 Nico Bini 44
301 Steve Smith 34
375 Mary Smith 50
35

Requêtes
2. Trouver les chefs qui ont des subordonnés qui ont grand salaires ( au dessus
de 40)

πHead(SUPRVISION⊳⊲Employee=Number(σSalary≥40(EMPLOYEES)))
Number Name Age Salary Head Employee
101 Mary Smith 34 40 210 101
103 Mary Bianchi 23 35 210 103
104 Luigi Neri 38 61 210 104
105 Nico Bini 44 38 231 105
210 Marco Celli 49 60 301 210
231 Siro Bisi 50 60 301 231
252 Nico Bini 44 70 375 252
301 Steve Smith 34 70
375 Mary Smith 50 65
36

Requêtes
2. Trouver les chefs qui ont des subordonnés qui ont grand salaires ( au dessus
de 40)

πHead(SUPRVISION⊳⊲Employee=Number(σSalary≥40(EMPLOYEES)))
Number Name Age Salary Head Employee
101 Mary Smith 34 40 210 101
104 Luigi Neri 38 61 210 103
210 Marco Celli 49 60 210 104
231 Siro Bisi 50 60 231 105
252 Nico Bini 44 70 301 210
301 Steve Smith 34 70 301 231
375 Mary Smith 50 65 375 252
37

Requêtes
2. Trouver les chefs qui ont des subordonnés qui ont grand salaires ( au dessus
de 40)

πHead(SUPRVISION⊳⊲Employee=Number(σSalary≥40(EMPLOYEES)))

Number Name Age Salary Head Employee


101 Mary Smith 34 40 210 101
104 Luigi Neri 38 61 210 104
210 Marco Celli 49 60 301 210
231 Siro Bisi 50 60 301 231
252 Nico Bini 44 70 375 252
38

Requêtes
2. Trouver les chefs qui ont des subordonnés qui ont grand salaires ( au dessus
de 40)

πHead(SUPRVISION⊳⊲Employee=Number(σSalary≥40(EMPLOYEES)))

Head
210
210
301
301
375
39

Requêtes
2. Trouver les chefs qui ont des subordonnés qui ont grand salaires ( au dessus
de 40)

πHead(SUPRVISION⊳⊲Employee=Number(σSalary≥40(EMPLOYEES)))

Head
210
301
375
40

Requêtes
3. 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)))

Number Name Age Salary Head Employee


101 Mary Smith 34 40 210 101
103 Mary Bianchi 23 35 210 103
104 Luigi Neri 38 61 210 104
105 Nico Bini 44 38 231 105
210 Marco Celli 49 60 301 210
231 Siro Bisi 50 60 301 231
252 Nico Bini 44 70 375 252
301 Steve Smith 34 70
375 Mary Smith 50 65
41

Requêtes
3. 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)))

Number Name Age Salary Head Employee


101 Mary Smith 34 40 210 101
103 Mary Bianchi 23 35 210 103
104 Luigi Neri 38 61 210 104
105 Nico Bini 44 38 231 105
210 Marco Celli 49 60 301 210
231 Siro Bisi 50 60 301 231
252 Nico Bini 44 70 375 252
42

Requêtes
3. 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)))

NumberH NameH AgeH SalaryH


101 Mary Smith 34 40
103 Mary Bianchi 23 35
104 Luigi Neri 38 61
105 Nico Bini 44 38
210 Marco Celli 49 60
231 Siro Bisi 50 60
252 Nico Bini 44 70
301 Steve Smith 34 70
375 Mary Smith 50 65
43

Requêtes
3. 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)))

Number Name Age Salary Head Employee NumberH NameH AgeH SalaryH

101 Mary Smith 34 40 210 101 210 Marco Celli 49 60

103 Mary 23 35 210 103 210 Marco Celli 49 60


Bianchi

104 Luigi Neri 38 61 210 104 210 Marco Celli 49 60

105 Nico Bini 44 38 231 105 231 Siro Bisi 50 60


210 Marco Celli 49 60 301 210 301 Steve Smith 34 70

231 Siro Bisi 50 60 301 231 301 Steve Smith 34 70

252 Nico Bini 44 70 375 252 375 Mary Smith 50 65


44

Requêtes
3. 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)))

NameH SalaryH
Marco Celli 60
Marco Celli 60
Marco Celli 60
Siro Bisi 60
Steve Smith 70
Steve Smith 70
Mary Smith 65
45

Requêtes
3. 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)))

NameH SalaryH
Marco Celli 60
Siro Bisi 60
Steve Smith 70
Mary Smith 65
46

Requêtes
4. 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))))
Number Name Age Salary Head Employee NumberH NameH AgeH SalaryH

101 Mary Smith 34 40 210 101 210 Marco Celli 49 60

103 Mary 23 35 210 103 210 Marco Celli 49 60


Bianchi

104 Luigi Neri 38 61 210 104 210 Marco Celli 49 60

105 Nico Bini 44 38 231 105 231 Siro Bisi 50 60


210 Marco Celli 49 60 301 210 301 Steve Smith 34 70

231 Siro Bisi 50 60 301 231 301 Steve Smith 34 70

252 Nico Bini 44 70 375 252 375 Mary Smith 50 65


47

Requêtes
4. 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))))

Number Name Age Salar Head Employ Number NameH AgeH SalaryH
y ee H
104 Luigi Neri 38 61 210 104 210 Marco 49 60
Celli
252 Nico Bini 44 70 375 252 375 Mary 50 65
Smith
48

Requêtes
4. 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))))

Number Name Salary NumberH NameH SalaryH


104 Luigi Neri 61 210 Marco Celli 60
252 Nico Bini 70 375 Mary Smith 65
49

Requêtes
5. 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)))))

Number Name Age Salary


101 Mary Smith 34 40 Head Employee
103 Mary Bianchi 23 35 210 101
104 Luigi Neri 38 61 210 103
105 Nico Bini 44 38 210 104
210 Marco Celli 49 60 231 105
231 Siro Bisi 50 60 301 210
252 Nico Bini 44 70 301 231
301 Steve Smith 34 70 375 252
375 Mary Smith 50 65
50

Requêtes
5. 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)))))

Number Name Age Salary


101 Mary Smith 34 40 Head Employee
103 Mary Bianchi 23 35 210 101
105 Nico Bini 44 38 210 103
210 104
231 105
301 210
301 231
375 252
51

Requêtes
5. 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)))))

Number Name Age Salary Head Employee


101 Mary Smith 34 40 210 101
103 Mary Bianchi 23 35 210 103
105 Nico Bini 44 38 231 105
52

Requêtes
5. 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)))))

Head
210
231
53

Requêtes
5. 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)))))

Head
Head
210
210
231
231
301
375
54

Requêtes
5. 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)))))

Head
301
375
55

Requêtes
5. 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)))))

Number Name Age Salary Head


301 Steve Smith 34 70 301
375 Mary Smith 50 65 375
56

Requêtes
5. 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)))))

Number Name
301 Steve Smith
375 Mary Smith
57

Merci de votre attention

Vous aimerez peut-être aussi