Algèbre relationnelle
Introduction
L'algèbre relationnelle est un support mathématique cohérent sur lequel repose le modèle relationnel. L'objet de cette section est d'aborder l'algèbre relationnelle dans le but de décrire les opérations qu'il est possible d'appliquer sur des relations pour produire de nouvelles relations. L'approche suivie est donc plus opérationnelle que mathématique.
On peut distinguer 3 familles d'opérateurs relationnels
-
Les opérateurs unaires (Sélection, Projection) : ce sont les opérateurs les plus simples, ils permettent de produire une nouvelle table à partir d'une autre table
-
Les opérateurs binaires ensemblistes (Union, Intersection Différence) : ces opérateurs permettent de produire une nouvelle relation à partir de deux relations de même degré et de même domaine
-
Les opérateurs binaires ou n-aires (Produit cartésien, Jointure, Division) : ils permettent de produire une nouvelle table à partir de deux ou plusieurs autres tables.
Les notations ne sont pas standardisées en algèbre relationnelle. Ce cours utilise des notations courantes, mais donc pas forcément universelles.
Les notations ne sont pas standardisées en algèbre relationnelle. Ce cours utilise donc des notations courantes, mais donc pas forcément universelles.
Sélection
Sélection :
La sélection (parfois appelée restriction) génère une relation
regroupant exclusivement toutes les occurrences de la relation qui
satisfont l'expression logique , on la note . Il s'agit d'une
opération unaire essentielle dont la signature est
En d'autres termes, la sélection permet de choisir (ie de sélectionner) des lignes dans le tableau. Le résultat de la sélection est donc une nouvelle relation qui a les mêmes attributs que . Si est vide (ie ne contient aucune occurrence), la relation qui résulte de la sélection est vide.
Numéro | Nom | Prénom |
---|---|---|
5 | Durand | Caroline |
1 | Germain | Stan |
12 | Dupont | Lisa |
3 | Germain | Rose-Marie |
Numéro | Nom | Prénom |
---|---|---|
5 | Durand | Caroline |
12 | Dupont | Lisa |
Projection
Projection :
La projection consiste à supprimer les attributs autres que
d'une relation et à éliminer kes -uplets en double
apparaissant dans la nouvelle relation, on la note .
Il s'agit d'une opération unaire essentielle dont la signature est :
En d'autres termes, la projection permet de choisir des colonnes dans le tableau. Si est vide, la relation qui résultat de la projection est vide, mais pas forcément équivalente (elle contient généralement moins d'attributs).
Nom |
---|
Durand |
Germain |
Dupont |
Union
Union :
L'union est une opération portant sur deux relations et
ayant le même schéma et construisant une troisième relation constituée
des -uplets appartenant à chacune des deux relations et
sans doublon, on la note . Il s'agit une opération binaire
ensembliste commutative essentielle dont la signature est
Comme nous l'avons déjà dit, et doivent avoir les mêmes attributs et si une même occurrence existe dans et , elle n'apparaît qu'une seule fois dans le résultat de l'union. Le résultat de l'union est une nouvelle relation qui a les mêmes attributs et si une même occurrence existe dans et , elle n'apparaît qu'une seule fois dans le résultat de l'union. Le résultat de l'union est une nouvelle relation qui a les mêmes attributs que et . Si et sont vides, la relation qui résulte de l'union est vide. Si (respectivement ) est vide, la relation qui résulte de l'union est identique à (respectivement ).
Intersection
Intersection :
L'intersection est une opération portant sur deux relations
et ayant le même schéma et construisant une troisième relation
dont les -uplets sont constitués de ceu appartenant aux deux relations, on
la note . Il s'agit d'une opération binaire ensemble commutative
dont la signature est
Comme nous l'avons déjà dit et doivent avoir les mêmes attributs. Le résultat de l'intersection est une nouvelle relation qui a les mêmes attributs que et . Si ou ou les deux sont vides, la relation qui résulte de l'intersection est vide.
Différence
Différence :
La différence est une opération portant sur deux relations
et ayant le même schéma et construisant une troisième relation
dont les -uplets sont constitués de ceux ne se trouvant que dans la
relation : on la note . Il s'agit d'une opération binaire
ensembliste non commutative essentielle dont la signature est
Comme nous l'avons déjà dit, et doivent avoir les mêmes attributs. Le résultat de la différence est une nouvelle relation qui a les mêmes attributs que et . Si est vide, la relation qui résulte de la différence est vide. Si est vide, la relation qui résulte de la différence est identique à .
Produit catésien
Produit cartésien :
Le produit cartésien est une opération portant sur deux
relations et et qui construit une troisième relation regroupant
exclusivement toutes les possiblités de combinaison des occurences des relations
et , on la note .
Il s'agit une opération binaire commutative essentielle dont la signature est
Le résultat du produit cartésien est une nouvelle relation qui a tous les attributs de et tous ceux de . Si ou ou les deux sont vides, la relation qui résulte du produit cartésien est vide. Le nombre d'occurrences de la relation qui résulte du produit cartésien est le nombre d'occurrences de multiplié par le nombre d'occurrences de .
Jointure, théta-jointure, équijointure, jointure naturelle
Jointure
Jointure :
La jointure est une opération portant sur deux relations et
qui construit une troisième relation regroupant-exclusivement toutes les
possibilités de combinaire des occurences des relations et qui
satisfont l'expression logique . La jointure est notée . Il s'agit d'une opérations binaire commutative dont la signature est
Si ou ou les deux sont vides, la relation qui résulte de la jointure est vide. En fait, la jointure n'est rien d'autre qu'un produit cartésien suivi d'une sélection
Théta-jointure
Théta-jointure :
Une thêta-jointure est une jointure dans laquelle l'expression
logique est une simple comparaison entre un attribut de la
relation et un attribut de la relation . La
thêta-jointure est notée .
Équijointure
Équijointure :
Une équijointure est une thêta-jointure dans laquelle
l'expression logique est un test d'égalité entre un attribut de la
relation et un attribut de la relation . L'équijointure
est notée .
Jointure naturelle
Jointure naturelle :
Une jointure naturelle est une jointure dans laquelle
l'expression logique E est un test d'égalité entre les attributs qui portent le
même nom dans les relations et . Dans la relation construite, ces
attributs ne sont pas dupliqués, mais fusionnés en une seule colonne par couple
d'attributs. La jointure naturelle est notée . On peut
préciser explicitement les attributs communs à et sur lesquels
porte la jointure : .
Généralement, et n'ont qu'un attribut en commun. Dans ce cas, une jointure naturelle est équivalente à une équijointure dans laquelle l'attribut de et celui de sont justement les deux attributs qui portent le même nom.
Lorsque l'on désire effectuer une jointure naturelle entre et sur un attribut commun à et , il vaut mieux écrire que . En effet, si et possèdent deux attributs portant un nom commun, A1 et A2, R1 ▷◁A1 R2 est bien une jointure naturelle sur l'attribut A1, mais R1 ▷◁ R2 est une jointure naturelle sur le couple d'attributs A1, A2, ce qui produit un résultat très différent !
Division
Division :
La division est une opération portant sur deux relations et
telles que le schéma de est strictement inclus dans celui de
, qui génère une troisième relation regroupant toutes les parties
d'occurences de la relation qui sont associées à toutes les occurences
de la relation ; on la notre . Il s'agit d'une opération
binaire non commutative dont la signature est
Autrement dit, la division de par génère une relation que regroupe tous les -uplets qui, concaténés à chacun des -uplets de , donnent toujours un -uplet de . La relation ne peut pas être vide. Tous les attributs de doivent être présents dans et doit posséder au moins un attribut de plus que (inclusion stricte). Le résultat de la division est une nouvelle relation qui a tous les attributs de sans aucun de ceux de . Si est vide, la relation qui résulte de la division est vide.