Vous êtes sur la page 1sur 27

Algbre relationnelle

lments dalgbre relationnelle


I.
INTRODUCTION
A. ORIGINE
B. LES RELATIONS
1. TERMINOLOGIE

2
2
2
2

2. EXEMPLES DE RELATION

3. EXEMPLE DE RELATION

C.
D.
II.
A.
B.
C.
III.
A.
B.
C.
D.
IV.
A.
B.
C.
1.

4
4

INTEGRITE DES RELATIONS


LALGEBRE RELATIONNELLE
LES OPERATIONS UNAIRES
PROJECTION
SELECTION
EXPRESSIONS ALGEBRIQUES
LES OPERATIONS ENSEMBLISTES
OPERATIONS SUR LES ENSEMBLES - RAPPELS
UNION
DIFFERENCE
PRODUIT CARTESIEN
LES OPERATIONS DERIVEES
INTERSECTION
QUOTIENT OU DIVISION
JOINTURES
JOINTURE INTERNE (THETA-JOINTURE)

5
5
6
7
8
8
8
10
11
13
13
14
16
16

2. JOINTURE NATURELLE

17

3. LA JOINTURE EXTERNE

18

4. CAS PARTICULIERS

19

V.
LES OPERATIONS DE CALCULS ET DAGREGATS
A. COLONNES CALCULEES
B. COMPTE
C. SOMME
VI. LES EXPRESSIONS DE L'ALGEBRE RELATIONNELLE
A. QUELQUES EXEMPLES
B. PLUSIEURS SOLUTIONS
VII. EXERCICES DENTRAINEMENT
VIII. BIBLIOGRAPHIE

AlgebreRelationnelle_support.docx

16/10/2012

20
20
21
22
23
23
24
25
27

Page 1

Algbre relationnelle

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 1er lment appartenant E1
et dun 2nd 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 3me
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 :
AlgebreRelationnelle_support.docx

16/10/2012

Page 2

Algbre relationnelle

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 :
anneeNaissance : annee)

jourSemaine,

jourNaissance :

jour,

moisNaissance :

mois,

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

A
a
d
c

B
b
a
b

C
c
f
d

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 } }

AlgebreRelationnelle_support.docx

16/10/2012

Page 3

Algbre relationnelle
o cardinalit de la relation : 3
Ou bien sous forme tabulaire :
Individu
Numero
Nom
Prenom

DateNaissance

Dupont

Jacques

15/01/1920

Durand

Pierre

20/07/1949

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

AlgebreRelationnelle_support.docx

16/10/2012

Page 4

Algbre relationnelle

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 , x1, ,xn)


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)

A
a
d
c

B
b
a
b

A
a
d
c

B
b
a
b

AlgebreRelationnelle_support.docx

C
c
f
d

T = PROJECTION(R, A, B)
CHOIX DUN SOUS-ENSEMBLE DE COLONNES DE
LA RELATION DE DEPART

16/10/2012

Page 5

Algbre relationnelle

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)

A
a
d
c

B
b
a
b

C
c
f
d

A
d
c

B
a
b

C
f
d

AlgebreRelationnelle_support.docx

T = SELECTION (R, A<>a)


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

16/10/2012

Page 6

Algbre relationnelle

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

Puis :
T = PROJECTION( R1 , A, B )
T

Soit : T = PROJECTION ( SELECTION ( R , A<>a ) , A, B )

AlgebreRelationnelle_support.docx

16/10/2012

Page 7

Algbre relationnelle

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
o

mme nombre dattributs (mme degr)


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)
AlgebreRelationnelle_support.docx

16/10/2012

Page 8

Algbre relationnelle

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

B
g
a

C
a
f

Les relations
sont unioncompatibles

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

B
g
a

C
a
f

A
a
d
c
b

B
b
a
b
g

TOUS LES TUPLES DES DEUX RELATIONS EN


SUPPRIMANT LES DOUBLONS

Les doublons
sont
supprims

C
c
f
d
a

AlgebreRelationnelle_support.docx

Provient
de R
Provient
de S

16/10/2012

Page 9

Algbre relationnelle

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)
Les relations
sont unioncompatibles

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

B
g
a

C
a
f

A
a
c

B
b
b

C
c
d

AlgebreRelationnelle_support.docx

On enlve de R ce qui est aussi dans S


(TOUTES LES LIGNES DE LA PREMIERE
RELATION A LEXCEPTION DE CELLES
DE LA DEUXIEME)

Les tuples
prsents
dans S ne
sont pas
repris

Les tuples
de R qui
ne sont
pas dans S

16/10/2012

Page 10

Algbre relationnelle

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)

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

D
g
a

Le schma rsultant comporte


tous les attributs de R et de S

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

D
g
a

Chaque tuple de R est associ


chacun des tuples de S pour
former un couple de valeurs

AlgebreRelationnelle_support.docx

16/10/2012

