Vous êtes sur la page 1sur 50

Lobna KRIAA

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 :

 La représentation graphique 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

Vous aimerez peut-être aussi