Académique Documents
Professionnel Documents
Culture Documents
Union ( ) Contient les tuples des relations 1 et 2.
Opérations additionnelles:
Intersection, join, division, « renaming »: Pas essentielles; utiles.
Les opérations retournant une relation, elles peuvent être
composées! (L’algèbre est close.)
sname rating
Projection yuppy 9
lubber 8
Efface les attributs qui ne sont pas dans
la liste de projection.
guppy 5
Le Schéma du résultat contient
rusty 10
exactement les attributs de la liste de
projection, avec les mêmes noms qu’ils
sname,rating(S2)
portaient dans la seule relation d’entrée
de la projection.
L’opérateur de projection doit éliminer
les duplicata! (Pourquoi?) age
Note: les systèmes réels n’éliminent
pas les duplicata, à moins que
35.0
l’utilisateur le fasse explicitement. 55.5
(Pourquoi?)
age(S2)
sid sname rating age
Sélection 28 yuppy 9 35.0
58 rusty 10 35.0
Sélectionne les lignes qui
ne satisfont pas une rating 8(S2)
condition de sélection.
Pas de duplicata dans le
résultat.
Schéma du résultat sname rating
identique au schéma de la yuppy 9
seule relation d’entrée.
rusty 10
Le résultat peut être
l’entrée d’une autre
opération algébrique sname,rating( rating 8(S2))
(Composition d’opérateurs).
Union, Intersection, Différence
Toutes ces opérations
prennent comme entrées sid sname rating age
deux relations qui doivent 22 dustin 7 45.0
être compatible vis-à-vis de 31 lubber 8 55.5
l’union: 58 rusty 10 35.0
même nombre de colonnes.
44 guppy 5 35.0
colonnes correspondantes ont
le même type.
28 yuppy 9 35.0
Par convention, le schéma du S1 S2
résultat sera le schéma de la
1ère relation. sid sname rating age
sid sname rating age 31 lubber 8 55.5
22 dustin 7 45.0 58 rusty 10 35.0
S1 S2 S1 S2
Produit Cartésien
Chaque ligne de S1 est appariée avec chaque ligne de R1.
Le schéma du résultat contient les attributs de S1 et R1,
avec les noms d’attributs hérités si possible.
Conflit: S1 et R1 ont chacun un attribut portant le nom sid.
Solution: changer le nom des attributs (« renaming »).
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
1
Joins (Suite)
Equi-Join: Un cas spécial du join conditionnel où la
condition c contient seulement des égalités.
sid sname rating age bid day
22 dustin 7 45.0 101 10/10/96
58 rusty 10 35.0 103 11/12/96
S1 R1
sid
Schéma du résultat similaire au produit Cartésien, mais
contient seulement une copie des attributs pour lesquels
l’égalité est spécifiée.
Join naturel: Equi-join dans lequel il y a égalité entre tous
les attributs ayant le même nom dans les deux relations.
1
Division
N’est pas supportée comme opérateur primitif, mais est utile
pour l’expression des requêtes telles que:
Trouver tous les
navigateurs qui ont réservé tous les bateaux.
Soit A une relation avec 2 attributs, x et y; B a seulement un
attribut y:
A/B = x | x, y A y B
i.e., A/B contient tous les tuples x (navigateurs) tels que pour chaque
tuple y (bateau) de B, il y a un tuple xy dans A.
Ou: Si l’ensemble des valeurs de y (bateaux) associées avec une valeur
x (navigateur) de A contient toutes les valeurs de y dans B, la valeur de
x est dans A/B.
En général, x et y peuvent être n’importe quelles listes
d’attributs; y est la liste des attributs de B, et x y est la liste
des attributs dans A.
1
Exemples de Division A/B
sno pno pno pno pno
s1 p1 p2 p2 p1
s1 p2 p4 p2
s1 p3 B1 p4
s1 p4
B2
s2 p1 sno B3
s2 p2 s1
s3 p2 s2 sno
s4 p2 s3 s1 sno
s4 p4 s4 s4 s1
1
Trouver les noms des navigateurs qui ont réservé
tous les bateaux
Utiliser la division; les schémas des relations
d’entrée à diviser doivent être choisis avec soins: