Introduction À L'algebre Relationnelle
Introduction À L'algebre Relationnelle
Introduction À L'algebre Relationnelle
Chapitre 1 :
Introduction
La représentation d'information sous forme relationnelle est intéressante car les fondements mathé-
matiques du relationnel, outre qu'ils permettent une modélisation logique simple et puissante, four-
nissent également un ensemble de concepts pour manipuler formellement l'information ainsi modé-
lisée.
Ainsi une algèbre relationnelle, sous forme d'un ensemble d'opérations formelles, permet d'exprimer
des questions, ou requêtes, posées à une représentation relationnelle, sous forme d'expressions al-
gébriques.
I. Introduction à
1. Définition et description
1.1. Définition
L'algèbre relationnelle est un langage de requêtes dans des bases de données relationnelles. L'al-
gèbre relationnelle a été inventée en 1970 par Edgar Frank Codd, le directeur de recherche du centre
IBM de San José. Il s'agit de la théorie sous-jacente aux langages de requête des SGBD, comme
SQL. Le théorème de Codd dit que l'algèbre relationnelle est équivalente au calcul relationnel (lo-
gique du premier ordre sans symbole de fonction). nsembl a-
aux relations. e relationnelle permet de faire des recherches dans les
relations. Les questions formulées en algèbre relationnelle sont la base des questions formulées en
SQL pour interroger une base de données relationnelle.
1.2. Description
L'algèbre relationnelle est un support mathématique cohérent sur lequel repose le modèle rela-
tionnel. 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 pro-
duire une nouvelle table à partir de deux ou plusieurs autres tables. Ces opérations seront détaillées
dans le chapitre suivant.
;
.
Dans le cadre de ce cours, nous noterons les propositions par les lettres P, Q, .
dé."
Exemple : P P)]
pplication :
1. Démontrer les équivalences logiques suivantes :
¬(P
P ¬P
P
R)
2. Donner une proposition équivalente à P
2.3.Tautologie et contradiction
Une tautologie est une proposition toujours vraie, quelles que soient les valeurs de vérité
attribuées aux variables propositionnelles qui la composent. Autrement dit, la dernière colonne de
Chapitre 2 :
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 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.
En somme, L'union de deux relations R1 et R2 de même schéma produit une relation R de même
schéma constituée de l'ensemble des tuples appartenant à R1 et/ou à R2.
Exemple d'union : R = R1 U R2 :
2. L
L'intersection est une opération portant sur deux relations R1 et R2 ayant le même schéma et cons-
truisant une troisième relation dont les n-uplets sont constitués de ceux appartenant aux deux rela-
tions, on la note R1 R2.
En somme, L'intersection de deux relations R1 et R2 de même schéma produit une relation R3 de
même schéma constituée de l'ensemble des tuples appartenant à la fois à R1 et à R2. Notons que
l'intersection n'est pas une opération de base, car elle est équivalent à deux opérations de différence
successives.
Comme nous l'avons déjà dit, R1 et R2 doivent avoir les mêmes attributs. Le résultat de l'inter-
section 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.
Exemple d'intersection : R = R1 R2 :
3. La Différence
La différence est une opération portant sur deux relations R 1 et R2 ayant le même schéma et cons-
truisant 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.
En somme, La différence entre deux relations R1 et R2 de même schéma produit une relation R3 de
même schéma constituée de l'ensemble des tuples de R1 n'appartenant pas à R2. Notons que la
différence entre R1 et R2 n'est pas égale à la différence entre R2 et R1.
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.
Exemple de différence : R = R1 - R2 :
2. La Projection
La projection est une opération unaire (c'est à dire portant sur une seule relation). La projection de
R1 sur une partie de ses attributs {A1, A2, ...} produit une relation R2 dont le schéma est restreint
aux attributs mentionnés en opérande, comportant les mêmes tuples que R1, et dont les doublons
sont éliminés.
La projection consiste à supprimer les attributs autres que A1, . . . relation et à éliminer
les n-uplets en double apparaissant dans la nouvelle relation ; on la note A1, ...An)R.
R est vide, la
relation qui résulte de la projection est vide, mais pas forcément équivalente (elle contient généra-
lement
Remarque : Après suppression d'une partie des attributs du schéma, la relation peut comporter des
doublons. Étant donné que l'on ne pourrait plus identifier ces doublons les uns par rapport aux autres,
la seule solution sensée est donc de considérer que deux doublons sont équivalents, et donc de n'en
garder qu'un seul dans la relation résultante.
Exemple1 : Soit la relation personne suivante :
La projection sur la relation Personne notée NomPersonne ou Projection (Personne, nom) est :
La projection sur la relation Personne notée Nom,agePersonne ou Projection (Personne, nom, age)
3. La restriction
La restriction est une opération unaire (c'est à dire portant sur une seule relation). La restriction de
R1, étant donnée une condition C, produit une relation R2 de même schéma que R1 et dont les tuples
sont les tuples de R1 vérifiant la condition C. Les synthases sont les suivantes :
nombre
R1 multiplié R2.
Exemple 1 :
2. La 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
En d autres termes, La jointure de R1 et R2, étant donné une condition C portant sur des attributs
de R1 et de R2, de même domaine, produit une relation R3 ayant pour schéma la juxtaposition de
ceux des relations R1 et R2 et pour tuples l'ensemble de ceux obtenus par concaténation des tuples
de R1 et de R2, et qui vérifient la condition C.
Si R1 ou R2 ou les deux sont vides, la relation qui résulte de la jointure est vide. En fait, la jointure
Exemple 2 : Soit les deux relations suivantes : Personne (nom, prénom, age) et Voiture (type,
marque, propriétaire)
Remarque : La jointure est l'opération qui permet de rassembler les informations séparées entre
plusieurs tables et référencées par des clés étrangères.
3. La 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
1 qui sont associées à toutes les occurrences de la relation R2 ; on
la note R1 ÷ R2.
C est à dire que la division de R1 par R2 a pour résultat R tel que R comporte le plus grand ensemble
possible de tuples qui concaténés à ceux de R2 donnent toujours un tuple de R1.
Remarque :
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.
Exemple 1 :
Exemple 2 :