Vous êtes sur la page 1sur 27

Algbre relationnelle

AlgebreRelationnelle_support.docx 16/10/2012 Page 1


lments dalgbre relationnelle
I. INTRODUCTION 2
A. ORIGINE 2
B. LES RELATIONS 2
1. TERMINOLOGIE 2
2. EXEMPLES DE RELATION 3
3. EXEMPLE DE RELATION 3
C. INTEGRITE DES RELATIONS 4
D. LALGEBRE RELATIONNELLE 4
II. LES OPERATIONS UNAIRES 5
A. PROJECTION 5
B. SELECTION 6
C. EXPRESSIONS ALGEBRIQUES 7
III. LES OPERATIONS ENSEMBLISTES 8
A. OPERATIONS SUR LES ENSEMBLES - RAPPELS 8
B. UNION 8
C. DIFFERENCE 10
D. PRODUIT CARTESIEN 11
IV. LES OPERATIONS DERIVEES 13
A. INTERSECTION 13
B. QUOTIENT OU DIVISION 14
C. JOINTURES 16
1. JOINTURE INTERNE (THETA-JOINTURE) 16
2. JOINTURE NATURELLE 17
3. LA JOINTURE EXTERNE 18
4. CAS PARTICULIERS 19
V. LES OPERATIONS DE CALCULS ET DAGREGATS 20
A. COLONNES CALCULEES 20
B. COMPTE 21
C. SOMME 22
VI. LES EXPRESSIONS DE L'ALGEBRE RELATIONNELLE 23
A. QUELQUES EXEMPLES 23
B. PLUSIEURS SOLUTIONS 24
VII. EXERCICES DENTRAINEMENT 25
VIII. BIBLIOGRAPHIE 27
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 2
I. Introduction
A. Origine
Lalgbre relationnelle a t introduite dans les annes 1970 par Edgar Frank Codd ( Ted Codd, 1923-2003), alors
informaticien chez IBM, pour formaliser les oprations sur les relations, partir de la thorie des ensembles.
Lobjectif tait de crer une plus grande indpendance entre programmes et reprsentation internes des donnes et
disposer de rgles permettant de rsoudre les problmes de cohrence et de redondance de donnes dans les
fichiers.
Ses travaux sont lorigine des bases de donnes relationnelles, modle de BD le plus utilis encore aujourdhui, et
de SQL, langage dclaratif de manipulation des donnes dune BD relationnelle, partir des oprateurs de lalgbre
relationnelle.
Le modle relationnel sinscrit galement dans les phases de la conception des bases de donnes.
Cf.Article de EF Codd : http://www.databaseanswers.org/downloads/Codds_1970_Paper.pdf
B. Les relations
1. Terminologie
La relation (mathmatique) entre 2 ensembles (binaire) E1 et E2 est forme par le sous-ensemble du produit cartsien
E1 X E2. Chacun des 2 ensembles est dfini par son domaine de valeurs, ensemble des valeurs pouvant tre prises par
ses lments. La relation forme ainsi un ensemble de couples, chacun tant form dun 1
er
lment appartenant E1
et dun 2
nd
appartenant E2.
Le terme n-uplets (tuples en anglais), qualifie lensemble de couples forms par le produit cartsien de n
ensembles.
Un domaine (- de valeurs) est un ensemble de valeurs. Un domaine possde un
identificateur.
Exemple de domaines :
les nombre entiers de 1900 1999 : {1900, 1901, 1902,..., 1998, 1999} annee
les nombre entiers de 1 31 : {1, 2, 3,..., 30, 31} jour
les jours de la semaine : {dimanche, lundi, mardi, ..., vendredi, samedi} jourSemaine
les mois de lanne : {janvier, fvrier, mars, ..., novembre, dcembre} mois
Une relation est un sous-ensemble du produit cartsien dune liste de domaines. Une
relation possde un identificateur.
Rappel : Le produit cartsien de deux ensembles X et Y est l'ensemble de tous les couples, dont la premire
composante appartient X et la seconde Y. Lensemble ainsi produit peut former un produit cartsien avec un 3
me

ensemble Z, etc.
Exemple dune relation dateNaissanceEtudiant :
Le produit cartsien jourSemaine X jour X mois X annee constitue un ensemble compos de toutes les
combinaisons possibles (certaines nexisteront jamais, par exemple le 30 fvrier)
la relation dateNaissanceEtudiant sera forme par un sous-ensemble de ce produit cartsien (en effet,
certains jours aucun tudiant ne sera n)
Un attribut est ainsi un des lments dune relation. Chaque attribut appartient un
domaine de valeur et possde un identificateur.
Exemples dattributs :
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 3
jourNaissance appartenant au domaine jour
moisNaissance appartenant au domaine mois
Ainsi, un schma de relation est dcrit par un identificateur de relation et un ensemble
dattributs, chacun appartenant un domaine de valeurs diffrent.
Le schma de la relation est ainsi :
DateNaissanceEtudiant (jourSemNaissance : jourSemaine, jourNaissance : jour, moisNaissance : mois,
anneeNaissance : annee)
Le degr dune relation correspond son nombre dattributs.
Le degr de la relation DateNaissanceEtudiant est 4.
et tre forme par le sous-ensemble suivant :
{jeudi, 16, mai, 1985}, {lundi, 29, juin, 1987}, {vendredi, 6, octobre, 1989}, {mercredi, 16, juin, 1993}
La cardinalit de la relation correspond au nombre de tuples de la relation.
La cardinalit de la relation DateNaissanceEtudiant est 4.
Une occurrence dune relation dsigne lun des tuples de la relation.
Une occurrence de la relation est {jeudi, 16, mai, 1985}.
2. Exemples de relation
On considre la relation R dfinie par les attributs A, B et C :
en comprhension (ou en intention) :
o R(A : caractere, B : caractere, C : caractere)
o Degree de la relation : 3
en extension :
o R = { {a,b,c}, {d,a,f}, {c,b,d} }
o Cardinalit de la relation 3
Ou bien sous forme tabulaire (= de tableau) :

