Algèbre relationnelle Previous Up
Page d'accueil du cours
La version finalisée, largement enrichie et corrigée de cette première ébauche de cours est parue, dans la collection Info+
chez les éditions Ellipses, sous le titre Bases de données - de la modélisation au SQL (cours et exercices) (FNAC, amazon.fr)


3.3  Algèbre relationnelle

3.3.1  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 trois 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.

3.3.2  Sélection

Définition 26     -sélection- La sélection (parfois appelée restriction) génère une relation regroupant exclusivement toutes les occurrences de la relation R qui satisfont l'expression logique E, on la note (E)R.

Il s'agit d'une opération unaire essentielle dont la signature est :

relation × expression logique relation

En d'autres termes, la sélection permet de choisir (i.e. 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 R. Si R est vide (i.e. ne contient aucune occurrence), la relation qui résulte de la sélection est vide.

Le tableau 3.6 montre un exemple de sélection.


NuméroNomPrénom
5DurandCaroline
1GermainStan
12DupontLisa
3GermainRose-Marie
Tableau 3.5: Exemple de relation Personne


NuméroNomPrénom
5DurandCaroline
12DupontLisa
Tableau 3.6: Exemple de sélection sur la relation Personne du tableau 3.5 : (Numéro5)Personne

3.3.3  Projection

Définition 27     -projection- La projection consiste à supprimer les attributs autres que A1An d'une relation et à éliminer les n-uplets en double apparaissant dans la nouvelle relation ; on la note (A1An)R.

Il s'agit d'une opération unaire essentielle dont la signature est :

relation × liste d'attributs relation

En d'autres termes, la projection permet de choisir des colonnes dans le tableau. Si R est vide, la relation qui résulte de la projection est vide, mais pas forcément équivalente (elle contient généralement moins d'attributs).

Le tableau 3.7 montre un exemple de sélection.


Nom
Durand
Germain
Dupont
Tableau 3.7: Exemple de projection sur la relation Personne du tableau 3.5 : (Nom)Personne

3.3.4  Union

Définition 28     -union- L'union est une opération portant sur deux relations R1 et R2 ayant le même schéma et construisant une troisième relation constituée des n-uplets appartenant à chacune des deux relations R1 et R2 sans doublon, on la note R1 R2.

Il s'agit une opération binaire ensembliste commutative essentielle dont la signature est :

relation × relation relation

Comme nous l'avons déjà dit, R1 et R2 doivent avoir les mêmes attributs et si une même occurrence existe dans R1 et R2, 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 R1 et R2. Si R1 et R2 sont vides, la relation qui résulte de l'union est vide. Si R1 (respectivement R2) est vide, la relation qui résulte de l'union est identique à R2 (respectivement R1).

Le tableau 3.8 montre un exemple d'union.


Relation R1 Relation R2 Relation R
NomPrénom NomPrénom NomPrénom
DurandCaroline DupontLisa DurandCaroline
GermainStan JunyCarole GermainStan
DupontLisa FourtLisa DupontLisa
GermainRose-Marie    GermainRose-Marie
      JunyCarole
      FourtLisa
Tableau 3.8: Exemple d'union : R = R1 R2

3.3.5  Intersection

Définition 29     -intersection- L'intersection est une opération portant sur deux relations R1 et R2 ayant le même schéma et construisant une troisième relation dont les n-uplets sont constitués de ceux appartenant aux deux relations, on la note R1 R2.

Il s'agit une opération binaire ensembliste commutative dont la signature est :

relation × relation relation

Comme nous l'avons déjà dit, R1 et R2 doivent avoir les mêmes attributs. Le résultat de l'intersection est une nouvelle relation qui a les mêmes attributs que R1 et R2. Si R1 ou R2 ou les deux sont vides, la relation qui résulte de l'intersection est vide.

Le tableau 3.9 montre un exemple d'intersection.


