Vous êtes sur la page 1sur 40

Algèbre Relationnelle

1
C'est quoi une “Algèbre”
Système mathématique composé de :
 Opérandes --- variables ou valeurs à
partir desquelles de nouvelles valeurs
peuvent être construites.
 Opérateurs --- symboles désignant
des procédures qui construisent de
nouvelles valeurs à partir de valeurs
données.
2
C'est quoi une Algèbre
Relationnelle?
 Une algèbre dont les opérandes sont des
relations ou des variables qui représentent
des relations.
 Les opérateurs sont conçus pour faire les
choses les plus courantes que nous devons
faire avec les relations dans une base de
données.
 Le résultat est une algèbre qui peut être
utilisée comme langage de requête pour les
relations.
3
Algèbre relationnelle de
base
 Union, intersection, et différence.
 Opérations ensemblistes habituelles, mais
les deux opérandes doivent avoir le même
schéma de relation.
 Sélection: choisir certaines lignes.
Projection: choisir certaines colonnes.
 Produits and jointures: compositions de
relations.
 Renommer des relations et des attributs.

4
Sélection
 R1 := σC (R2)
C est une condition (comme dans
les instructions « if ») qui fait
référence aux attributs de R2.
 R1 est tous les tuples de R2 qui
satisfont C.

5
Exemple: Selection
Relation vend:
Magasin Boisson Prix
Joe’s CoCa 2.50
Joe’s Shweps 2.75
Sue’s CoCa 2.50
Sue’s Shweps 3.00

Article de Joe := σmagasin (vend):


=”joe's”

Magasin Boisson Price


Joe’s Coca 2.50
Joe’s Shweps 2.75
6
Projection
 R1 := πL (R2)
 L est une liste d'attributs du schéma de R2.
 R1 est construite en examinant chaque
tuple de R2, en extrayant les attributs de la
liste L, dans l'ordre spécifié, et en créant à
partir de ces composants un tuple pour R1.
 Éliminez les tuples en double, le cas
échéant.

7
Exemple: Projection
Relation Vend:
magasin boisson prix
Joe’s CoCa 2.50
Joe’s Shweps 2.75
Sue’s Coca 2.50
Sue’s Shweps 3.00

Prix := πboisson,prix(Vend):
boisson prix
Coca 2.50
Shweps 2.75
Shweps 3.00
8
Projection Étendue
 En utilisant le même opérateur πL,
nous permettons à la liste L de
contenir des expressions arbitraires
impliquant des attributs :
1.Arithmétique sur les attributs, A+B->C.
2.Occurrences en double du même
attribut.

9
Exemple: Projection
Étendue
R= (A B)
1 2
3 4

πA+B->C,A,A (R) = C A1 A2
3 1 1
7 3 3

10
Produit
 R3 := R1 Χ R2
 Associez chaque tuple t1 de R1 à chaque
tuple t2 de R2.
 La concaténation t1t2 est un tuple de R3.
 Le schéma de R3 correspond aux attributs
de R1 puis de R2, dans l'ordre.
 Mais attention à l'attribut A du même nom
dans R1 et R2 : utilisez R1.A et R2.A.

11
Exemple: R3 := R1 Χ R2
R1( A, B) R3( A, R1.B, R2.B, C )
1 2 1 2 5 6
3 4 1 2 7 8
1 2 9 10
R2( B, C) 3 4 5 6
5 6 3 4 7 8
7 8 3 4 9 10
9 10

12
Theta-Jointure
 R3 := R1 ⋈C R2
 Prendre le produit R1 Χ R2.
 Ensuite, appliquez σC au résultat.
 Comme pour σ, C peut être
n'importe quelle condition
booléenne .

13
Exemple: Theta-Jointure
Vend(mag, boiss, prix ) magasins( nom, addr )
Joe’s Coca 2.50 Joe’s Maple St.
Joe’s Shweps 2.75 Sue’s River Rd.
Sue’s Coca 2.50
Sue’s Fanta 3.00

