Vous êtes sur la page 1sur 2

Opérateurs de l'algèbre relationnelle

Sélection : σcondition(R) Jointure naturelle : R S


But : ne retenir que les tuples de R satisfaisant la But : créer toutes les combinaisons entre tuples de
condition précisée. deux relations ayant la même valeur pour tous les
• schéma(résultat) = schéma(R) attributs en commun.
• nb_tuples(résultat) ≤ nb_tuples(R) Précondition : les deux relations ont au moins un
Exemple : attribut en commun.
R
A B σB<4(R) A B
• schéma(R S) = schéma(R) ∪ schéma(S)
1 2 1 2
1 2 1 2 ⇒ Les attributs en commun n’apparaissent qu’une
3 4
seule fois !
Exemple :
Projection : πattributs(R) R S R S
A B B C A B C
But : ne retenir que les attributs précisés de R.
1 2 2 2 1 2 2
• schéma(résultat) ⊆ schéma(R) 3 4 2 3 1 2 3
• nb_tuples(résultat) ≤ nb_tuples(R) 5 6 4 6 3 4 6

Exemple :
R
A B C πA,B(R) A B
1 2 4 1 2
1 2 6 3 4 Jointure : R conditionS
3 4 7 But : créer toutes les combinaisons entre tuples de
Remarque : En SQL, la projection n'élimine pas les deux relations satisfaisant la condition précisée.
doublons ! Précondition: les deux relations n’ont pas d’attributs
en commun.
Produit cartésien : R × S • schéma(résultat) = schéma(R) ∪ schéma(S)

= σcondition(R×S)
But : construire toutes les combinaisons de tuples de
• R conditionS
deux relations.
Exemple :
• schéma(R×S) = schéma(R) ∪ schéma(S)
R S R B≠CS
• nb_tuples(R×S) = nb_tuples(R) × nb_tuples(S)
A B C D A B C D
Exemple : 1 2 2 2 1 2 4 6
R S R×S 3 4 2 3 3 4 2 2
A B B C A R.B S.B C 5 6 4 6 3 4 2 3
1 2 1 2 1 2 1 2 5 6 2 2
3 4 3 4 1 2 3 4 5 6 2 3
5 6 3 4 1 2 5 6 4 6
3 4 3 4
5 6 1 2
5 6 3 4
Différence : R − S Division : R ÷ S
But : sélectionner les tuples de R qui ne sont pas dans Soient les relations R et S tels que
S. schéma(S) ⊂ schéma(R)
Précondition : schéma(R) = schéma(S) • R(A1,…,Ak,Ak+1,…,Ak+n)
• schéma(R−S) = schéma(R) = schéma(S) • S(A1,…,Ak)
Exemple : • T(Ak+1,…,Ak+n) = R÷S est la "plus grande" relation
R A B S A B R−S A B telle que T×S ⊆ R.
1 2 1 2 3 4
Exemple :
3 4 7 8 5 6
5 6 R A B S A R÷S B
a1 b1 a1 b1
a2 b1 a2 b4
Union : R ∪ S a3 b1 a3
a4 b1
But : réunir dans une même relation les tuples de a1 b2
a3 b2
deux relations.
a2 b3
Précondition : schéma(R) = schéma(S) a3 b3
• schéma(R∪S) = schéma(R) = schéma(S) a4 b3
a1 b4
• nb_tuples(R∪S) ≤ nb_tuples(R) + nb_tuples(S) a2 b4
a3 b4
Exemple :
R A B S A B R∪S A B T1 = πB(R) T2 = πB((T1 × S) − R)
1 2 1 2 1 2 B B
3 4 7 8 3 4 b1 b1
5 6 5 6 b2 b3
7 8 b3
b4

Intersection : R ∩ S ⇒ R ÷ S = T1 − T2

But : sélectionner les tuples qui se trouvent à la fois


dans R et dans S.
Précondition : schéma(R) = schéma(S)
• schéma(R∩S) = schéma(R) = schéma(S)
• R ∩ S = R − (R − S)
Exemple :
R A B S A B R∩S A B
1 2 1 2 1 2
3 4 7 8
5 6

Vous aimerez peut-être aussi