Relation R1 Relation R2 Relation R
NomPrénom NomPrénom NomPrénom
DurandCaroline DupontLisa DurandCaroline
GermainStan JunyCarole DupontLisa
DupontLisa FourtLisa JunyCarole
GermainRose-Marie DurandCaroline   
JunyCarole      
Tableau 3.9: Exemple d'intersection : R = R1 R2

3.3.6  Différence

Définition 30     -différence- La différence est une opération portant sur deux relations R1 et R2 ayant le même schéma et construisant une troisième relation dont les n-uplets sont constitués de ceux ne se trouvant que dans la relation R1 ; on la note R1 R2.

Il s'agit une opération binaire ensembliste non commutative essentielle dont la signature est :

relation × relation relation

Comme nous l'avons déjà dit, R1 et R2 doivent avoir les mêmes attributs. Le résultat de la différence est une nouvelle relation qui a les mêmes attributs que R1 et R2. Si R1 est vide, la relation qui résulte de la différence est vide. Si R2 est vide, la relation qui résulte de la différence est identique à R1.

Le tableau 3.10 montre un exemple de différence.


Relation R1 Relation R2 Relation R
NomPrénom NomPrénom NomPrénom
DurandCaroline DupontLisa GermainStan
GermainStan JunyCarole GermainRose-Marie
DupontLisa FourtLisa   
GermainRose-Marie DurandCaroline   
JunyCarole      
Tableau 3.10: Exemple de différence : R = R1 R2

3.3.7  Produit cartésien

Définition 31     -produit cartésien- Le produit cartésien est une opération portant sur deux relations R1 et R2 et qui construit une troisième relation regroupant exclusivement toutes les possibilités de combinaison des occurrences des relations R1 et R2, on la note R1 × R2.

Il s'agit une opération binaire commutative essentielle dont la signature est :

relation × relation relation

Le résultat du produit cartésien est une nouvelle relation qui a tous les attributs de R1 et tous ceux de R2. Si R1 ou R2 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 R1 multiplié par le nombre d'occurrences de R2.

Le tableau 3.11 montre un exemple de produit cartésien.


Relation Amie Relation Cadeau Relation R
NomPrénom ArticlePrix NomPrénomArticlePrix
FourtLisa livre45 FourtLisalivre45
JunyCarole poupée25 FourtLisapoupée25
   montre87 FourtLisamontre87
      JunyCarolelivre45
      JunyCarolepoupée25
      JunyCarolemontre87
Tableau 3.11: Exemple de produit cartésien : R = Amie × Cadeau

3.3.8  Jointure, theta-jointure, equi-jointure, jointure naturelle

Jointure

Définition 32     -jointure- La jointure est une opération portant sur deux relations R1 et R2 qui construit une troisième relation regroupant exclusivement toutes les possibilités de combinaison des occurrences des relations R1 et R2 qui satisfont l'expression logique E. La jointure est notée R1 E R2.

Il s'agit d'une opération binaire commutative dont la signature est :

relation × relation × expression logique relation

Si R1 ou R2 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 :

R1 E R2 = E (R1 × R2)

Le tableau 3.12 montre un exemple de jointure.


Relation Famille Relation Cadeau Relation R
NomPrénomAge AgeCArticlePrix NomPrénomAgeAgeCArticlePrix
FourtLisa6 99livre30 FourtLisa699livre30
JunyCarole42 6poupée60 FourtLisa620baladeur45
FidusLaure16 20baladeur45 FourtLisa610déguisement15
    10déguisement15 JunyCarole4299livre30
        FidusLaure1699livre30
        FidusLaure1620baladeur45
Tableau 3.12: Exemple de jointure : R = Famille ((Age AgeC) (Prix < 50)) Cadeau

Theta-jointure

Définition 33     -theta-jointure- Une theta-jointure est une jointure dans laquelle l'expression logique E est une simple comparaison entre un attribut A1 de la relation R1 et un attribut A2 de la relation R2. La theta-jointure est notée R1 E R2.

Equi-jointure

Définition 34     -equi-jointure- Une equi-jointure est une theta-jointure dans laquelle l'expression logique E est un test d'égalité entre un attribut A1 de la relation R1 et un attribut A2 de la relation R2. L'equi-jointure est notée R1 A1,A2 R2.

Remarque : Il vaut mieux écrire R1 A1=A2 R2 que R1 A1,A2 R2 car cette dernière notation peut prêter à confusion avec une jointure naturelle explicite.

Jointure naturelle

Définition 35     -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 R1 et R2. Dans la relation construite, ces attributs ne sont pas dupliqués mais fusionnés en une seul colonne par couple d'attributs. La jointure naturelle est notée R1 R2. On peut préciser explicitement les attributs communs à R1 et R2 sur lesquels porte la jointure : R1 A1, , An R2.

Généralement, R1 et R2 n'ont qu'un attribut en commun. Dans ce cas, une jointure naturelle est équivalente à une equi-jointure dans laquelle l'attribut de R1 et celui de R2 sont justement les deux attributs qui portent le même nom.

Lorsque l'on désire effectuer une jointure naturelle entre R1 et R2 sur un attribut A1 commun à R1 et R2, il vaut mieux écrire R1 A1 R2 que R1 R2. En effet, si R1 et R2 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 !

Le tableau 3.13 montre un exemple de jointure naturelle.


Relation Famille Relation Cadeau Relation R
NomPrénomAge AgeArticlePrix NomPrénomAgeArticlePrix
FourtLisa6 40livre45 FourtLisa6poupée25
JunyCarole40 6poupée25 JunyCarole40livre45
FidusLaure20 20montre87 FidusLaure20montre87
ChoupyEmma6     ChoupyEmma6poupée25
Tableau 3.13: Exemple de jointure naturelle : R = Famille Cadeau ou R = Famille Age Cadeau

3.3.9  Division

Définition 36     -division- La division est une opération portant sur deux relations R1 et R2, telles que le schéma de R2 est strictement inclus dans celui de R1, qui génère une troisième relation regroupant toutes les parties d'occurrences de la relation R1 qui sont associées à toutes les occurrences de la relation R2 ; on la note R1 ÷ R2.

Il s'agit d'une opération binaire non commutative dont la signature est :

relation × relation relation

Autrement dit, la division de R1 par R2 (R1 ÷ R2) génère une relation qui regroupe tous les n-uplets qui, concaténés à chacun des n-uplets de R2, donne toujours un n-uplet de R1.

La relation R2 ne peut pas être vide. Tous les attributs de R2 doivent être présents dans R1 et R1 doit posséder au moins un attribut de plus que R2 (inclusion stricte). Le résultat de la division est une nouvelle relation qui a tous les attributs de R1 sans aucun de ceux de R2. Si R1 est vide, la relation qui résulte de la division est vide.

Le tableau 3.14 montre un exemple de division.


Relation Enseignement Relation Etudiant Relation R
EnseignantEtudiant Nom Enseignant
GermainDubois Dubois Germain
FidusPascal Pascal Fidus
RobertDubois    
GermainPascal    
FidusDubois    
GermainDurand    
RobertDurand    
Tableau 3.14: Exemple de division : R = Enseignement ÷ Etudiant. La relation R contient donc tous les enseignants de la relation Enseignement qui enseignent à tous les étudiants de la relation Etudiant.




Base de Données et langage SQL – Laurent Audibert
La version finalisée, largement enrichie et corrigée de cette première ébauche de cours est parue, dans la collection Info+
chez les éditions Ellipses, sous le titre Bases de données - de la modélisation au SQL (cours et exercices) (FNAC, amazon.fr)
Ce cours a déjà été consulté fois. Ce document a été traduit de LATEX par HEVEA

Previous Up

Copyright © 2009 Laurent AUDIBERT. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée.

 
 
 
 
Partenaires

Hébergement Web