S. Laporte LMS
C
CH
HA
AP
P7
7
:
:
L
L
A
AL
LG
GE
EB
BR
RE
E
R
RE
EL
LA
AT
TI
IO
ON
NN
NE
EL
LL
LE
E
I
I.
.
I
In
nt
tr
ro
od
du
uc
ct
ti
io
on
n
A. Qu’est ce que l’algèbre relationnelle ?
En DAIGL, vous apprenez à modéliser vos données sous forme de MCD. Le MCD sert ensuite à être traduit
dans un modèle de donnée utilisable par un SGBD, appelé modèle logique. Lorsque le SGBD choisi est de
type relationnel, le MCD doit être traduit en modèle relationnel afin d’implanter la base correspondante
dans le SGBDR.
Dans une base de donnée relationnelle, les données sont enregistrées dans des tableaux à 2
dimensions, appelés relations ou tables. La première dimension est représentée par les lignes et la
deuxième dimension par les colonnes. La manipulation de ces données est basée sur la théorie mathématique
des ensembles. Vous allez étudier le modèle relationnel en détail en cours de DAIGL.
Mais représenter et implanter les données est une chose : il faut aussi savoir interroger les tables car la
mémorisation de données n'a de sens que si l'on peut extraire certaines informations.
L’algèbre relationnelle est la base théorique sur laquelle la construction des langages d’interrogation de
base de données relationnelles s’est construite. Il existe plusieurs langages mais aujourd’hui le plus utilisé
est SQL. Sous certains SGBDR grand public comme Access, les utilisateurs débutants utilisent aussi QBE
(query by exemple), qui est un langage de requête visuel, basé sur l’algèbre relationnelle.
Pour mieux comprendre SQL et pour mieux construire des requêtes SQL, il est nécessaire d’étudier l’algèbre
relationnelle. Il en est de même pour une utilisation intelligente de QBE.
L’algèbre relationnelle permet donc de manipuler les données des tables d’une base de données à l’aide de
requêtes (query en anglais). Elle prépare la conception de requêtes qui seront traduite en SQL.
B. Notion de modèle relationnel
Partant d'un Modèle conceptuel de données par exemple:
En appliquant des règles de passages (vues en DAIGL) on aboutit à un modèle relationnel dont on
représente la structure ainsi (en intention):
Une Relation
BUVEUR (matricule, nom, adresse)
BOIRE (n°vin, matricule, quantité bue) Le modèle relationnel correspondant au MCD
VIN (n°vin, cru, millésimé, degré)
BOIRE
VIN
BUVEUR
n°vin
cru
millésimé
degré
matricule
nom
adresse
quantité bue
0,N
0,N
S. Laporte Algèbre relationnel LMS
2
Une clé
On fait une représentation tabulaire (ou en extension) de ce Modèle logique de données :
Nom de la relation Colonne ou attribut
VIN
N°vin Cru Millésimé Degré
v1 Chablis 1976 13
v2 Bordeaux 1997 12
v3 Beaujolais 1998 12,5
v4 JP Chenet 1998 12
BOIRE
MATRICULE N°vin Quantité bue
DUP71 v1 1
DUP71 v3 2
GRA72 v3 2
GRA72 v2 2
GRA72 v4 1
VAI73 v4 3
VAI73 v2 2
BUVEUR
MATRICULE Nom Adresse
DUP71 DUPONT 10, rue des Près - MACON
GRA72 GRAVIER 2, avenue J. MOULIN - LYON
VAI73 VAILLANT 1, rue d'Ulm - PARIS
Vocabulaire utile :
Degré : nombre d'attributs (de colonnes) d'une table.
Cardinalité : nombre de lignes (enregistrements) d’une table
Quels sont le degré et la cardinalité de la table BOIRE décrite ci-dessus ?
BOIRE : degré 3, cardinalité 7
C. Les opérations de l’algèbre relationnelle
L’algèbre relationnelle possède 8 opérateurs :
Certains opérateurs sont ensemblistes (communs avec la théorie des ensembles), d’autres sont
relationnels (spécifiques à l’algèbre relationnelle, en gras ci-dessous).
On peut aussi classer les opérateurs selon qu’ils s’appliquent à une ou à plusieurs relations (tables).
Opérations à un seul opérande
o Sélection (opérateur relationnel)
o Projection (opérateur relationnel)
Opérations à deux opérandes
o Produit cartésien (opérateurs ensemblistes)
o Jointure (opérateur relationnel)
Ligne ou n-uplet
S. Laporte Algèbre relationnel LMS
3
o Union (opérateurs ensemblistes)
o Intersection (opérateurs ensemblistes)
o Différence (opérateurs ensemblistes)
o Division (opérateur relationnel)
L'algèbre relationnelle, c'est un langage d’interrogation des bases de données relationnelles
Parfois, pour parvenir à extraire les données voulues, il faut effectuer plusieurs opérations. Dans ce cas, le
résultat de la première opération est utilisé dans la deuxième opération, et le résultat de la deuxième opération
peut être utilisé dans la troisième opération, …
Nous verrons tout d’abord les opérateurs ensemblistes, avant d’étudier les opérateurs spécifiquement
relationnels puis quelques opérateurs de calcul.
I
II
I.
.
L
Le
es
s
o
op
pé
ér
ra
at
te
eu
ur
rs
s
e
en
ns
se
em
mb
bl
li
is
st
te
es
s
A. Rappels mathématiques
Les opérateurs ensemblistes sont les mêmes qu’en mathématiques, dans la théorie des ensembles.
Soient deux ensembles A et B (en gras) contenant respectivement 5 et 3 éléments.
Pour les 3 cas présentés, voilà les cardinalités (nombre d’éléments) de l'ensemble R.
x
x
x
x
x
A
B
x
x
x x
x
x
A
B
A
B
x
x
x
x
x
x
x
x
Intersection
R = A B 3 2 0
Union
R = A B 5 6 8
Différence
R = A - B 2 3 5
Différence 0 1 3
Une ou plusieurs relations (tables)
Une relation (table) résultante
On formule une requête
(une interrogation pour extraire
des données)
On utilise le l’algèbre relationnelle
(un langage qui permet d’exprimer
des requêtes)
Appliquée sur
donne
S. Laporte Algèbre relationnel LMS
4
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 opérateurs ensemblistes se font uniquement sur des relations ayant la même description,
cad 1) même nombre d'attributs,
2) les attributs ont le même domaine : même nature des valeurs (longueur et
type de données).
B. Union (sur des relations qui ont la même description)
L’union de deux tables est l'ensemble des occurrences qui appartiennent soit à la première table,
soit à la deuxième, soit aux deux tables. C’est la traduction du OU logique.
Formalisme :
R = R1 U R2 ou R = UNION (R1 , R2)
BUVEUR
MatriculeB NomB AdresseB
DUP71 DUPONT 10, rue des Près - MACON
GRA72 GRAVIER 2, avenue J. MOULIN - LYON
VAI73 VAILLANT 1, rue d'Ulm - PARIS
PROPRIETAIRE
MatriculeP NomP AdresseP
GRA71 GRAVIER 2, avenue J. MOULIN - LYON
HUB72 HUBERT 12, rue Gambetta - PARIS
JOU73 LOUVET 84, avenue Martin - SENS
Ex : Donnez la liste des personnes qui sont soit buveurs soit propriétaires de vin.
R3 Matricule Nom Adresse
DUP71 DUPONT 10, rue des Près - MACON
GRA72 GRAVIER 2, avenue J. MOULIN - LYON
HUB72 HUBERT 12, rue Gambetta - PARIS
LOU73 LOUVET 84, avenue Martin - SENS
VAI73 VAILLANT 1, rue d'Ulm - PARIS
Remarque : élimination des doublons.
Opération : R1 = BUVEUR
R2 = PROPRIETAIRE
R3 = R1 R2 ou R3 = UNION (R1, R2)
S. Laporte Algèbre relationnel LMS
5
C. Intersection (sur des relations qui ont la même description)
L'intersection de 2 relations est l'ensemble des occurences qui sont présentes dans les
deux relations. C’est 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 propriétaires de vin.
R3 Matricule Nom Adresse
GRA72 GRAVIER 2, avenue J. MOULIN - LYON
Opération : R1 = BUVEUR
R2 = PROPRIETAIRE
R3 = R1 R2 ou R3 = INTERSECTION (R1, R2)
D. Différence (sur des relations qui ont la même description)
La différence entre deux table est l'ensemble des occurences qui appartiennent à une
table sans appartenir à la seconde. Attention, cette opération 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-propriétaires de vin.
R3 Matricule Nom Adresse
DUP71 DUPONT 10, rue des Près - 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.
Opération : 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 propriétaires mais non-buveurs de vin.
R3 Matricule Nom Adresse
HUB72 HUBERT 12, rue Gambetta - PARIS
LOU73 LOUVET 84, avenue Martin - SENS
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !