Vous êtes sur la page 1sur 19

Cours Bases de Données

Chapitre 4 : Algèbre Relationnelle

Responsable du cours : Leïla Bayoudhi


Auditoire : LM1+ LMA1
Etablissement : Faculté des Sciences de Sfax
Année universitaire : 2020-2021
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

C’est quoi l’algèbre relationnel?

► Ensemble d’opérateurs qui s’appliquent aux relations

► Résultat : nouvelle relation qui peut à son tour être manipulée

⇒ L’algèbre relationnelle permet d’effectuer des recherches dans


les relations.

2
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Opérateurs principaux
■ Opérations ensemblistes (binaires)
  : union
  : intersection
 X : produit cartésien
 – : différence
■ Opérations de base de données
 π : projection
 σ : Restriction
 ⋈ : jointure
 / : division
3
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Union () : Description


RS

 Type opération: binaire



 Syntaxe : R  S
 Notation fonctionnelle : Union (R,S) 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  S) = schéma(R) = schéma(S)
 Pré-condition : schéma(R) = schéma(S)

4
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Union () : Exemple


 R et S sont les relations PRODUIT de deux sociétés qui
fusionnent et veulent unifier leurs catalogues.
 Question : Lister tous les produits.
 Réponse : Réaliser l’union des deux tables de produit.
R S
NP LibP Coul Poids PU Qtes NP LibP Coul Poids PU Qtes
P001 Robinet Gris 5 18.000 1200 P003 Câble Blanc 2 25.000 1500
P002 Prise Blanc 1.2 1.500 1000 P004 Peinture Blanc 25 33.000 900

NP LibP Coul Poids PU Qtes


P001 Robinet Gris 5 18.000 1200
RS
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900 5
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

RS
Intersection () : Description

 Type opération: binaire
 Syntaxe : R  S R S

 Notation fonctionnelle : Inter (R,S) ou INTERSECT (R1, R2),


 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)

6
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Intersection () : Exemple


 R et S sont les relations PRODUIT de deux sociétés.
 Question : Lister les produits communs aux catalogues de
deux sociétés.
 Réponse : Réaliser l’intersection de deux tables de produit.
R S
NP LibP Coul Poids PU Qtes NP LibP Coul Poids PU Qtes
P001 Robinet Gris 5 18.000 1200 P002 Prise Blanc 1.2 1.500 1000
P002 Prise Blanc 1.2 1.500 1000 P004 Peinture Blanc 25 33.000 900

NP LibP Coul Poids PU Qtes


RS
P002 Prise Blanc 1.2 1.500 1000

7
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

R–S
Différence (–) : Description

 Type opération: binaire
 Syntaxe : R – S 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)

8
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Différence (–) : Exemple


 R et S sont les relations Produit de deux sociétés.
 Question : Lister les produits de la relation R qui n’existent pas
dans la relation S.
 Réponse : Réaliser la différence entre les deux tables de
produit.
R S
NP LibP Coul Poids PU Qtes NP LibP Coul Poids PU Qtes
P001 Robinet Gris 5 18.000 1200 P002 Prise Blanc 1.2 1.500 1000
P002 Prise Blanc 1.2 1.500 1000 P004 Peinture Blanc 25 33.000 900

NP LibP Coul Poids PU Qtes


R– S
P001 Robinet Gris 5 18.000 1200
9
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

RXS
Produit cartésien (X) : Description
X
 Type opération: binaire
 Syntaxe : R X S R S

 Notation fonctionnelle : Prod (R,S)


 Sémantique : chaque tuple de R est combiné avec chaque
tuple de S
 Schéma : schéma (R X S) = schéma (R)  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).

10
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Produit cartésien (X) : Exemple


 Supposons que nous disposons de 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.
Client Produit
NCl NomCl AdrCl NP LibP Coul Poids
CL01 Batam Sfax P001 Robinet Gris 5
CL02 AMS Sousse P002 Prise Blanc 1.2
NCl NomCl AdrCl NP LibP Coul Poids
CL01 Batam Sfax P001 Robinet Gris 5
Client X Produit CL01 Batam Sfax P002 Prise Blanc 1.2
CL02 AMS Sousse P001 Robinet Gris 5
CL02 AMS Sousse P002 Prise Blanc 1.2 11
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques
R2 = π [A1, A2, …, Ai] R1

Projection (π) : Description


A1, A2, …, Ai

 Type opération : unaire


 Syntaxe: π [attributs] R R1
