Vous êtes sur la page 1sur 21

Base de donnes

Chapitre 5 : Algbre relationnelle

Mohamed HAMMAMI
mohamed.hammami@fss.rnu.tn

Facult des Sciences de Sfax

2012/2013
Introduction
Lalgbre relationnelle pour objectif de dfinir des oprateurs
de calcul sur les relations pour linterrogation des donnes.

Elle sappuie essentiellement sur sept oprateurs de base:


 la projection,
 la slection,
 le produit,
 la jointure,
 l union,
 lintersection et
 la diffrence.

Le rsultat de toute opration est une nouvelle relation qui peut


tre utilise dans de nouvelles oprations.

Mohamed HAMMAMI FSS 2


La projection

La projection ou slection verticale prend en entre


une relation avec N attributs et retourne une relation
restreinte n attributs avec n<N en gardant le mme
nombre denregistrements de la relation initiale.

Syntaxe:

R1=project (nom_relation, col1,., coln)


R1 = (Liste des attributs) R

Mohamed HAMMAMI FSS 3


La projection
Exemple : Employe(code_emp, nom_emp, fonction,
date_embauche)

Code_emp Nom_emp Fonction Date_embauche


E01 Ali Analyste 12/01/98
E02 Mohamed Programmeur 30/11/98

R1=project (Employe, nom_emp, fonction)

Nom_emp Fonction

Ali Analyste

Mohamed Programmeur

Mohamed HAMMAMI FSS 4


La slection
La slection ou slection horizontale prend en entre
une relation et une condition et retourne une relation
restreinte lensemble denregistrements vrifiant la
condition en gardant le mme nombre dattributs de la
relation initiale.

Syntaxe:

R1=select (nom_relation, conditions)


R1 = (Prdicat) R

Mohamed HAMMAMI FSS 5


La slection
Exemple : Employe(code_emp, nom_emp, fonction,
date_embauche)

Code_emp Nom_emp Fonction Date_embauche


E01 Ali Analyste 12/01/98
E02 Mohamed Programmeur 30/11/98

R2=select (Employe, fonction=Analyste)

Code_emp Nom_emp Fonction Date_embauche

E01 Ali Analyste 12/01/98

Mohamed HAMMAMI FSS 6


Le produit
Le produit prend en entre deux relations R1 et R2 et
retourne une relation R dont le nombre
denregistrements = ceux de R1* ceux de R2 et le
nombre dattributs = ceux de R1 + ceux de R2

Syntaxe:

R=produit (R1, R2)


R = R1 X R2

Mohamed HAMMAMI FSS 7


Le produit
Exemple
Employ (code_emp, nom_emp, fonction, #code_dept)
Code_emp Nom_emp Fonction Code_dept
E01 Ali Analyste 10
E02 Mohamed Programmeur 20

Dpartement (code_dept, nom_dept)

Code_dept Nom_dept

10 Informatique

20 Gestion

30 Maintenance

Mohamed HAMMAMI FSS 8


Le produit
R= produit (Employ, dpartement)

Code_emp Nom_emp Fonction Code_dept Code_dept Nom_dept

E01 Ali Analyste 10 10 Informatique

E01 Ali Analyste 10 20 Gestion

E01 Ali Analyste 10 30 Maintenance

E02 Mohamed Programmeur 20 10 Informatique

E02 Mohamed Programmeur 20 20 Gestion

E02 Mohamed Programmeur 20 30 Maintenance

Mohamed HAMMAMI FSS 9


La jointure
La jointure prend en entre deux relations R1 et R2,
deux attributs R1.A et R2.B de mme domaine, et une
condition et retourne une relation en juxtaposant les
lignes de R1 et de R2 pour lesquelles les valeurs de
ces attributs sont gales.

Syntaxe:

R= join (R1, R2,R1.A=R2.B)


R= R1 R2

Mohamed HAMMAMI FSS 10


La jointure
Exemple :

R= join (Employ, dpartement, Employ.Code_dept=


dpartement.Code_dept)

Code_emp Nom_emp Fonction Code_dept Code_dept Nom_dept

E01 Ali Analyste 10 10 Informatique

E02 Mohamed Programmeur 20 20 Gestion

Mohamed HAMMAMI FSS 11


Lunion
Lunion prend en entre deux relations R1 et R2 de
mme schma et retourne une relation de mme
schma en effectuant lunion ensembliste des lignes
des deux relations en liminant les lignes identiques.

Syntaxe:

R= R1 union R2
R = R1 R2

Mohamed HAMMAMI FSS 12


Lunion
Exemple :
R1= select (Employ, fonction=Analyste)
Code_emp Nom_emp Fonction Code_dept
E01 Ali Analyste 10

R2= select (Employ, fonction=Programmeur)


Code_emp Nom_emp Fonction Code_dept
E02 Mohamed Programmeur 20

R3= R1 union R2
Code_emp Nom_emp Fonction Code_dept
E01 Ali Analyste 10
E02 Mohamed Programmeur 20

Mohamed HAMMAMI FSS 13


Lintersection
Lintersection prend en entre deux relations R1 et R2
de mme schma et retourne une relation de mme
schma ayant les n-uplets communs R1 et R2 .

Syntaxe:

R=R1 intersect R2
R = R1 R2

Mohamed HAMMAMI FSS 14


Lintersection
Exemple :
- Liste des employs travaillant dans les deux projets 1 et 2.

Employ (code_emp, num_projet, nom_emp)


Code_emp Num_projet Nom_emp
E01 1 Ali
E02 2 Mohamed
E03 1 Mohsen
E04 2 Slim
E05 2 Nader
E01 2 Ali
E02 1 Mohamed

Mohamed HAMMAMI FSS 15


Lintersection
R1= select (Employ, num_projet=1)

Code_emp Num_projet Nom_emp


E01 1 Ali
E03 1 Mohsen
E02 1 Mohamed

R11= project (R1, code_emp,nom_emp)

Code_emp Nom_emp

E01 Ali
E03 Mohsen
E02 Mohamed

Mohamed HAMMAMI FSS 16


Lintersection
R2= select (Employ, num_projet=2)
Code_emp Num_projet Nom_emp
E02 2 Mohamed
E04 2 Slim
E05 2 Nader
E01 2 Ali

R22= project (R2, code_emp,nom_emp)


Code_emp Nom_emp
E02 Mohamed
E04 Slim
E05 Nader
E01 Ali
Mohamed HAMMAMI FSS 17
Lintersection

R = R11 intersect R22

Code_emp Nom_emp

E01 Ali

E02 Mohamed

Mohamed HAMMAMI FSS 18


La diffrence
La diffrence prend en entre deux relations R1 et R2
de mme schma et retourne une relation de mme
schma en prenant toutes les lignes de R1 qui ne sont
pas dans R2.

Syntaxe:

R = difference (R1, R2)


R= R1 - R2

Mohamed HAMMAMI FSS 19


La diffrence

Exemple:

- Liste des employs travaillant dans le projet 1 et ne travaillant pas dans le


projet 2.

R = R11 R22

Code_emp Nom_emp

E03 Mohsen

Mohamed HAMMAMI FSS 20


Graphe des requtes
REPRESENTATION GRAPHIQUE DE LA REQUETE

X
Prdicat de
Attributs Jointure
Prdicat

Restriction Projection Produit Jointure


Division
Diffrence Union Intersection
Mohamed HAMMAMI FSS 21