Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chapitre 5 Algebre Relationnelle

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

Cours Bases de Données Chapitre 5: L’Algèbre Relationnel

Chapitre 5 : L’algèbre relationnelle

Objectifs :

 1. Maîtriser les différentes opérations de l’algèbre relationnelle (projection, restriction,


union, différence, intersection, division, produit cartésien, jointure)
 2. Répondre à des interrogations de la BD en algèbre relationnelle

Durée : 1.5h CI + 1.5h TD

Eléments de contenu

I. Introduction
II. Opérateurs ensemblistes
1. Opérateur d’union
2. Opérateur d’intersection
3. Opérateur de différence
4. Opérateur produit cartésien (x)
III. Opérateurs propres aux Bases de Données
1. Renommage (α)
2. Sélection (σ)
3. Projection (π)
4. Division (/)
5. Jointure (  )

Mme Houneida HADDAJI 5


Cours Bases de Données Chapitre 5: L’Algèbre Relationnel

Chapitre 5 : L’algebre relationnelle

I- 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.

Etant donnée, que 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 (union, intersection,
différence et produit cartésien) et introduit des opérateurs propres aux bases de données
(renommage, sélection, projection, jointure et division).

Ces opérateurs sont soit unaires soit binaires. Les opérateurs unaires impliquent un seul opérande:
sélection (noté σ), projection (π), renommage (α)

Les opérateurs binaires impliquent deux opérandes: produit cartésien, jointures, union,
intersection, différence, division.

II- Opérateurs ensemblistes


Les opérateurs ensemblistes correspondent aux opérateurs habituels de la théorie des ensembles,
définis sur des tables de même schéma.

Ces opérateurs sont l’union, l’intersection et la différence. Le produit cartésien porte sur des
relations qui ne sont pas de même schémas.

1- Opérateur d’union
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 ∪ S produit une
nouvelle relation de schéma identique à R et à S possédant les enregistrements appartenant à R ou
à S ou aux deux relations.

Exemple :

Produit1 Produit2

NumP LibP CoulP Poids PU Qte


P001 Robinet Gris 5 18 1200

Mme Houneida HADDAJI 6


Cours Bases de Données Chapitre 5: L’Algèbre Relationnel
NumP LibP CoulP Poids PU Qte
P005 Fer Noir 50 90 800
P002 Prise blanc 1.2 1.5 1000 P006 Serrure Jaune 2 47 1250
P003 Câble blanc 2 25 1500
P004 Peinture blanc 25 36 900

Produit1 U Produit2
NumP LibP CoulP Poids PU Qte
P001 Robinet Gris 5 18 1200
P002 Prise blanc 1.2 1.5 1000
P003 Câble blanc 2 25 1500
P004 Peinture blanc 25 36 900
P005 Fer Noir 50 90 800
P006 Serrure Jaune 2 47 1250

2- Opérateur d’intersection
Soient r et s, deux relations de schémas respectifs R et S. Les schémas R et S doivent être union-
compatibles. 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.

Exemple :

Produit1 Produit2

NumP LibP CoulP Poids PU Qte NumP LibP CoulP Poids PU Qte
P001 Robinet Gris 5 18 1200 P003 Câble blanc 2 25 1500
P002 Prise blanc 1.2 1.5 1000 P006 Serrure Jaune 2 47 1250
P003 Câble blanc 2 25 1500
P004 Peinture blanc 25 36 900

Produit1 ∩ Produit2

NumP LibP CoulP Poids PU Qte


P003 Câble Blanc 2 25 1500

3- Opérateur de 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. 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.

Exemple : Quels sont les produits appartenant à Produit 1 et non à Produit2 ?

Produit1 Produit2

NumP LibP CoulP Poids PU Qte NumP LibP CoulP Poids PU Qte
P001 Robinet Gris 5 18 1200 P003 Câble blanc 2 25 1500
P002 Prise blanc 1.2 1.5 1000 P006 Serrure Jaune 2 47 1250
P003 Câble blanc 2 25 1500
P004 Peinture blanc 25 36 900