Page 11

Algbre relationnelle

R.A
a
a
d
d
c
c

R.B
b
b
a
a
b
b

R.C
c
c
f
f
d
d

Les tuples de R

AlgebreRelationnelle_support.docx

16/10/2012

S.A
b
d
b
d
b
d

S.D
g
a
g
a
g
a

Les tuples de S

Page 12

Algbre relationnelle

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 )

A
a
d
c

B
b
a
b

C
c
f
d

B
g
a

C
a
f

LES LIGNES QUI SONT A LA FOIS DANS LA


PREMIERE ET DANS LA DEUXIEME
RELATION

Les relations
sont unioncompatibles

A
b
d

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

B
g
a

C
a
f

Les tuples
prsents
dans R et
dans S sont
repris

A
d

AlgebreRelationnelle_support.docx

B
a

C
f

16/10/2012

Tuples
communs
R et S

Page 13

Algbre relationnelle

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.

A
a
a
a
b
d
b

B
b
b
c
c
a
c

A
a
a
a
b
d
b

C
c
a
b
c
c
a

D
d
d
a
d
d
d

B
b
b
c
c
a
c

C
c
a
b
c
c
a

D
d
d
a
d
d
d

AlgebreRelationnelle_support.docx

A
a
b

16/10/2012

C
c
a

D
d
d

C
c
a

D
d
d

B
b
c

Page 14

Algbre relationnelle

A
a
b

A
a
a
a
b
d
b
B
b
c

B
b
b
c
c
a
c

C
c
a
b
c
c
a

D
d
d
a
d
d
d
C
c
a

D
d
d

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.

AlgebreRelationnelle_support.docx

16/10/2012

Page 15

Algbre relationnelle

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)

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

D
g
a

T = JOIN (R, S, R.B = S.A)

AlgebreRelationnelle_support.docx

16/10/2012

Page 16

Algbre relationnelle

R X S R.A
a
a
d
d
c
c

R.B
b
b
a
a
b
b

R.C
c
c
f
f
d
d

S.A
b
d
b
d
b
d

R.A
a
c

R.B
b
b

R.C
c
d

S.D
g
a
g
a
g
a

S.A
b
b

Q
R.B = S.A

S.D
g
g

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

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

D
g
a

T = NATURAL JOIN (R, S)

AlgebreRelationnelle_support.docx

16/10/2012

Page 17

Algbre relationnelle

R X S R.A
a
a
d
d
c
c
T

A
d

R.B
b
b
a
a
b
b

R.C
c
c
f
f
d
d

S.A
b
d
b
d
b
d

S.D
g
a
g
a
g
a

B
a

C
f

S.A
d

D
a

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.

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

D
g
a

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
AlgebreRelationnelle_support.docx

16/10/2012

Page 18

Algbre relationnelle

R X S R.A
a
a
d
d
c
c

R.A
a
d
c

R.B
b
b
a
a
b
b

R.C
c
c
f
f
d
d

R.B
b
a
b

R.C S.A S.D


c null null
f
d
a
d null null

S.A
b
d
b
d
b
d

S.D
g
a
g
a
g
a

Q
R.A = S.A

Tuple joint

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 .

AlgebreRelationnelle_support.docx

16/10/2012

Page 19

Algbre relationnelle

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

10

15

BparC

MoitieC

2*10

10/2

3*15

15/2

5*5

5/2

BparC

MoitieC

20

45

7,5

25

2,5

AlgebreRelationnelle_support.docx

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

16/10/2012

BparC=B*C,

Page 20

Algbre relationnelle

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 xi choisis avec leurs occurrences dans la
relation
Notation :

Countx1,,xn

T = compte x1, , xn ( R )
ou

T = COMPTE (R , x1,,xn)

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.

A
a
d
c

B
b
a
b

C
c
f
d

CompteR
3

B
b
a

CompteR
2
1

AlgebreRelationnelle_support.docx

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

16/10/2012

Page 21

Algbre relationnelle

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 x1, xn.
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 x1,,xn ( R, Y)
ou
T = SOMME (R, Y , x1,...,xn)
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.

A
a
d
c

B
b
a
b

C
10
15
5

SommeC
30

B
b
a

SommeC
15
15

AlgebreRelationnelle_support.docx

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

16/10/2012

Page 22

Algbre relationnelle

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, x1 [croissant | decroissant], ,xn[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 )

AlgebreRelationnelle_support.docx

16/10/2012

Page 23

Algbre relationnelle
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.

AlgebreRelationnelle_support.docx

16/10/2012

Page 24

Algbre relationnelle

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

AlgebreRelationnelle_support.docx

16/10/2012

Page 25

Algbre relationnelle
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)

AlgebreRelationnelle_support.docx

16/10/2012

Page 26

Algbre relationnelle

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

AlgebreRelationnelle_support.docx

16/10/2012

Page 27

Vous aimerez peut-être aussi