Académique Documents
Professionnel Documents
Culture Documents
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
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
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
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
23
Comme un arbre:
∪
ρ R(nom)
π nom πmag
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
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
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