Mme Houneida HADDAJI 7


Cours Bases de Données Chapitre 5: L’Algèbre Relationnel

Produit1 - Produit2
NumP LibP CoulP Poids PU Qte
P001 Robinet Gris 5 18 1200
P002 Prise blanc 1.2 1.5 1000
P004 Peinture blanc 25 36 900
P006 Serrure Jaune 2 47 1250

4- Opérateur produit cartésien (x)


Le produit cartésien est un opérateur issu de la théorie des ensembles défini comme suit : si A et B
sont deux ensembles, leur produit cartésien A x B contient toutes les paires (a, b) avec a Є A et b
Є B. Ceci signifie que le produit cartésien permet d’obtenir toutes les combinaisons possibles entre
les éléments de deux ensembles. Dans le cadre de l’algèbre relationnelle nous définirons donc le
produit cartésien comme suit :

Soient r et s, deux relations de schémas respectifs R et S. Les schémas R et S doivent être


disjoints c’est à dire ne pas avoir d’attributs communs. Le produit cartésien des deux relations R x
S produit une nouvelle relation de schéma Z égal à l’union des schémas R et S et possédant comme
enregistrements, la concaténation des enregistrements de R avec ceux de S.

Exemple :
Client Produit

NumCl NomCl Adr NumP LibP CoulP Poids PU Qte


Cl1 AAA Tunis P003 Câble blanc 2 25 1500
Cl2 BBB Sousse P006 Serrure Jaune 2 47 1250
Cl3 CCC Tunis
Client X Produit
NumCl NomCl Adr NumP LibP CoulP Poids PU Qte
Cl1 AAA Tunis P003 Câble blanc 2 25 1500
Cl1 AAA Tunis P006 Serrure Jaune 2 47 1250
Cl2 BBB Sousse P003 Câble blanc 2 25 1500
Cl2 BBB Sousse P006 Serrure Jaune 2 47 1250
Cl3 CCC Tunis P003 Câble blanc 2 25 1500
Cl3 CCC Tunis P006 Serrure Jaune 2 47 1250

III- Opérateurs propres aux Bases de Données


1- 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.

Exemple : Renommer l’attribut LibP par l’attribut DesignP dans la table Produit.

Produit α [LibP : DesignP] Produit

Mme Houneida HADDAJI 8


Cours Bases de Données Chapitre 5: L’Algèbre Relationnel

NumP LibP CoulP Poids PU Qte NumP DesignP CoulP Poids PU Qte
P001 Robinet Gris 5 18 1200 P001 Robinet Gris 5 18 1200
P002 Prise blanc 1.2 1.5 1000 P002 Prise blanc 1.2 1.5 1000
P003 Câble blanc 2 25 1500 P003 Câble blanc 2 25 1500
P004 Peinture blanc 25 36 900 P004 Peinture blanc 25 36 900

2- Sélection (σ)
La sélection appelée encore restriction est un 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.

Exemple : lister les produits de couleur blanche

Produit σ[coulP=’blanc’] Produit

NumP LibP CoulP Poids PU Qte NumP LibP CoulP Poids PU Qte
P001 Robinet Gris 5 18 1200 P002 Prise blanc 1.2 1.5 1000
P002 Prise blanc 1.2 1.5 1000 P003 Câble blanc 2 25 1500
P003 Câble blanc 2 25 1500 P004 Peinture blanc 25 36 900
P004 Peinture blanc 25 36 900

3- Projection (π)
La projection est un opérateur unaire qui prend en entrée une relation r de schéma R (A 1,A2... An)
et produit en sortie une nouvelle relation de schéma (A1, A2, ..., Ai) inclus dans R ayant comme
enregistrements ceux de r restreints à ce sous-schéma (A1, A2, ..., Ai). Le but de la projection étant
de ne retenir que certains attributs dans une relation. A l’issue d’une projection, la relation
résultante peut contenir des doublons.

Exemple : Donner tous les libellés des produits.

Produit π[LibP] Produit

NumP LibP CoulP Poids PU Qte LibP


