VI.ALGEBRE RELATIONNELLE
On peut la définir en six opérations de base dont certaines sont unaires, d'autres sont binaires :
Projection
Sélection
Union
Différence
Produit cartésien
Renommage
2.1) Projection
Notation : A1 ,...,Ak (r) où r est le nom de relation et 1 i k Ai Att(r). Le résultat de cette opération est une relation avec k colonnes
Exemple de projection :
On veut extraire les noms des employés de la relation «Emp» ci-dessous :
Emp
| Nom
| Num_Cte
| Rue
|
| Dupont
| 124
| Neuve
|
| Dupont
| 235
| Neuve
|
| Durand
| 123
| Vieille
|
Nom (Emp) = Dupont, Durand
2.2) Sélection
Notation : Cond (r) où r est le nom d'une relation et Cond est une condition de la forme
Atti Attj ou Atti constante avec {< , , =, , >, }, ou bien
une conjonction () ou une disjonction (V) de conditions
Le résultat est une relation qui contient tous les n-uplets de r qui satisfont la condition Cond
Exemple de sélection : On veut avoir les informations concernant les employés dont le nom est Dupont
Emp
| Nom
| Num_Cte
| Rue
|
| Dupont
| 124
| Neuve
|
| Dupont
| 235
| Neuve
|
| Durand
| 123
| Vieille
|
(Nom=Dupont) = Nom
| Num_Cte
| Rue
| Dupont
| 124
| Neuve
| Dupont
| 235
| Neuve
|
2.3) Union, Différence et Intersection
Opérations ensemblistes classiques
Notation : r U s; r - s; r s
r U s = {t | t r ou t s}
r - s = {t | t r et t s}
r s = {t | t r et t s}
Opérations binaires
Il faut que Att(r) = Att(s)
r
| A
| B
| s
| A
| B
|
|
| 1
|
|
| 2
|
|
| 2
|
|
| 3
|
|
| 1
|
|
|
|
r - s =
| A
| B
| r s =
| A
| B
| r s =
| A
| B
|
|
| 1
|
|
| 1
|
|
| 2
|
|
| 1
|
|
| 2
|
|
|
|
|
|
|
|
| 1
|
|
|
|
|
|
|
|
| 3
|
|
|
|
2.4) Produit cartésien
Notation : r x s avec r x s = { tv | t r et v s }
Où tv est la concaténation des tuples t et v.
Cette opération n'est pas définie si Att(r) Att(s) 0.
Att(r x s) = Att(r) U Att(s)
Exemple de Produit cartésien :
r
| A
| B
| s
| C
| D
| E
|
|
| 1
|
|
| 10
| +
|
|
| 2
|
|
| 10
| -
|
r x s
| A
| B
| C
| D
| E
|
|
| 1
|
| 10
| +
|
|
| 1
|
| 10
| -
|
|
| 2
|
| 10
| +
|
|
| 2
|
| 10
| -
|
2.5) Renommage
Notation : Atti Att'i (r) .
Ceci permet de renommer l'attribut Atti par Att’i.
Le résultat est la relation r avec un nouveau schéma
Exemple de Renommage :
-
-
2.6) Composition des opérateurs
On peut appliquer un opérateur de l'algèbre au résultat d'une autre opération.
Exemple : A ( B=20(r)). On dit que l'algèbre relationnelle est un langage fermé car chaque opération prend une ou deux relations et retourne une relation.
Soient les schémas de relation Tit(Id, Nom, Adresse) et Cte(Num, Solde, Id_Tit). Le compte de numéro Num appartient au client identifié par Id_Tit. On veut avoir (1) le numéro, (2) le solde et (3) le nom du titulaire de chaque compte débiteur. Tit Cte
-
Id
| Nom
| Adresse
|
| Num
| Solde
| Id_Tit
| A25
| Dupont
| Rue neuve
|
| 120
| 25234.24
| A25
| B212
| Durand
| Rue vieille
|
| 135
| -100
| A25
|
|
|
|
| 275
| 230
| B212
|
1. Cte x Tit retourne une relation qui associe à chaque tuple de Cte, tous les tuples de Tit.
2. Id=Id_Tit (Cte x Tit) élimine les tuples où le compte n'est pas associé au bon titulaire.
3 So1de < 0 ( Id=Id_Tit(Cte x Tit)) retient les comptes débiteurs
4. Nom, Num, Solde ( Solde<0 ( Id=Id_Tit (Cte x Tit))) élimine les attributs non demandés Comment aurait-on pu faire si dans Cte on avait Id au lieu de Id_Tit comme nom d'attribut ?
2.7) Jointure
Notation : r ixi s Att(r ixi s) = Att(r) U Att(s)
Résultat : Soient tr r et ts s. trts r ixi s SSI A Att(r) Att(s) tr.A = ts.A
Exemple de Jointure r
| A
| B
| s
| B
| C
|
|
| 10
|
| 10
| +
|
|
| 15
|
| 1
| -
|
|
| 1
|
|
|
|
r ixi s =
| A
| B
| C
|
|
| 10
| +
|
|
| 1
| -
|
Noter que le même résultat peut être obtenu comme suit
1. temp1 := BB1(s)
2. temp2 := r x temp1
3. temp3 := B=B1 (temp2)
4. res := A,B,C(temp3)
La jointure n'est pas une opération de base de l'algèbre relationnelle
0> |