Académique Documents
Professionnel Documents
Culture Documents
Laporte
LMS
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.
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):
Une Relation
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
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)
II.
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.
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
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
S. Laporte
Algbre relationnel
C.
LMS
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.
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
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
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
B.
Slection
S. Laporte
Algbre relationnel
LMS
- oprateurs de comparaison : <, <=, =, >, >=, ? (entre un champ et une valeur)
- oprateurs logiques :
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
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
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
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