Chapitre4 - Algèbre Relationnelle
Chapitre4 - Algèbre Relationnelle
Chapitre4 - Algèbre Relationnelle
Objectif
Définir et appliquer les opérateurs ensemblistes
Définir et appliquer les opérateurs de bases de données.
2
Introduction
L’algèbre relationnelle est une collection d’opérateurs permettant de réaliser
des opérations sur des relations.
Elle permet par exemple de sélectionner certains enregistrements d’une relation
satisfaisant une condition ou encore de regrouper des enregistrements de
relations différentes.
Le résultat de l’application d’un opérateur sur une ou deux relations est une
nouvelle relation. Cette propriété est appelée fermeture.
Elle implique notamment qu’il n’y a pas de doublons dans le résultat et permet
l’écriture d’expressions de calcul
Toute manipulation pouvant être souhaitée par les utilisateurs devrait
pouvoir être exprimée par une expression algébrique. Cette propriété est
appelée complétude.
3
Introduction
Le modèle relationnel est basé sur la théorie des ensembles,
→ l’algèbre relationnelle utilise les opérateurs classiques de manipulation des
ensembles
On peut distinguer trois familles d’opérateurs relationnels
Les opérateurs unaires (sélection (noté s), projection (p), renommage (a)) :
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 et produit
cartésien) : 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
4
Opérateurs ensembliste
Union-compatibilité
Opérateur union
Opérateur intersection
Opérateur différence
Opérateur produit cartésien
5
Operateurs ensembliste
Les opérateurs ensemblistes correspondent Union
aux opérateurs habituels de la théorie des
ensembles, définis sur des tables de même
schéma (union-compatibles).
Ces opérateurs sont l’union, l’intersection
et la différence. Intersection
Le produit cartésien porte sur des relations
qui ne sont pas de même schémas.
L'animation suivante illustre l’effet des
trois premiers opérateurs sur des tables de Différence
mêmes schémas. Le résultat étant la partie
colorée.
6
Union-compatibles
Deux relations sont dites union-compatibles si elles ont le même
schéma de relation, c’est à dire qu’elles ont le même nombre d'attributs
et que ceux-ci ont le même domaine
7
Opérateur union U (1)
Soient r et s, deux relations de schémas respectifs R et S.
Les schémas R et S doivent être union-compatibles.
L’union des deux relations R U S produit une nouvelle relation de schéma
identique à R et à S possédant les enregistrements appartenant à R ou à S
ou aux deux relations.
Il s’agit une opération binaire ensembliste commutative essentielle dont
la signature est :
8
Opérateur union U : Description
Type opération: binaire
Syntaxe : R U S
Notation fonctionnelle : Union (R,S)
Sémantique : réunit dans une même relation les tuples de R et ceux de S
(sans doublons)
Schéma : schéma(R U S) = schéma(R) = schéma(S)
Pré-condition : schéma(R) = schéma(S)
9
Opérateur union U : Exemple
Exemple : Soit deux tables produit1 et produit2 exprimant le fait que les produits
sont stockés dans deux dépôts différents.
Question : Lister tous les produits.
Réponse : Réaliser l’union des deux tables de produit.
10
Opérateur intersection ∩
Soient r et s, deux relations de schémas respectifs R et S.
Les schémas R et S doivent être union-compatibles.
La représentation graphique est :
L’intersection des deux relations R ∩ S produit une
nouvelle relation de schéma identique à R et à S possédant
les enregistrements appartenant conjointement à R et à S.
Il s’agit une opération binaire ensembliste commutative
dont la signature est : relation ×relation → relation
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.
11
Opérateur intersection ∩ : Description
Type opération: binaire
Syntaxe : R ∩ S
Notation fonctionnelle : Inter (R,S)
Sémantique : sélectionne les tuples qui sont à la fois dans R et S
Schéma : schéma (R ∩ S) = schéma (R) = schéma (S)
Pré-condition : schéma(R) = schéma(S)
12
Opérateur intersection ∩ : Exemple
Soit les 2 tables : produit1 et produit2 donnant respectivement les produits
achetés par le client1 et le client2.
Question : Lister tous les produits identiques achetés par les 2 clients.
Réponse : Réaliser l’intersection des deux tables produit1 et produit2.
13
Opérateurs différence -
Soient r et s, deux relations de schémas respectifs R et S.
Les schémas R et S doivent être union-compatibles. Représentation graphique
La différence des deux relations R - S produit une nouvelle
relation de schéma identique à R ou à S possédant les
enregistrements présents dans R mais pas dans S.
Il s’agit une opération binaire ensembliste non commutative
essentielle dont la signature est : relation ×relation → relation
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.
14
Opérateurs différence - : Description
Type opération: binaire
- Syntaxe : R - S
- Notation fonctionnelle : Diff (R,S)
- Sémantique : sélectionne les tuples de R qui ne sont pas dans S
- Schéma : schéma (R - S) = schéma (R) = schéma (S)
- Pré-condition : schéma (R) = schéma (S)
15
Opérateurs différence - : Exemple
Soit les 2 tables produit : produit1 et produit2 donnant respectivement les produits achetés par le
client1 et le client2.
Question : Lister tous les produits achetés par le client1 et que le client2 n’a pas acheté.
Réponse : Réaliser la différence entre les deux tables de produit.
16
Le produit cartésien X
Le produit cartésien est une opération portant sur deux
relations R1 et R2 et qui construit une troisième relation Représentation graphique
regroupant exclusivement toutes les possibilités de
combinaison des occurrences des relations R1 et R2 et 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.
17
Le produit cartésien X : Description
Type opération: binaire
Syntaxe : R x S
Sémantique : chaque tuple de R est combiné avec chaque tuple de S
Schéma : schéma (R x S) = schéma(R) U schéma(S)
Pré-condition: R et S n’ont pas d’attributs de même nom (sinon,
renommage des attributs avant de faire le produit).
18
Le produit cartésien X : Exemple
Soit les 2 tables produit et client.
Question : Lister tous les achats possibles des clients (produits pouvant être achetés
par tous les clients).
Réponse : réaliser le produit cartésien entre les deux tables produit et client. Pour
simplifier, nous avons réduit le nombre de tuples.
19
Opérateurs propres aux bases de
données
Renommage
Sélection
Projection
Division
Jointure
20
Renommage 𝛼
Le renommage ou l'affectation permet de renommer les attributs d’une
relation pour résoudre des problèmes de compatibilité entre noms
d’attributs de deux relations opérandes d’une opération binaire
21
Renommage 𝛼: Description
Type opération : unaire
Syntaxe : 𝛼 [ancien_nom : nouveau_nom]R
Sémantique : les tuples de R avec un nouveau nom de l'attribut
Schéma :schéma (𝛼[n, m] R) le même schéma que R avec n renommé en
m
Pré-condition :le nouveau nom n’existe pas déjà dans R
22
Renommage 𝛼: Exemple
Soit la table produit.
Question : Renommer
l’attribut LibP par l’attribut
DésigP.
Réponse : Réaliser le
renommage de l’attribut LibP
par l’attribut DésigP.
23
La sélection 𝜎
La sélection appelée encore restriction est un
Représentation graphique
opérateur unaire qui prend en entrée une relation r
de schéma R et produit en sortie une nouvelle
relation de même schéma R ayant comme
enregistrements ceux de r satisfaisant la condition
de sélection.
Le but étant de sélectionner un ensemble de tuples
d’une relation, en fonction d’un critère de sélection
(prédicat ou expression logique de prédicats).
La condition de sélection utilise les opérateurs de
comparaison (=, <, <=, >, >=, != ), les connecteurs
logiques (et, ou, non) et les parenthèses.
24
La sélection 𝜎 : Description
Type opération : unaire
Syntaxe : 𝜎 [p] R
- p : prédicat de sélection (condition de sélection)
Notation fonctionnelle : R[Prédicat]
Sémantique :crée une nouvelle relation de population l’ensembles des
tuples de R qui satisfont le prédicat p
Schéma : Schéma (résultat) = Schéma (opérande)
Population : population (résultat) ⊆ population (opérande)
25
La sélection 𝜎 : Exemple
Soit la table produit.
Question : Lister tous les
produits dont le prix unitaire est
< 33.000.
Réponse : Il faut réaliser une
sélection sur les tuples dont le
prix unitaire est<
33.000 : 𝜎[p]Produit avec p=PU <
33.000.
26
Projection 𝜋
La projection est un opérateur unaire qui prend en entrée une relation r de
schéma R (A1; A2; ...; An) et produit en sortie une nouvelle relation de
schéma (A1; A2; .. ;Ai; Aj) inclus dans R ayant comme enregistrements
ceux de r restreints à ce sous-schéma (A1; A2; .. ;Ai; Aj).
Le but de la projection étant de ne retenir que certains attributs dans une
relation (c'est-à-dire un ensemble de colonnes). A l’issue d’une projection,
la relation résultante peut contenir des doublons.
27
Projection 𝜋 Représentation graphique
La projection consiste à supprimer les attributs
autres que A1, . . .An d’une relation et à éliminer
les n-uplets en double apparaissant dans la
nouvelle relation ; on la note Π(A1, ...An)R.
Il s’agit d’une opération unaire essentielle dont la
signature est : relation ×liste d’attributs → relation
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).
28
Projection : Description
Type opération : unaire
Syntaxe : 𝜋 [attributs]R
- attributs : liste l’ensemble des attributs de R à conserver dans le
résultat.
Notation fonctionnelle : R{liste d’attributs}
Sémantique : crée une nouvelle relation de population l’ensemble des
tuples de R réduits aux seuls attributs de la liste spécifiée
Schéma: Schéma (résultat) ⊆ schéma (opérande)
Résultat : nombre tuples (résultat) = nombre tuples (opérande) (en
comptant les doublons)
29
Projection 𝜋: Exemple
Soit la table produit.
Question : Lister toutes les désignations de produit.
Réponse : Il faut réaliser une projection sur la table produit
pour ne garder que l’attribut LibP : 𝜋 [LibP] (Produit1)
30
La division ÷ ou /
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
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-upletsde 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 R1doit 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
La division traite les requêtes de style «les … tels que TOUS les …»
31
La division ÷ ou / : Description
-Type opération : binaire
Syntaxe : R / S Représentation graphique
soient R(A1, …, An) et S(A1, …, Am) avec n>m et
A1, …, Am des attributs de même nom dans R et S
R / S = { <am+1, am+2, …, an> / "<a1, a2, …,
am> ÎS, $<a1, a2, …, am, am+1, am+2, …, an> ÎR}
Notation fonctionnelle : Div(R,S)
Sémantique :crée une nouvelle relation de
population des tuples dont la concaténation avec
tous les n-uplets de S appartiennent à R.
Schéma:schéma (résultat) ⊆ schéma (opérande)
Résultat : nombre tuples (résultat) <= nombre tuples
(opérande)
32
La division : Exemple
Question: Quels sont les commandes qui portent sur tous les produits
Réponse: Diviser la relation Ligne_Cmd par la relation produit (ne
contenant que NP).
33
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 une expression logique.
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.
34
Jointure : Description
Type opération : binaire
But : créer toutes les combinaisons significatives entre Représentation graphique
tuples de deux relations (le critère de combinaison est
explicitement défini en paramètre de l’opération)
Syntaxe :R⋈[p]S
p : prédicat de sélection (condition de jointure)
Notation fonctionnelle: Join(R,S/Prédicat)
Sémantique :combine certains tuples qui répondent à
une condition
Schéma :schéma (R ⋈[p] S) = schéma (R) U schéma (S)
35
Type de jointure
Theta-Jointure
Equi-Jointure
Jointure naturelle
36
Theta-jointure (θ-jointure)
Une theta-jointure est une jointure dans laquelle l’expression logique
est une simple comparaison entre un attribut A1 de la relation R1 et un
attribut A2 de la relation R2.
La Theta-jointure de r et s de schéma R et S sur les attributs Ai et Bj est
une jointure selon la condition Ai opérateur Bj, avec opérateur … {<; <=;
>; >=; != }
La relation résultant de la Theta-jointure (θ-jointure) a comme tuples la
concaténation des tuples de R et de S dont les valeurs vérifient la
condition.
37
Theta-jointure (θ-jointure) : Exemple
Soit les deux relations Client et commande.
Question : Quels sont les clients qui n’ont pas passé de commandes le « 10/12/2003»?
Réponse : Théta-jointure avec comme critère : Client.NCl =Commande.NCl et
Commande.DateCmd = ‘10/12/2003’.
38
Equi-Jointure
Une equi-jointureest une theta-jointure dans laquelle l’expression logique est un test
d’égalité entre un attribut A1 de la relation R1 et un attribut A2 de la relation R2.
L’Equi-jointure de r et s de schéma R et S sur les attributs Ai et Bj est une jointure
selon la condition valeur Ai = valeur Bj.
Les attributs Ai et Bj, appelés colonnes de jointure doivent avoir des domaines
compatibles. S’ils ont des noms identiques on ajoute le nom de la relation (Exp:
R.Ai,NomTable.attribut)
La relation résultant de l’équi-jointure a comme tuples la concaténation des tuples de
R et de S s'ils ont la même valeur pour les attributs communs. Le but de l’Equi-
jointure est de créer toutes les combinaisons significatives (portant la même valeur
pour les attributs de même nom) entre tuples de deux relations.
39
Equi-Jointure : exemple
Soient les deux relations
Client et commande.
Question : Lister les clients
qui ont passé des
commandes.
Réponse : Equi-jointure
avec comme critère :
Client.NumCli=Commande
.NumCli
40
Jointure naturelle
Une jointure naturelle est une equi-jointure dans laquelle les attributs
des relations R1 et R2 portent le même nom A. Dans la relation
construite, l’attribut A n’est pas dupliqué mais fusionné en un seul
attribut.
Le résultat de la jointure naturelle est une nouvelle relation qui a tous
les attributs de R1 et tous ceux de R2 sauf A. Il est en fait indifférent
d’éliminer l’attribut A de la relation R1 ou R2.
La jointure naturelle correspond à un produit cartésien, suivi d’une
sélection et d’une projection
41
Jointure naturelle
La jointure naturelle de r et s de schéma R et S sur les attributs Ai et Bj
est une Equi-jointure de r et de s sur tous les attributs de même nom
dans R et S
(Ai = Bj) suivie de la projection qui élimine les doublures des attributs
(les attributs de même nom n’apparaissent qu’une seule fois dans la
relation résultante).
Le but de la jointure naturelle est de créer toutes les combinaisons entre
les tuples de deux relations qui ont au moins un attribut de même nom
Si de plus R et S n’ont pas d’autres attributs en commun, on peut
omettre le paramètre de la jointure, et écrire simplement R⋈ S.
42
Jointure naturelle
Nous disposons des deux
relations Client et commande.
Question : Quels sont les
clients qui ont passé des
commandes.
Réponse : Jointure naturelle.
43
Combinaisons et équivalences
Combinaison des opérateurs
Propriétés des opérateurs relationnels
Equivalence des opérateurs
44
Combinaison des opérateurs
Les opérateurs produisent en résultat des nouvelles relations, il sera
alors possible d’impliquer ces relations dérivées dans d’autres
opérations pour obtenir de nouveaux résultats.
L’imbrication des opérateurs algébriques permettra de composer la
plupart des requêtes qui manipulent les bases de données
relationnelles.
Ces requêtes forment les langages d’interrogation qui sont non
procéduraux, c’est à dire qu’une interrogation se contente de spécifier
les données requises en résultat, alors que le SGBD prend le soin de
rechercher ces données.
45
Propriétés des opérateurs relationnels
46
Equivalence des opérateurs
47
Arbres d’expression pour l’algèbre
relationnelle
Il est possible de représenter les expressions de l’algèbre relationnelle
sous forme d’arbre.
Les feuilles sont étiquetées par les opérandes c’est des relations
spécifiques ou des variables représentant des relations.
Chaque nœud intérieur est étiqueté par un opérateur, accompagné par
son paramètre.
48
Arbres d’expression pour l’algèbre
relationnelle : exemple
Exemple : Question :
Lister le numéro, le
libellé des produits
commandés par des
clients de sousse. La
réponse est indiquée par
l’arbre suivant :
49
Conclusion
Le langage d’interrogation le plus courant, supportant l’algèbre
relationnelle est le SQL (Structured Query Langage) qui est devenu une
norme de l’ANSI (American National Standards Institute) et qui est
adopté par la majorité des SGBD relationnels.
50