Vous êtes sur la page 1sur 11

S.

Laporte

LMS

CHAP7 : LALGEBRE RELATIONNELLE


I.

Introduc tion
A. Quest ce que lalgbre relationnelle ?

En DAIGL, vous apprenez modliser vos donnes sous forme de MCD. Le MCD sert ensuite tre traduit
dans un modle de donne utilisable par un SGBD, appel modle logique . Lorsque le SGBD choisi est de
type relationnel, le MCD doit tre traduit en modle relationnel afin dimplanter la base correspondante
dans le SGBDR.
Dans une base de donne relationnelle, les donnes sont enregistres dans des tableaux 2
dimensions, appels relations ou tables. La premire dimension est reprsente par les lignes et la
deuxime dimension par les colonnes. La manipulation de ces donnes est base sur la thorie mathmatique
des ensembles. Vous allez tudier le modle relationnel en dtail en cours de DAIGL.
Mais reprsenter et implanter les donnes est une chose : il faut aussi savoir interroger les tables car la
mmorisation de donnes n'a de sens que si l'on peut extraire certaines informations .
Lalgbre relationnelle est la base thorique sur laquelle la construction des langages dinterrogation de
base de donnes relationnelles sest construite. Il existe plusieurs langages mais aujourdhui le plus utilis
est SQL. Sous certains SGBDR grand public comme Access, les utilisateurs dbutants utilisent aussi QBE
(query by exemple), qui est un langage de requte visuel, bas sur lalgbre relationnelle .
Pour mieux comprendre SQL et pour mieux construire des requtes SQL, il est ncessaire dtudier lalgbre
relationnelle. Il en est de mme pour une utilisation intelligente de QBE.
Lalgbre relationnelle permet donc de manipuler les donnes des tables dune base de donnes laide de
requtes (query en anglais). Elle prpare la conception de requtes qui seront traduite en SQL.

B. Notion de modle relationnel

Partant d'un Modle conceptuel de donnes par exemple :

VIN
nvin
cru
millsim
degr

BUVEUR
0,N

BOIRE
quantit bue

0,N

matricule
nom
adresse

En appliquant des rgles de passages (vues en DAIGL) on aboutit un modle relationnel dont on
reprsente la structure ainsi (en intention):

VIN (nvin, cru, millsim, degr)

Une Relation

BUVEUR (matricule, nom, adresse)


BOIRE (nvin, matricule, quantit bue)

Le modle relationnel correspondant au MCD

S. Laporte

Algbre relationnel

LMS

Une cl
On fait une reprsentation tabulaire (ou en extension) de ce Modle logique de donnes :

Nom de la relation

Colonne ou attribut

VIN
Nvin

Cru
Chablis
Bordeaux
Beaujolais
JP Chenet

v1
v2
v3
v4

Millsim
1976
1997
1998
1998

Degr
13
12
12,5
12

Ligne ou n-uplet

BOIRE
MATRICULE

Nvin

DUP71
DUP71
GRA72
GRA72
GRA72
VAI73
VAI73

v1
v3
v3
v2
v4
v4
v2

BUVEUR
MATRICULE
DUP71
GRA72
VAI73

DUPONT
GRAVIER
VAILLANT

Quantit bue
1
2
2
2
1
3
2

Nom

Adresse
10, rue des Prs - MACON
2, avenue J. MOULIN - LYON
1, rue d'Ulm - PARIS

Vocabulaire utile :
Degr : nombre d'attributs (de colonnes) d'une table.
Cardinalit : nombre de lignes (enregistrements) dune table
Quels sont le degr et la cardinalit de la table BOIRE dcrite ci-dessus ?
BOIRE : degr 3, cardinalit 7

C. Les oprations de lalgbre relationnelle


Lalgbre relationnelle possde 8 oprateurs :
Certains oprateurs sont ensemblistes (communs avec la thorie des ensembles), dautres sont
relationnels (spcifiques lalgbre relationnelle , en gras ci-dessous).
On peut aussi cla sser les oprateurs selon quils sappliquent une ou plusieurs relations (tables).

Oprations un seul oprande


o Slection
(oprateur relationnel)
o Projection
(oprateur relationnel)
Oprations deux oprandes
o Produit cartsien (oprateurs ensemblistes)
o Jointure
(oprateur relationnel)
2

S. Laporte

Algbre relationnel

LMS

o Union
(oprateurs ensemblistes)
o Intersection
(oprateurs ensemblistes)
o Diffrence
(oprateurs ensemblistes)
o Division
(oprateur relationnel)
L'algbre relationnelle , c'est un langage dinterrogation des bases de donnes relationnelles
On utilise le lalgbre relationnelle
(un langage qui permet dexprimer
des requtes)

On formule une requte


(une interrogation pour extraire
des donnes)
Applique sur

Une ou plusieurs relations (tables)


donne
Une relation (table) rsultante
Parfois, pour parvenir extraire les donnes voulues, il faut effectuer plusieurs oprations. Dans ce cas, le
rsultat de la premire opration est utilis dans la deuxime opration, et le rsultat de la deuxime opration
peut tre utilis dans la troisime opration,
Nous verrons tout dabord les oprateurs ensemblistes, avant dtudier les oprateurs spcifiquement
relationnels puis quelques oprateurs de calcul.

II.

Le s op rate urs e nse mbliste s


A.

Rappels mathmatiques

Les oprateurs ensemblistes sont les mmes quen mathmatiques, dans la thorie des ensembles.
Soient deux ensembles A et B (en gras) contenant respectivement 5 et 3 lments.
Pour les 3 cas prsents, voil les cardinalits (nombre dlments) de l'ensemble R.
A

x
x

x
x

B
x
x

Intersection
R=A B
Union
R=A B
Diffrence
R=A - B
Diffrence

3
3

S. Laporte

Algbre relationnel

LMS

R=B - A
R = A B card(A) + card(B) - card(A B)
R = A - B card(A) - card(A B)
R = B - A card(B) - card(A B)
Attention : les oprateurs ensemblistes se font uniquement sur des relations ayant la mme description,
cad
1) mme nombre d'attributs,
2) les attributs ont le mme domaine : mme nature des valeurs (longueur et
type de donnes).

B.

Union (sur des relations qui ont la mme description)

Lunion de deux tables est l'ensemble des occurrences qui appartiennent soit la premire table,
soit la deuxime, soit aux deux tables. Cest la traduction du OU logique.
Formalisme :
R = R1 U R2 ou

BUVEUR
MatriculeB
DUP71
GRA72
VAI73
PROPRIETAIRE
MatriculeP
GRA71
HUB72
JOU73

R = UNION (R1 , R2)

NomB

AdresseB
10, rue des Prs - MACON
2, avenue J. MOULIN - LYON
1, rue d'Ulm - PARIS

NomP

AdresseP
2, avenue J. MOULIN - LYON
12, rue Gambetta - PARIS
84, avenue Martin - SENS

DUPONT
GRAVIER
VAILLANT

GRAVIER
HUBERT
LOUVET

Ex : Donnez la liste des personnes qui sont soit buveurs soit propritaires de vin.
R3
Matricule
DUP71
GRA72
HUB72
LOU73
VAI73

Nom
DUPONT
GRAVIER
HUBERT
LOUVET
VAILLANT

Adresse
10, rue des Prs - MACON
2, avenue J. MOULIN - LYON
12, rue Gambetta - PARIS
84, avenue Martin - SENS
1, rue d'Ulm - PARIS

Remarque : limination des doublons.


Opration :
R1 = BUVEUR
R2 = PROPRIETAIRE
R3 = R1 R2 ou R3 = UNION (R1, R2)
4

S. Laporte

Algbre relationnel

C.

LMS

Intersection (sur des relations qui ont la mme description)

L'intersection de 2 relations est l'ensemble des occurences qui sont prsentes dans les
deux relations . Cest la traduction du ET logique.
Formalisme :
R3 = R1 R2 ou R3 = INTERSECTION (R1, R2)
Ex : Donnez la liste des personnes qui sont la fois buveurs et propritaires de vin.
R3
Matricule
GRA72

Nom
GRAVIER

Adresse
2, avenue J. MOULIN - LYON

Opration :
R1 = BUVEUR
R2 = PROPRIETAIRE
R3 = R1 R2 ou R3 = INTERSECTION (R1, R2)

D.

Diffrence (sur des relations qui ont la mme description)

La diffrence entre deux table est l'ensemble des occurences qui appartiennent une
table sans appartenir la seconde . Attention, cette opration a un sens.
Formalisme:
R = R1 - R2 ou R = DIFFERENCE (R1, R2)

G attention au sens

Ex : Donnez la liste des personnes qui sont buveurs mais non-propritaires de vin.
R3
Matricule
Nom
Adresse
DUP71
DUPONT
10, rue des Prs - MACON
VAI73
VAILLANT
1, rue d'Ulm - PARIS
Remarque : partant d'une relation R1, on ne garde que les lignes qui ne sont pas dans la relation R2.
Opration :
R1 = BUVEUR
R2 = PROPRIETAIRE
R3 = R1 - R2 ou R3 = DIFFERENCE (R1, R2)

G attention au sens

Ex 2 : Donnez la liste des personnes qui sont propritaires mais non-buveurs de vin.
R3
Matricule
HUB72
LOU73

Nom
HUBERT
LOUVET

Adresse
12, rue Gambetta - PARIS
84, avenue Martin - SENS