P001 Robinet Gris 5 18 1200 Robinet
P002 Prise blanc 1.2 1.5 1000 Prise
P003 Câble blanc 2 25 1500 Câble
P004 Peinture blanc 25 36 900 Peinture

Mme Houneida HADDAJI 9


Cours Bases de Données Chapitre 5: L’Algèbre Relationnel

4- Division (/)
Le résultat de la division d’une relation R(X, Y) par une relation S (Y) est une relation Q(X) définie
par :

1) Le schéma de Q est constitué de tous les attributs de R n’appartenant pas à S.

2) Les tuples qj de Q tels que, quels que soit les tuples si de S, le tuple (qj,si) est un tuple de R
(c'est-à-dire QXS⊆R).

Exemple : Quelles sont les commandes qui portent sur tous les produits ?

LigneCmd Produit LigneCmd/Produit

NCmd NumP Qte NumP NCmd


C001 P001 250 P001 C001
C001 P002 180 P002
C001 P004 200 P004
C002 P001 120
C002 P002 150
C003 P002 200
C004 P004 250

5- Jointure (  )
Soient r et s deux relations de schémas respectifs R et S. La jointure de R et S, selon une condition
que doivent vérifier les valeurs des tuples, est l’ensemble des tuples du produit cartésien R x S
satisfaisant cette condition. Donc on peut la considérer comme un produit cartésien suivi d’une
sélection.

La relation résultant de la jointure possède comme schéma l'union des deux schémas R et S et
comme enregistrements la concaténation des enregistrements de R avec ceux de S qui répondent à
la condition de sélection.

La condition de sélection utilise les opérateurs de comparaison (=;<; <=; >; >=; != ), les
connecteurs logiques (et, ou, non) et les parenthèses.

Lorsque le critère de sélection est l’égalité, on parle d’équi-jointure sinon on parle de Théta-
jointure.

Exemple1 : soit la base de données commerciale suivante. Quels sont les clients qui ont passé des
commandes.

Il faut effectuer une équi-jointure avec Client.NumCl=Commande.NumCl

Mme Houneida HADDAJI 10


Cours Bases de Données Chapitre 5: L’Algèbre Relationnel

Client Commande

NumCl NomCl AdrCl NCmd DateCmd NumCl


CL01 Batam Tunis C001 10/12/2009 CL02
CL02 AMS Sousse C002 12/03/2010 CL05
CL03 Prodelec Tunis C003 15/01/2011 CL03
CL04 AElec Tunis C004 10/06/2009 CL02
CL05 Sanitaire Sfax C005 22/04/2010 CL04
CL06 Electron Sousse

Commande  [Commande.NumCl=Client.NumCl] Client

NCmd DateCmd NumCl NumCl NomCl AdrCl


C001 10/12/2009 CL02 CL02 AMS Sousse
C002 12/03/2010 CL05 CL05 Sanitaire Sfax
C003 15/01/2011 CL03 CL03 Prodelec Tunis
C004 10/06/2009 CL02 CL02 AMS Sousse
C005 22/04/2010 CL04 CL04 AElec Tunis

Exemple 2 : Quels sont les clients qui n’ont pas passé des commandes le 10/12/2009 ?

Il faut effectuer une théta-jointure avec critère : Commande.NumCl=Client.NumCl et Commande


.DateCmd != 10/12/2009

Client Commande

NumCl NomCl AdrCl NCmd DateCmd NumCl


CL01 Batam Tunis C001 10/12/2009 CL02
CL02 AMS Sousse C002 12/03/2010 CL04
CL03 Prodelec Tunis C003 15/01/2011 CL03
CL04 AElec Tunis
Commande  [Commande.NumCl=Client.NumCl et Commande .DateCmd != 10/12/2009] Client

NCmd DateCmd NumCl NumCl NomCl AdrCl


C002 12/03/2010 CL05 CL05 Sanitaire Sfax
C003 15/01/2011 CL03 CL03 Prodelec Tunis

Mme Houneida HADDAJI 11

Vous aimerez peut-être aussi