MagInfo := Vend ⋈vend.mag = magasin.nom magasin


MagInfo(mag, boiss, prix, nom, addr )
Joe’s Coca 2.50 Joe’s Maple St.
Joe’s Shweps2.75 Joe’s Maple St.
Sue’s Coca 2.50 Sue’s River Rd.
Sue’s Fanta 3.00 Sue’s River Rd.
14
Jointure Naturelle
 Une variante de jointure utile qui
relie deux relations en :
 Mettre en égalité les attributs du
même nom, et
 Projeter une copie de chaque paire
d'attributs en égalité.
 Noté R3 := R1 ⋈ R2.

15
Example: Natural Join
Vend(mag, boiss, prix ) magasins(mag,addr )
Joe’s Coca 2.50 Joe’s Maple St.
Joe’s Shweps 2.75 Sue’s River Rd.
Sue’s Coca 2.50
Sue’s Fanta 3.00

magInfo := Vend ⋈ magasins

magInfo( mag, boiss, prix, addr )


Joe’s Coca 2.50 Maple St.
Joe’s Shweps2.75 Maple St.
Sue’s Coca 2.50 River Rd.
Sue’s Fanta 3.00 River Rd.
16
Renommage
 L'opérateur ρ donne une nouveau
schema à la relation.
R1 := ρR1(A1,…,An)(R2) fait que R1 soit une
relation avec les attributs A1,…,An et
les mêmes tuples que R2.
 Notation simplifiée:
R1(A1,…,An) :=R2.
17
Exemple: Renommage
Mag( nom, addr )
Joe’s Maple St.
Sue’s River Rd.

R(mag, addr) := Mag

R( mag, addr )
Joe’s Maple St.
Sue’s River Rd.

18
Construire des expressions
complexes
 Combinez les opérateurs avec des
parenthèses et des règles de
priorité.
 Trois notations, comme en
arithmétique :
1.Séquences d'instructions d'affectation.
2.Expressions avec plusieurs opérateurs.
3.Arbres d'expression.

19
Séquences d’affectations
 Créer des noms de relation temporaires.
 Le renommage peut être implicite en
donnant aux relations une liste
d'attributs.
 Exemple: R3 := R1 ⋈C R2 peut être
écrite:
R4 := R1 Χ R2
R3 := σC (R4)
20
Expressions dans une seule
affectation
 Exemple: la theta-jointure
R3 := R1 ⋈C R2 peut être écrite:
R3 := σC (R1 Χ R2)
 Priorité des opérateurs relationnels:
1. [σ, π, ρ] (la plus élevée).
2. [Χ, ⋈].
3. ∩.
4. [∪, —]
21
Arbres d'expression
 Les feuilles sont des opérandes ---
soit des variables représentant des
relations, soit des relations
particulières et constantes.
 Les nœuds intérieurs sont des
opérateurs, appliqués à leur(s)
enfant(s).

22
Exemple: Arbre pour une
requête

 À l'aide des relations mag(nom,


add) et Ventes(mag, boiss, prix),
trouvez les noms de tous les mag
qui sont soit sur la rue Maple, soit
vendent du Cocaà moins de 3 $.

23
Comme un arbre:

ρ R(nom)

π nom πmag

σ addr = “Maple St.” σ


prix<3 et boiss=“Coca”

mag Ventes
24
Exemple: Auto-Jointure
 En utilisant Ventes(mag, boiss, prix),
trouvez les magasins qui vendent deux
boissons différents au même prix.
 Stratégie: en renommant, définir une
copie de Ventes, appelée S(mag, boiss1,
prix). La jointure naturelle de Ventes et S
se compose de quadruplés (mag, boiss,
boiss1, prix) de sorte que le magasin
vend les deux boissons à ce prix.
25
L’Arbre
π mag

σ boiss != boiss1


ρ
S(mag, boiss1, prix)

Ventes Ventes
26
Schémas pour les
résultats
 Union, intersection, et la différence:
les schémas des deux opérandes
doivent être les mêmes, utilisez donc
ce schéma pour le résultat.
 Selection: Le schéma du résultat est
le même que le schéma de
l'opérande.
 Projection: la liste des attributs nous
indique le schéma.
27
Schémas pour les
résultats --- (2)
 Produit: schéma est les attributs des
deux relations.
– Utiliser R.A, etc., pour distinguer
deux attributs nommés A.
 Theta-jointure: même que le produit.
 Jointure Naturelle : union des
attributs des deux relations.
 Renommage: l’opérateur montre le
schéma.
28
Algèbre relationnelle sur
les Bags
un bag (ou multiset ) est un
ensemble ou un élément peut
apparaître plusieurs fois.
 Exemple: {1,2,1,3} est un bag.
 Exemple: {1,2,3} est aussi un bag
qui est un ensemble.

29
Pourquoi les « Bags »?
 SQL, le langage de requête le plus
important pour les bases de
données relationnelles, est en fait
un langage sur les bags.
 Certaines opérations, comme la
projection, sont plus efficaces sur
les bags que sur les sets.

30
Opérations sur les Bags
 Selection s'applique à chaque tuple, donc
son effet sur les bags est comme son
effet sur les ensembles.
 Projection s'applique également à chaque
tuple, mais en tant qu'opérateur de bag,
nous n'éliminons pas les doublons.
 Produits et jointures sont effectués sur
chaque paire de tuples, donc les
doublons dans les bags n'ont aucun effet
sur la façon dont nous fonctionnons .

31
Exemple: Sélection sur les
bags
R( A, B )
1 2
5 6
1 2

σA+B < 5 (R) = A B


1 2
1 2

32
Exemple: Projection sur
les bags
R( A, B )
1 2
5 6
1 2

π A (R) = A
1
5
1

33
Exemple: Produit sur les
bags
R( A, B ) S( B, C )
1 2 3 4
5 6 7 8
1 2

R ΧS= A R.B S.B C


1 2 3 4
1 2 7 8
5 6 3 4
5 6 7 8
1 2 3 4
1 2 7 8 34
Exemple: Theta-Jointure
sur les bags
R( A, B ) S( B, C )
1 2 3 4
5 6 7 8
1 2

R ⋈ R.B<S.B S= A R.B S.B C


1 2 3 4
1 2 7 8
5 6 7 8
1 2 3 4
1 2 7 8
35
Union sur les bags
 Un élément apparaît dans l'union
de deux bags la somme du nombre
de fois qu'il apparaît dans chaque
bag.
 Exemple: {1,2,1} ∪ {1,1,2,3,1} =
{1,1,1,1,1,2,2,3}

36
Intersection sur les bags
 Un élément apparaît dans
l'intersection de deux bags le
minimum du nombre de fois où il
apparaît dans l'un ou l'autre.
 Exemple: {1,2,1,1} ∩ {1,2,1,3} =
{1,1,2}.

37
Différence sur les bags
 Un élément apparaît dans la
différence A – B des bags autant de
fois qu'il apparaît dans A, moins le
nombre de fois qu'il apparaît dans
B.
 Jamais inférieur de 0.
 Exemple: {1,2,1,1} – {1,2,3} =
{1,1}.
38
Attention : les lois sur les
Bags ! = des lois sur les
ensembles
 Certaines lois algébriques, mais
pas toutes, qui s'appliquent aux
ensembles s’appliquent également
aux bags.
 Exemple: la commutativité de
l’union (R ∪S = S ∪R ).
 car l’addition est commutative,

39
Exemple: Une loi qui ne
marche pas
 Union des ensembles est
idempotent, S ∪S = S.
 Cependant, pour les bags, si x
apparait n fois dans S, alors il va
apparaître 2n fois dans S ∪S.
 donc S ∪S != S en géneral.
 ex., {1} ∪ {1} = {1,1} != {1}.

40

Vous aimerez peut-être aussi