S. Laporte

Algbre relationnel

LMS

Opration:
R1 = BUVEUR
R2 = PROPRIETAIRE
R3 = R2 R1 ou R3 = DIFFERENCE (R2, R1)

E.

G attention au sens

Produit cartsien

Le produit cartsien de 2 tables consiste combiner toutes les possibilits dassociations


doccurrences des 2 tables. Chaque ligne de R1 sera concatne chaque ligne de R2
Formalisme :
R = R1 * R2

ou R = PRODUIT (R1, R2)

BUVEUR
Matricule

Nom

DUP71
GRA72
VAI73

Adresse
10, rue des Prs - MACON
2, avenue J. MOULIN - LYON
1, rue d'Ulm - PARIS

DUPONT
GRAVIER
VAILLANT

Ex : En supposant que tous les buveurs ont bu un peu de chaque vin, donnez la liste des vins et
leurs buveurs (les nvin, cru, millsim, degr des vins et les matricule, nom et adresse des
buveurs).
R3
Nvin

Cru

Millsim

Degr

Matricule

Nom

v1
v1

Chablis
Chablis

1976
1976

13
13

DUP71
GRA72

DUPONT
GRAVIER

v1
v2
v2

Chablis
Bordeaux
Bordeaux

1976
1997
1997

13
12
12

VAI73
DUP71
GRA72

VAILLANT
DUPONT
GRAVIER

v2
v3
v3

Bordeaux
Beaujolais
Beaujolais

1997
1998
1998

12
12,5
12,5

VAI73
DUP71
GRA72

VAILLANT
DUPONT
GRAVIER

v3
v4
v4

Beaujolais
JP Chenet
JP Chenet

1998
1998
1998

12,5
12
12

VAI73
DUP71
GRA72

VAILLANT
DUPONT
GRAVIER

Adresse
10, rue des Prs - MACON
2, avenue J. MOULIN LYON
1, rue d'Ulm - PARIS
10, rue des Prs - MACON
2, avenue J. MOULIN LYON
1, rue d'Ulm - PARIS
10, rue des Prs - MACON
2, avenue J. MOULIN LYON
1, rue d'Ulm - PARIS
10, rue des Prs - MACON
2, avenue J. MOULIN LYON
1, rue d'Ulm - PARIS

v4
JP Chenet 1998
12
VAI73
VAILLANT
Remarque : On multiplie chaque ligne de la relation R1 par le nombre de lignes de la relation R2.
Opration :
R1 = VIN
R2 = BUVEUR

S. Laporte

Algbre relationnel

LMS

R3 = R1 * R2 ou R3 = PRODUIT (R1, R2)

III. Le s op rate urs re lationne ls


A. Projection
La projection d'une relation consiste en la mise en place d'une nouvelle relation en ne retenant
que certaines colonnes(attributs) et en supprimant les occurrences en double.

Formalisme :
R2 = PROJECTION (R1, colonne 1, colonne 2, )
R2 est la table rsultat, R1 est la table utilise par la projection
Ex :
Nvin
v1
v2
v3
v4

Cru
Chablis
Bordeaux
Beaujolais
JP Chenet

Millsim
1976
1997
1998
1998

Degr
13
12
12,5
12

Donnez la liste du nom des crus.


R2
Cru
Chablis
Bordeaux
Beaujolais
JP Chenet
Opration :
R1 = VIN
R2 = PROJECTION (R1, cru)

B.

Slection

La slection consiste extraire dune relation les occurrences (lignes) satisfaisant


au(x) critre(s) de slection.
Formalisme :
R2 = SELECTION (R1, critre(s) )
Critres de slection :
7

S. Laporte

Algbre relationnel

LMS

- oprateurs de comparaison : <, <=, =, >, >=, ? (entre un champ et une valeur)
- oprateurs logiques :

ET, OU (entre deux comparaison)


NON (pour renverser la comparaison)

Si la valeur est de type alphanumrique mettre des simples ctes pour les valeurs
Ex :Donnez la liste des vins (nvin, cru) qui ont un degr suprieur 12.
R3
Nvin
Cru
v1
Chablis
v3
Beaujolais
Oprations
R1 = VIN
R2 = SELECTION (R1, R1.degr > 12)
R3 = PROJECTION (R1, nvin, cru)

C.

Jointure

La jointure consiste crer une nouvelle table partir de deux tables ayant un champ commun (attribut) et
vrifiant un critre de jointure.
Formalisme :
R3 = JOINTURE R1, R2 (R1.attr._jointure op._ comparaison R2.attr_ jointure)
Ex : Donnez les noms, adresses des buveurs qui boivent le vin v3.
1) On slectionne les matricules qui ont bu le vin v3
R1 = SELECTION ( BOIRE, R1.nvin = v3)