Attributs: liste l’ensemble des attributs de R à conserver dans le résultat.
 Notation fonctionnelle : R{liste d’attributs} ou PROJECT(R, A1, A2, … An)
 Sémantique : crée une nouvelle relation. 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
éliminant les doublons)

12
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Projection (π) : Exemple


 Supposons que nous disposons de 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
NP LibP Coul Poids PU Qtes
P001 Robinet Gris 5 18.000 1200
Produit P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900 LibP
Robinet
ProduitP = π [LibP] (Produit) Prise
Câble
Peinture
13
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

S = σ[p]R
Sélection ou restriction (σ) : Description
c
 Type opération: unaire
 Syntaxe: σ [c] R
 c: critère de sélection (condition de sélection); R
La condition de sélection utilise les opérateurs de comparaison (=, <, <=,
>, >=, != ), les connecteurs logiques (et, ou, non) et les parenthèses.
 Notation fonctionnelle : R[Prédicat] ou RESTRICT(R, condition de
selection)
 Sémantique : crée une nouvelle relation contenant des tuples de R qui
satisfont le prédicat p
 Schéma: Schéma (résultat) = Schéma (opérande)
14
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Sélection (σ) : Exemple


 Supposons que nous disposons de la table Produit.
 Question : Lister tous les produits dont le prix unitaire est < 20.000.
 Réponse : Il faut réaliser une sélection sur les tuples dont le prix
unitaire est < 20.000 : σ [p] Produit avec p=PU < 20.000.
NP LibP Coul Poids PU Qtes
Produit P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000
P003 Câble Blanc 2 25.000 1500
P004 Peinture Blanc 25 33.000 900

σ [PU < 20.000] (Produit)


NP LibP Coul Poids PU Qtes
P001 Robinet Gris 5 18.000 1200
P002 Prise Blanc 1.2 1.500 1000 15
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Jointure (⋈) : Description

 Type opération: binaire


 But: créer toutes les combinaisons significatives entre tuples de deux
relations (le critère de combinaison est explicitement défini en paramètre de
l’opération). T
 Syntaxe : R ⋈ [p] S
c: critére de sélection (condition de jointure)
• Si critère de sélection est l’égalité => équi-jointure
• Sinon, Théta-jointure.
 Notation fonctionnelle : Join(R,S/Prédicat) R S
 Sémantique : combine certains tuples qui répondent à une condition
 Schéma : schéma (R ⋈ [p] S) = schéma (R)  schéma (S)
16
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Jointure (⋈) : Exemple


 Nous disposons des deux tables : Client et commande.
 Question : Lister les clients qui ont passé des commandes.
 Réponse : Equi-jointure avec comme critère : Client.NCli=Commande.NCl
NCl NomCl AdrCl NCmd DatCmd NCl
Client CL01 Batam Sfax
Commande C001 10/12/2003 CL01
CL02 AMS Sousse C002 13/02/2004 CL03
CL03 BIAS Monastir C003 15/01/2004 CL02
CL04 INFOS Gabes C004 03/09/2003 CL01

Commande ⋈ [Commande.NCl=Client.NCl] Client


NCmd DatCmd NCl NCl NomCl AdrCl
C001 10/12/2003 CL01 CL01 Batam Sfax
C002 13/02/2004 CL03 CL03 BIAS Monastir
C003 15/01/2004 CL02 CL02 AMS Sousse
C004 03/09/2003 CL01 CL01 Batam Sfax 17
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Division (/) : Description

 Type opération: binaire


 Syntaxe: R / S
 Notation fonctionnelle : Div(R,S)
 Sémantique : crée une nouvelle relation qui comporte les attributs
appartenant à R mais n'appartenant pas à S et l'ensemble des tuples qui
concaténés à ceux de S donnent toujours un tuple de R1.
 Schéma: schéma (résultat)  schéma (opérande)
 Résultat : nombre tuples (résultat) <= nombre tuples (opérande)

18
Introduction
Opérateurs ensemblistes
Opérateurs spécifiques

Division (/) : Exemple

Quels sont les étudiants qui ont réussi tous les cours ?

R V R/V
Etudiant Cours Réussi Cours Réussi Etudiant
Med FBD Oui FBD Oui Med
Ali FBD Oui Prog Oui
Salah FBD Non Math Oui
Med Prog Oui
Salah Prog Oui
Ali Math Oui
Med Math Oui

19

Vous aimerez peut-être aussi