3. Exemple de relation
On considre la relation Individu dfinie par les attributs numero , nom , prnom et dateNaissance :
en comprhension :
o Individu (numero : entier, nom : chaine, prenom : chaine, dateNaissance : date)
o degr de la relation : 4
en extension :
o Individu = { { 1, Dupont, Jacques, 15/01/1920 },
{ 2, Durand, Pierre, 20/07/1949}, { 3, Lambert, Paul, 03/12/1974 } }
R A B C
a b c
d a f
c b d
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 4
o cardinalit de la relation : 3
Ou bien sous forme tabulaire :
Individu Numero Nom Prenom DateNaissance
1 Dupont Jacques 15/01/1920
2 Durand Pierre 20/07/1949
3 Lambert Paul 03/12/1974
C. Intgrit des relations
La notion de clef permet de maintenir lintgrit des valeurs dans les relations :
CLEF PRIMAIRE (anglais : Primary Key): cest la clef qui assure lunicit dun tuple dune relation ; tous les
autres attributs dune relation sont en dpendance unique de la clef primaire ; la clef peut tre simple ou
composite ;
o on la reprsente souligne numP
CLE CANDIDATE : cest une colonne qui nest pas clef primaire, mais qui aurait pu ltre et dont on souhaite,
parfois, garantir lunicit des valeurs (un code INSEE, une adresse mail);
o On la reprsente : immatAv ;
CLEF ETRANGERE (anglais : Foreign Key): un attribut clef trangre dans une relation est clef primaire dans
une autre table ; elle matrialise un lien logique entre ces 2 relation ;
o on la reprsente gnralement prfixe dun # : #numAv
Exemples 1 :
Pilote ( numP, villeP)
Avion (numAv, nomAv, capaAv, locAv, immatAv)
Vol (numVol, villeDep, villeArr, #numP, #numAv)
o #numP fait reference numP dans Pilote
o #numAv fait reference NumAv dans Avion
Exemple 2 :
Ouvrage (num_ouvrage, titre, annee, #reliure)
o #reliure fait rfrence reliure dans Reliure
Reliure (reliure, prix)
D. Lalgbre relationnelle
Lalgbre relationnelle correspond aux oprations quon applique des relations. Le rsultat produit par lapplication
dun oprateur de lalgbre relationnelle une relation est une nouvelle relation.
L'algbre relationnelle comporte deux familles d'oprateurs :
Les oprateurs unaires (mise en jeu dune seule relation) : PROJECTION et SELECTION
Les oprateurs ensemblistes (mise en jeu de 2 relations): UNION, DIFFERENCE et PRODUIT CARTESIEN
Ces 5 oprations forment un ensemble cohrent et minimal. Des extensions ces oprations de bases permettent
d'en amliorer l'efficacit travers une simplification de leur criture (INTERSECTION, JOINTURE,...) ou d'effectuer
des calculs (COMPTE, SOMME,).
Remarque : le symbolisme de reprsentation des oprateurs peut varier dun auteur lautre. Vous trouvez les
exemples de reprsentations courants.
Lalgbre relationnelle est un langage thorique dinterrogation des relations et forme la base des langages
dinterrogation de base de donnes relationnelle (SQL, par exemple).
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 5
II. LES OPERATIONS UNAIRES
Les oprations unaires dappliquent une seule relation et ont pour rsultat une nouvelle relation.
A. PROJECTION

La projection est une opration de RESTRICTION sur les
COLONNES.
La projection d'une relation R consiste en la mise en place
d'une nouvelle relation en ne retenant que certains attributs
et en supprimant les tuples dupliqus.
Notation :
T =
xi,..,xn
( R )
ou
T = PROJECTION (R , x
1
, ,x
n
)

On utilise parfois le caractre * pour conserver toutes les
attributs de la relation dorigine ou bien la relation rsultante
est gale la relation initiale : T = R (peu dintrt)





T = PROJECTION(R, A, B)

CHOIX DUN SOUS-ENSEMBLE DE COLONNES DE
LA RELATION DE DEPART



R A B C
a b c
d a f
c b d
T A B
a b
d a
c b
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 6

B. SELECTION

La slection est une opration de RESTRICTION sur les
LIGNES.
La slection consiste extraire de la relation R considre
un sous-ensemble de tuples satisfaisant certains
critres.
On appelle ces critres qualification (en abrg Q).

La qualification Q peut tre exprime l'aide de
constantes, doprateurs relationnels (>, <, >=, <=, = , <> )
et doprateurs logiques ( OU, ET , NON ).
Notation :
T =
Q
( R )
ou
T = SELECTION (R , Q)




T = SELECTION (R, A<>a)

CHOIX DUN SOUS-ENSEMBLE DE TUPLES EN
FONCTION DUN CRITERE DE SELECTION
(qualification)



R A B C
a b c
d a f
c b d
T
A B C
d a f
c b d
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 7

C. Expressions algbriques
Afin de rpondre des demandes plus complexes, il est possible combiner les oprateurs pour former des
expressions permettant de rpondre toutes formes de questions.
Ainsi, pour obtenir, partir de la relation R, les colonnes A et B de lensemble des tuples pour lesquelles la valeur de
lattribut A est diffrente de a, nous pouvons crire :
R1 = SELECTION ( R , A<>a )
R1 A B C
d a f
c b d
Puis :
T = PROJECTION( R1 , A, B )
T A B
d a
c b
Soit : T = PROJECTION ( SELECTION ( R , A<>a ) , A, B )
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 8
III. LES OPERATIONS ENSEMBLISTES
Les oprations ensemblistes sappliquent 2 relations pour former une nouvelle relation.
Les oprations UNION et DIFFERENCE exigent des relations quelles soient union compatibles , c'est dire
qu'elles aient le mme schma :
o mme nombre dattributs (mme degr)
o les attributs associs 2 2 sont issus de mmes domaines

Remarque : les doublons sont limins. (tuples pour lesquels les valeurs de tous les attributs ont la mme valeur)
A. Oprations sur les ensembles - rappels
Soient deux ensembles R et S (S est en gras sur les schmas). Pour les 3 cas prsents, vous trouverez le rsultat en
extension et la cardinalit (nombre dlments) de l'ensemble rsultant, T.

T = R U S card(R) + card(S) - card(R S)
T = R - S card(R) - card(R S)
T = S - R card(S) - card(R S)
B. UNION

Lunion de 2 relations R et S de mme schma est une
relation T de mme schma contenant lensemble des
tuples appartenant soit R, soit S, soit la fois R et S
Notations :
T = (R U S)
Ou
T=UNION(R, S)
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 9










TOUS LES TUPLES DES DEUX RELATIONS EN
SUPPRIMANT LES DOUBLONS




R A B C
a b c
d a f
c b d
S A B C
b g a
d a f
R A B C
a b c
d a f
c b d
S A B C
b g a
d a f
Les doublons
sont
supprims
Les relations
sont union-
compatibles
T A B C
a b c
d a f
c b d
b g a
Provient
de R
Provient
de S
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 10

C. DIFFERENCE

La diffrence entre 2 relations R et S de mme schma
dans l'ordre (R - S) est la relation T de mme schma
contenant les tuples appartenant R sauf ceux qui
appartiennent aussi S.

Notation :
T= (R - S)
Ou
T= MINUS(R,S)
T = DIFFERENCE(R, S)



On enlve de R ce qui est aussi dans S
(TOUTES LES LIGNES DE LA PREMIERE
RELATION A LEXCEPTION DE CELLES
DE LA DEUXIEME)



R A B C
a b c
d a f
c b d
S A B C
b g a
d a f
Les tuples
prsents
dans S ne
sont pas
repris
Les relations
sont union-
compatibles
T A B C
a b c
c b d
Les tuples
de R qui
ne sont
pas dans S
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 11

D. PRODUIT CARTESIEN

Le produit cartsien de 2 relations R et S de schma
quelconque est une relation T ayant pour attributs les
attributs de R et de S, et dont les tuples sont constitus par
la combinaison de chaque tuple de R avec chacun des
tuples de S,.
Le produit cartsien permet la construction de toutes les
combinaisons possibles entre les tuples de 2 relations.

Notation :
T = (R X S)
ou
T=PRODUIT(R, S)




R A B C
a b c
d a f
c b d
S A D
b g
d a
S A D
b g
d a
R A B C
a b c
d a f
c b d
Le schma rsultant comporte
tous les attributs de R et de S
Chaque tuple de R est associ
chacun des tuples de S pour
former un couple de valeurs
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 12


T R.A R.B R.C S.A S.D
a b c b g
a b c d a
d a f b g
d a f d a
c b d b g
c b d d a
Les tuples de R Les tuples de S
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 13
IV. Les oprations drives
Elles peuvent tre construites partir des oprations de base.
A. INTERSECTION

L'intersection de 2 relations R et S de mme schma
est une relation T de mme schma contenant les
tuples appartenant la fois R et S.
Notation :
T = ( R S)
ou
T = INTERSECT(R, S)
Lintersection peut tre construite partir des oprateurs de base :
( R S) = R (R S) = S ( S R )



LES LIGNES QUI SONT A LA FOIS DANS LA
PREMIERE ET DANS LA DEUXIEME
RELATION


R A B C
a b c
d a f
c b d
S A B C
b g a
d a f
R A B C
a b c
d a f
c b d
S A B C
b g a
d a f
Les relations
sont union-
compatibles
Les tuples
prsents
dans R et
dans S sont
repris
T A B C
d a f
Tuples
communs
R et S
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 14
B. QUOTIENT ou DIVISION

Le quotient (ou division) : de la relation R de schma R
(A1, A2,An) par la sous-relation S de schma S (Ap+1,
An) est la relation T de schma T(A1, A2,Ap)
forme de tous les tuples qui, combins chaque
tuple de S, donnent toujours un tuple de R.
Notation :
T = ( R / S)
ou
T = DIVISION (R, S)
T = QUOTIENT (R, S)
Le quotient permet de rechercher l'ensemble de tous les sous-tuples d'une relation satisfaisant une sous-relation
dcrite par l'opration diviseur.




R A B C D
a b c d
a b a d
a c b a
b c c d
d a c d
b c a d
S C D
c d
a d
R A B C D
a b c d
a b a d
a c b a
b c c d
d a c d
b c a d
S C D
c d
a d
T A B
a b
b c
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 15

Le produit cartsien de T et S va toujours donner un tuple de R
Exemple dutilisation : rechercher tous les produits qui existent dans une gamme de couleurs(ou une gamme de
prix), ou bien tous les livres quon trouvera dans une gamme de reliures, ou bien les coureurs qui ont particip une
liste de grands prix,etc.

R A B C D
a b c d
a b a d
a c b a
b c c d
d a c d
b c a d
S C D
c d
a d
T A B
a b
b c
X
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 16
C. JOINTURES
Lopration de base de la jointure est le produit cartsien.
1. Jointure interne (thta-jointure)
Cette opration est essentielle dans les systmes relationnels pour rassembler de manire cohrente des attributs
provenant de plusieurs relations.
La jointure interne, ou thta-jointure (INNER JOIN) est une produit cartsien de R et S qui conserve seulement les
tuples satisfaisant une qualification (qualification = comparaison entre 2 attributs) :
L'quijointure est une jointure ayant pour qualification l'galit entre 2 attributs;
La non-quijointure est une jointure ayant pour qualification un oprateur autre que l'galit entre 2
attributs

La jointure de 2 relations R et S selon une qualification
Q est l'ensemble des tuples du produit cartsien R X S
satisfaisant la qualification Q. (voir loprateur
Selection).
La jointure exige que les 2 relations aient un domaine
en commun.
La jointure est quivalente lapplication dune
slection un produit cartsien.
Notation :
T = (R
Q
)S
ou
T = JOINTURE(R, S , Q)



T = JOIN (R, S, R.B = S.A)
R A B C
a b c
d a f
c b d
S A D
b g
d a
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 17


2. Jointure naturelle
La jointure naturelle (NATURAL JOIN) est une jointure de R et S sur tous les attributs de mme nom, suivi de la
projection qui permet de supprimer les attributs rpts.
Attention :
si aucun nom dattribut nest commun, on obtient un produit cartsien
si des attributs portent le mme nom sans toutefois avoir le mme sens, on obtiendra une jointure
incohrente...


T = NATURAL JOIN (R, S)
R X S R.A R.B R.C S.A S.D
a b c b g
a b c d a
d a f b g
d a f d a
c b d b g
c b d d a
Q
R.B = S.A
T R.A R.B R.C S.A S.D
a b c b g
c b d b g
R A B C
a b c
d a f
c b d
S A D
b g
d a
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 18


3. La jointure externe
La jointure externe (OUTER JOIN) est une jointure de R et S qui conserve tous les tuples, de lune ou lautre des
relations et les tuples issus de la jointure des 2 relations :
La jointure de R et S conserve tous les tuples :
de R pour une jointure externe gauche, (LEFT OUTER JOIN)
et de S pour une jointure externe droite (RIGHT OUTER JOIN)
ou des 2 relations pour une jointure totale (FULL OUTER JOIN).
Les valeurs des tuples ne satisfaisant pas la qualification ont pour valeur NULL.


T = LEFT OUTER JOIN (R, S, R.A = S.A)
Ou
T = LEX JOIN(R, S, R.A = S.A)
(REX_JOIN pour une jointure externe droite)
(FEX_JOIN pour une jointure externe complte)
On conserve tous les tuples de la table gauche de la jointure
R X S R.A R.B R.C S.A S.D
a b c b g
a b c d a
d a f b g
d a f d a
c b d b g
c b d d a
T A B C S.A D
d a f d a
R A B C
a b c
d a f
c b d
S A D
b g
d a
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 19


4. Cas particuliers
L'autojointure est un cas de jointure d'une relation avec elle-mme. Cela se passe comme si on avait 2 copies
diffrentes d'une mme relation. Les noms des attributs sont prfixs du nom de relation afin d'viter toute
ambigut.
La semijointure est un cas de jointure ne conservant que les attributs dune des relations .

R X S R.A R.B R.C S.A S.D
a b c b g
a b c d a
d a f b g
d a f d a
c b d b g
c b d d a
Q
R.A = S.A
T R.A R.B R.C S.A S.D
a b c null null
d a f d a
c b d null null
Tuple joint
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 20
V. Les oprations de calculs et dagrgats
On peut galement ajouter des oprations de calcul et de regroupement en appliquant une fonction statistique sur
les attributs des relations. De nombreuses requtes ont en effet besoin de ces oprations.
A. Colonnes calcules
Certaines colonnes peuvent provenir dun rsultat de calcul. La mise en place de ces calculs peut tre effectue dans
le cadre des projections.
On dfinit ici une nouvelle relation R pour laquelle les attributs B et C sont numriques (condition pour effectuer
des calculs).

R A B C
a 2 10
d 3 15
c 5 5


A B BparC MoitieC
a 2 2*10 10/2
d 3 3*15 15/2
c 5 5*5 5/2

T = PROJECTION (R , A, B, BparC=B*C,
MoitieC=C/2 )



T A B BparC MoitieC
a 2 20 5
d 3 45 7,5
c 5 25 2,5


Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 21

B. COMPTE
Compte est une opration courante qui permet de
DENOMBRER LES LIGNES d'une relation qui ont une mme
valeur d'attribut en commun.
La relation rsultante ne contient que les attributs de
regroupement x
i
choisis avec leurs occurrences dans la
relation
Notation :
T = compte x
1
, , x
n
( R )
ou
T = COMPTE (R , x
1
,,x
n
)

Si aucun attribut de regroupement n'est prcis, l'opration renvoie alors le nombre de tupes de R. La relation T ne
comporte alors quun seul tuple avec une seule colonne.



Exemple 1 : T = COMPTE (R )

On compte le nombre de tuples de R

Exemple 2 : T = COMPTE (R , B )
On compte le nombre de tuples de R par valeur
diffrente de la colonne B

R A B C
a b c
d a f
c b d
T CompteR
3
T B CompteR
b 2
a 1
Countx1,,xn
T
R
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 22

C. SOMME

Somme est une opration qui permet de faire la
SOMME CUMULEE des valeurs d'un attribut Y
pour chacune des valeurs diffrentes de attributs
de regroupement x
1
, x
n
.
Y doit tre numrique.
La relation rsultante ne contient que les
diffrentes valeurs des attributs Xi de
regroupement choisis ainsi que la somme
cumule des Y correspondants.

Notation :
T = somme x
1
,,x
n
( R, Y)
ou
T = SOMME (R, Y , x
1
,...,x
n
)
Si aucun attribut de regroupement n'est prcis, l'opration renvoie alors la somme de toutes des valeurs de la
colonne Y. La relation T ne comporte alors quun seul tuple avec une seule colonne.
Cette opration se gnralise facilement d'autres oprations : MOYENNE, MINIMUM, MAXIMUM.
On dfinit ici une nouvelle relation R pour laquelle lattribut C est numrique.



Exemple 1 : T = SOMME (R , C )
On effectue la somme de la colonne C pour tous
les tuples de R

Exemple 2 : T = SOMME (R , C, B )
On effectue la somme de la colonne C par valeur
diffrente de la colonne B



R A B C
a b 10
d a 15
c b 5
T SommeC
30
T B SommeC
b 15
a 15
Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 23
VI. Les expressions de l'algbre relationnelle
Une fois les oprateurs relationnels identifis, il est alors facile de combiner ces oprations lmentaires pour
construire des expressions de l'algbre relationnelle permettant de fournir les rponses des questions complexes.
Afin de sapprocher du langage SQL daccs aux bases de donnes relationnelles, certains auteurs introduisent de
nouveaux oprateurs.
Ainsi, vous trouverez un oprateur de classement des lignes (tri) :
T = TRI (R, x
1
[croissant | decroissant], ,x
n
[croissant | decroissant]),
qui produit une nouvelle relation T partir de la relation R, en triant, en rordonnant, les lignes selon les
critres de tri. Un critre de tri fait rfrence une colonne et un mot clef qui prcise le type de classement
quon va appliquer cette colonne (croissant, par dfaut, ou dcroissant).
A. Quelques exemples
Exemple pour 3 relations :
Fournisseurs (fno, nom, adresse, ville)
Produits (pno, design, prix, poids, couleur)
Commandes (cno, #fno, #pno, qute)
Dterminer les diffrents numros de fournisseurs nomms "Dupont"

On slectionne les donnes des fournisseurs dont le nom est
dupont :
R1 = SELECTION ( Fournisseurs , nom=dupont )
On rcupre seulement le numro de fournisseur (colonne
fno) :
R2 = PROJECTION ( R1 , fno )

Ou bien :
PROJECTION ( SELECTION ( Fournisseurs / nom= dupont ) ,
fno )


Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 24

Dterminer les numros de fournisseurs qui ont moins de 3 commandes

On compte le nombre de commandes par fournisseur :
R1 = COMPTE (Commandes , fno)

On slectionne les lignes pour lesquelles le compte est
infrieur 3 :
R2 = SELECTION (R1 , compteCommandes < 3)

On rcupre seulement le numro de fournisseur (colonne
fno):
R3 = PROJECTION (R2 , fno)

Ou bien :
PROJECTION ( SELECTION ( COMPTE ( Commandes , fno ) ,
compte < 3 ) , fno )


B. Plusieurs solutions
Il existe en gnral plusieurs requtes algbriques diffrentes qui fournissent une solution une question donne. Si
la relation obtenue est identique avec ces diffrentes requtes, l'efficacit est rarement la mme (par exemple,
l'opration de jointure est en gnral coteuse ; la table temporaire la plus volumineuse pour effectuer cette requte
est engendre par le produit cartsien des 2 tables).
Des calculs utilisant la cardinalit dune relation ainsi que le nombre et la taille (moyenne) de ses attributs permet de
choisir les requtes la moins couteuse.

Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 25
VII. Exercices dentranement
En utilisant les 3 relations (Fournisseurs, Produits, Commandes) :
Fournisseurs (fno, nom, adresse, ville)
Produits (pno, design, prix, poids, couleur)
Commandes (cno, #fno, #pno, qte)
lister les numros et noms des fournisseurs
lister les donnes sur les produits dont le poids est suprieur 15kg
liste les produits dont le poids est compris entre 15 et 40 kg
lister les fournisseurs de Lille, Lyon ou Nice
lister les noms des fournisseurs avec les numros de produits commands ainsi que la quantit commande
lister les couples de rfrences de fournisseurs situs dans la mme ville
lister tous les produits de moins de 20 kg avec les quantits en cours de commande
compter le nombre de commandes du produit no 102
lister le nombre de commandes par fournisseur
lister les numros de fournisseur qui ont plus de 3 commandes d'au moins dix articles en cours

Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 26
Propositions de rponses :
lister les numros et noms des fournisseurs
o PROJECTION (Fournisseurs , fno, nom)
lister les donnes sur les produits dont le poids est suprieur 15kg
o SELECTION (Produits , poids > 15)
liste les produits dont le poids est compris entre 15 et 40 kg
o SELECTION (Produits , poids >= 15 ET poids <=40)
o Ou bien :
o R1 = SELECTION (Produits , poids >= 15)
o R2 = SELECTION (Produits , poids <= 40)
o R3 = INTERSECTION (R1, R2)
lister les fournisseurs de Lille, Lyon ou Nice
o SELECTION (Fournisseurs , ville=Lille OU ville=Lyon OU ville=Nice)
o Ou bien :
o R1 = SELECTION (Fournisseurs , ville=Lille)
o R2 = SELECTION (Fournisseurs ,ville=Lyon)
o R3 = SELECTION (Fournisseurs , ville=Nice)
o R4 = UNION (R1, R2)
o R5 = UNION (R4, R3)
lister les noms des fournisseurs avec les numros de produits commands ainsi que la quantit commande
o R1 = SOMME (Commandes , qte, fno, pno)
o R2 = JOINTURE (Fournisseurs, R1 , Fournisseurs.fno = R1.fno)
o R2 = PROJECTION (R1 , nom, pno, Sommeqte)
lister les couples de rfrences de fournisseurs situs dans la mme ville
o JOINTURE (Fournisseurs A, Fournisseurs B , A.ville = B.ville)
lister tous les produits de moins de 20 kg avec les quantits en cours de commande
o R1 = SELECTION ( Produits , poids < 20 )
o R2 = SOMME ( Commandes , qte , pno )
o R3 = JOINTURE ( R1, R2 , R1.pno = R2.pno)
compter le nombre de commandes du produit no 102
o R1 = SELECTION (Commandes , pno = 102 )
o R2 = COMPTE ( R1 )
lister le nombre de commandes par fournisseur
o R1 = COMPTE (Commandes , fno)
o R2 = JOINTURE (Fournisseur, R1 , Fournisseur.fno = R1.fno)
o R3 = PROJECTION (R2 , fno, nom, R2.compte)
lister les numros de fournisseur qui ont plus de 3 commandes d'au moins dix articles en cours (on considre
quun mme numro de commande peut tre rpt, c'est--dire, quil faudrait que lidentifiant comprenne
un numro de ligne)
o R1 = COMPTE ( Commandes , fno, cno, pno)
o R2 = SELECTION (R1 , R1.compte >= 10)
o R3 = COMPTE ( R2 , fno, cno)
o R4 = SELECTION (R3 , R3.compte > 3)
o R5 = PROJECTION (R4, fno)

Algbre relationnelle
AlgebreRelationnelle_support.docx 16/10/2012 Page 27
VIII. Bibliographie
Bases de donnes et systmes d'information - le modle relationnel : langages, systmes et mthodes -
Hacer Boudjlida - Dunod - 1999 - isbn 2 10 004309 9
des bases de donnes l'internet - Philippe Mathieu - Vuibert Informatique - 2000 - isbn 2-7117-8669-2
SQL2 de la thorie lapplication Pierre Delmal bibliothque des universits 1995 isbn 2 8041 2179
8