BOIRE
MATRICULE
DUP71
GRA72

Nvin
v3
v3

Quantit bue
2
2

2) On va rechercher les adresses de ces buveurs par l'opration produit cartsien + slection des lignes qui
ont un numro de matricule de la relation R2 identique celui de la relation BUVEUR. Matricule de la
relation R2 et BUVEUR sont appels attributs de jointure (attributs qui relient les deux relations).
R2 = JOINTURE R1, BUVEUR (R1.Matricule = BUVEUR.Matricule)
8

S. Laporte

R3
Matricule
DUP71
DUP71
DUP71
GRA72
GRA72
GRA72

Algbre relationnel

Nvin
v3
v3
v3
v3
v3
v3

Qt bue
2
2
2
2
2
2

Matricule
DUP71
GRA72
VAI73
DUP71
GRA72
VAI73

Nom
DUPONT
GRAVIER
VAILLANT
DUPONT
GRAVIER
VAILLANT

LMS

Adresse
10, rue des Prs - MACON
2, avenue J. MOULIN - LYON
1, rue d'Ulm - PARIS
10, rue des Prs - MACON
2, avenue J. MOULIN - LYON
1, rue d'Ulm - PARIS

rsultat

Remarque :
Une jointure est un produit cartsien suivi d'une slection. L'attribut de jointure doit correspondre un
attribut de la relation R1 et un attribut de la relation R2 qui ont le mme domaine.

D.

Division

La division permet de trouver les occurrences dune table qui sont associes toutes les
occurrences dune autre table (qui le plus souvent est le rsultat dune slection).
Formalisme :
R = DIVISION (dividende, diviseur) ou R = dividende/ diviseur

attention au sens

Donner la liste des buveurs qui boivent les vins v2 et v4.


1) On slectionne les vins v2 et v4 dans la relation VIN
R1 = SELECTION (VIN, nvin = v2 ou nvin = v4)
Nvin
v2
v4

Cru
Bordeaux
JP Chenet

Millsim
1997
1998

Degr
12
12

2) On ne garde que la colonne nvin (pas besoin des autres) c'est le diviseur de la division.
R2 = PROJECTION (R1, nvin)
R2
Nvin
v2
v4
3) On garde, dans la relation BOIRE, que les colonnes Matricule et nvin (ensemble des consommateurs
de vin) c'est le dividende de la division.
R3 = PROJECTION (R2, Matricule, nvin)

S. Laporte

Algbre relationnel

LMS

R3
MATRICULE

Nvin

DUP71
DUP71
GRA72
GRA72
GRA72
VAI73
VAI73

v1
v3
v3
v2
v4
v4
v2

4) On ne garde que les consommateurs de vin v2 et v4 c'est le quotient de la division


R4 = DIVISION (R3, R2)
R4
MATRICULE
GRA72
VAI73

Remarque : Une division est le quotient d'une relation dite


dividende sur une autre relation dite diviseur.

IV. Le s op rate urs de c alc ul (ou agr gats)


A.

Le compte

Il permet de dnombrer les lignes dune relation qui ont une mme valeur dattribut. La relation rsultante
ne contient que lattribut et le compte.
Formalisme :
R2 = COMPTE (R1, nomattribut)
Donner le nombre de vins consomms par buveurs.
R1 : COMPTE ( BOIRE, matricule)
matricule
COMPTE
DUP71
2
GRA72
3
VAI73
2

B.

Le cumul

Il permet de faire la somme des valeurs dun attribut A1 des lignes qui ont la mme valeur dattribut A2. La
relation rsultante ne contient que lattribut A2 et le cumul de lattribut A1.
Formalisme :
R2 = CUMUL (R1, attributA, attributB)
On fait la somme de lattribut B selon les valeurs de lattribut

Donner la somme des quantits bues par buveurs.


R1 : CUMUL ( BOIRE, matricule, quantit bue)
matricule
CUMUL
10

S. Laporte

Algbre relationnel

DUP71
GRA72
VAI73

LMS

3
5
5

Remarque : Certains auteurs accepent dautres oprateurs de calcul tels que maximum.

V. Conc lusion
Lalgbre relationnelle est un langage de requtes dinterrogation des donnes. Cest un langage
thorique comme lalgorithmique : il ne peut pas tre compris directement par les SGBDR. Il faut le
traduire dans un langage support par le SGBD tel que SQL (le langage standard pour tous les SGBDR)
ou QBE sur Access.
On peut donc dire en quelque sorte que lalgbre relationnelle est au SQL (partie interrogation), ce que
lalgorithmique est la programmation.
Limites de l'algbre relationnelle (en dehors du fait quil est thorique): il n'est pas possible de faire des tris
sur les relations et il nexiste que peu doprateurs de calcul.

11

Vous aimerez peut-être aussi