Vous êtes sur la page 1sur 24

L'Algèbre Relationnelle

Une algèbre est un ensemble avec des opérations


fermées sur cet ensemble.
Une algèbre relationnelle est un ensemble d’opérations agissant
sur des relations et produisant des relations
4 opérations ensemblistes (union, intersection,
différence, produit cartésien)
3 opérations spécifiques des BD relationnelles
(sélection, projection, jointure)
Remarques sur l'algèbre relationnelle

L'algèbre relationnelle permet l‘étude des opérateurs entre eux


(commutativité, associativité, groupe d'opérateurs minimaux,...)
équivalence de certaines expressions
programmes d'optimisation qui transforment toute requête en sa forme
équivalente la plus efficace
L'opération de jointure est très coûteuse : proportionnelle au
nombre de n-uplets (m*n pour deux relations jointes)
toujours préférable de faire les restrictions le plus tôt possible afin de
manipuler des tables les plus réduites possibles.
Pourquoi une requête est-elle meilleure qu'une autre ?

Une requête n'est pas l'unique solution d'un problème.


efficacités différentes
Exemple :
Fournisseur (N°fno , Nom, Adresse, Ville)
Produit (N°prod , Designation, Prix, Poids, Couleur)
Commande (N°comm, N°fno, N°prod, , Quantité)
Produit = 8 lignes * 5 colonnes * 10 char = 400 char
Commande = 10 lignes * 4 colonnes * 10 char = 400 char

Références, prix et quantités des produits commandés en plus de 10


exemplaires par commande ?
L'Algèbre Relationnelle

Nature :
L'algèbre relationnelle permet le calcul sur les relations à
l'aide d'opérateurs pour obtenir de nouvelles relations.

Motivation :
On peut extraire les informations que l'on souhaite à
partir de la base de données les décrivant à l'aide
d'une expression algébrique relationnelle.
L'Algèbre Relationnelle

Utilité :
l Formaliser des requêtes sur des bases de données
l Permet d’avoir un schéma de requête avant de
programmer « physiquement » cette requête
l Automatiser la création de requêtes
l Preuves de résultats ou d'égalité entre questions

... Ce qu'il y a derrière les langages comme SQL !


Les opérateurs de l'algèbre relationnelle

l Les opérateurs unaires (1 opérande relation)


– Projection Π
– Sélection σ
l Les opérateurs binaires (2 opérandes relation)
– Produit Cartésien ×
– Jointure
– Différence -
– Union ∪
– Intersection ∩
– Division ÷
La projection Π

l Signature : Relation × Liste d'attributs → Relation


l Notation : PROJY(R) ou ΠY(R)
l Elle ne conserve que les types d'attributs (colonnes) Y de la
relation et supprime les doublons

COMMANDE
Objet Client Nb
Π Objet, Client(R)
Objet Client
table Klein 4
table Klein
table Klein 2 placard Blériot
placard Blériot 3
La Sélection σ
l Signature : Relation × Expression Logique → Relation
l Notation : SELECT C(R) ou σ C (R)
l La sélection ne conserve de la relation que les tuples (lignes) qui
vérifient l'expression logique sur noms d'attributs (construite avec
les opérateurs logiques ¬, ∨, ∧ et les comparaisons =, <, >, ≥, ≠, ≤).
l Le schéma relationnel est conservé.

R Chauffeur Départ Destination


Chauffeur Départ Destination
Karl Paris Le Havre
Bébert Paris Bordeaux Tonio Paris Le Havre
Karl Paris Le Havre
Tonio Paris Le Havre
Dédé Lyon Marseille
σ Départ="Paris"∧Destination="Le Havre" (R)
Le Produit Cartésien ×
l Signature : Relation × Relation → Relation

l Notation : PROD(R1, R2) ou R1 × R 2

l On renomme les types d'attributs que R1 et R2 ont en commun, puis


on concatène chaque tuple de la relation R1 avec chaque tuple de la
relation R2 pour former l'extension.

Remarques : On doit renommer les types d'attributs en double.


On obtient toutes les combinaisons possibles !
Le Produit Cartésien (exemple)
Stock1 Fabrication
Pièce Nb-P Fournisseur Pièce Nb Objet

vis 2000 Germond vis 8 table


écrou
charnière
4000
500
Martin
André
× écrou
charnière
8
4
table
placard
poignée 200 André vis 16 placard

Pièce1 Nb-P Fournisseur Pièce2 Nb Objet

vis 2000 Germond vis 8 table


vis 2000 Germond écrou 8 table
vis 2000 Germond charnière 4 placard
vis 2000 Germond vis 16 placard
écrou 4000 Martin vis 8 table
écrou 4000 Martin écrou 8 table
… … ... ... ... ...
La θ-Jointure

l Signature : Relation × Relation × θ-Expression → Relation


l Notation : JOIN θ-Expression (R,S) ou R θ-Expression S
l La jointure est la superposition de tout enregistrement de R
avec un enregistrement de S dans laquelle on ne garde que
les tuples qui vérifient la θ-Expression.

Remarque : Comme pour le produit cartésien, on


renommera les types d'attributs communs
à R et à S.
La θ-Jointure (exemple)
Stock1 Fabrication
Pièce Nb-P Fournisseur Pièce Nb Objet

vis 2000 Germond vis 8 table


écrou 4000 Martin Stock.pièce = écrou 8 table
charnière 500 André Fabrication.pièce charnière 4 placard
poignée 200 André vis 16 placard

Pièce1 Nb-P Fournisseur Pièce2 Nb Objet

vis 2000 Germond vis 8 table


vis 2000 Germond vis 16 placard
écrou 4000 Martin écrou 8 table
charnière 500 André charnière 4 placard

θ -Expression vérifiée
Décomposition de la θ-Jointure

La θ-Jointure est composée à partir de la


sélection et du produit cartésien.

R θ S = σθ (S × R)
Equi-jointure et Jointure naturelle

l Dans l'équi-jointure, la θ-expression est omise. On ne garde


que les tuples pour lesquels les valeurs des colonnes
communes à R et S sont égales.
l La jointure naturelle notée R*S ou R S est une équi-
jointure dans laquelle on ne garde qu'une seule des
colonnes communes.

Remarque : La jointure naturelle peut également s'exprimer


à l'aide d'une sélection, d'un produit cartésien
et d'une projection.
La Jointure naturelle (exemple)
Stock1 Fabrication
Pièce Nb-P Fournisseur Pièce Nb Objet

vis 2000 Germond vis 8 table


écrou 4000 Martin écrou 8 table
charnière 500 André charnière 4 placard
poignée 200 André vis 16 placard

Pièce Nb-P Fournisseur Nb Objet

vis 2000 Germond 8 table


vis 2000 Germond 16 placard
écrou 4000 Martin 8 table
charnière 500 André 4 placard
L'union ∪ et l'intersection ∩

Union
l Signature : Relation × Relation → Relation
l Notation : R∪S
l Pour deux tables R et S de même schéma relationnel, l'union retourne les tuples qui
sont dans R, dans S ou dans R et dans S.

Intersection
l Signature : Relation × Relation → Relation
l Notation : R∩S
l Pour deux tables R et S de même schéma relationnel, l'intersection retourne les
tuples qui sont à la fois dans R et dans S.
La différence -

Signature : Relation × Relation → Relation


l Notation : R-S
l Pour deux tables R et S de même schéma relationnel, l'union retourne les
tuples qui sont dans R à l'exception de ceux qui sont également dans S.
Stock1 ∪ Stock2
Les exemples Pièce Nb-P Fournisseur

vis 2000 Germond


écrou 4000 Martin
Stock1
charnière 500 André
Pièce Nb-P Fournisseur
poignée 200 André
vis 2000 Germond
vis 5000 Dupont
écrou 4000 Martin
axe 200 Gauthier
charnière 500 André
poignée 200 André

Stock1 ∩ Stock2
Pièce Nb-P Fournisseur
Stock2
Pièce Nb-P Fournisseur écrou 4000 Martin

vis 5000 Dupont


écrou 4000 Martin
Stock2 - Stock1
Pièce Nb-P Fournisseur
axe 200 Gauthier
vis 5000 Dupont
axe 200 Gauthier
La division ÷

l Signature : Relation × Relation → Relation


l Notation : R÷S
l La division de la relation R(X,Y) par la relation S(Y) est une relation T(X)
dont l'extension est composée de la projection de R sur X... (rien de tel
qu'un bon exemple)

Remarque : La division est pratique, mais elle n'est quasiment jamais


implantée...
Exemple de division ÷

Compétition
Discipline Participant
surf Alex
ski Fred

ski Alex Qui fait du surf et du ski ?


luge Damien
luge Luc
∧ ∧ Compétition ÷ Quelle_discipline
Participant
Quelle_discipline Alex
Genre

ski

surf
Requêtes en Algèbre Relationnelle (1)

Sur tous les stocks, quels sont les noms des


pièces avec un nombre inférieur à 500?

ΠPièce(σNB-P<500(STOCK1 ∪ STOCK2))

ΠPièce
Pièce
σNB-P<500
poignée

∪ axe

STOCK1 STOCK2
Requêtes en Algèbre Relationnelle (2)

Quels sont les noms de toutes les pièces avec leurs fournisseurs qui entrent
dans la fabrication d'une table ?

Π Fournisseur, Pièce (σObjet = Table ((STOCK1 ∪ STOCK2) FABRICATION))

Π Fournisseur, Pièce ((STOCK1 ∪ STOCK2) ( σObjet = Table (FABRICATION)))

ΠFournisseur, Pièce
Pièce Fournisseur

vis Germond
écrou Martin
∪ σObjet = Table vis Dupont

STOCK1 STOCK2 FABRICATION


Requêtes en Algèbre Relationnelle (3)

Quels sont les clients qui ont commandé des


meubles à charnières ?

Π Client ( (σPièce = Charnière(FABRICATION)) COMMANDE)

ΠClient
Client

Blériot

σPièce = Charnière COMMANDE

FABRICATION

Vous aimerez peut-être aussi