Chapitre II
L’algèbre relationnelle
F. BARIKA KTATA 1
1. Introduction
• Le modèle relationnel repose sur l’algèbre
relationnelle.
• Le modèle relationnel dispose d’un ensemble
d’opérateurs ensemblistes, dont l’application
à des tables constitue l’algèbre relationnelle
• A. R. : Langage de manipulation de données
relationnelles
• Les requêtes SQL sont la traduction de l’algèbre
relationnelle.
F. BARIKA KTATA 2
1. Introduction
A.R. : Langage de manipulation de données
relationnelles
A.R. : huit opérateurs s'appliquant à une ou deux
relations et donnant une relation comme résultat
- Union, intersection, différence
- Restriction (ou sélection)
- Projection
- Produit cartésien
- Jointure
F. BARIKA KTATA 3
2. Les opérateurs
Opérateur d'union
Définition
L'union de deux relations R et S de même schéma est une
relation T de même schéma contenant l'ensemble des tuples
de R et S.
• Toutes ces opérations prennent comme entrées deux relations
qui doivent être compatible vis-à-vis de l’union:
– même nombre de colonnes.
– colonnes correspondantes ont le même type.
• Notation : R U S ou union (R, S) T
• Représentation graphique :
R S
F. BARIKA KTATA 4
2. Les opérateurs
Opérateur d'union
R A B C
a d 1
b e 2
c f 3
T A B C
a d 1
s e 4
c d 3
Union (R,T) A B C
a d 1
b e 2
c f 3
s e 4
c d 3
F. BARIKA KTATA 5
2. Les opérateurs
Opérateur d'intersection
Définition
L'intersection de deux relations R et S de
même schéma est une relation T de même
schéma contenant l'ensemble des tuples
appartenant simultanément à R et à S.
T
• Notation : R I S ou inter (R,S)
• Représentation graphique :
R S
F. BARIKA KTATA 6
2. Les opérateurs
Opérateur d'intersection
R A B C
a d 1
b e 2
c f 3
T A B C
a d 1
s e 4
c d 3
Inter (R,T) A B C
a d 1
F. BARIKA KTATA 7
2. Les opérateurs
Opérateur de différence
Définition
La différence de deux relations R et S de
même schéma est une relation T de même
schéma contenant l'ensemble des tuples
appartenant à R et n'appartenant pas à S.
T
• Notation : R – S ou minus (R, S)
-
• Représentation graphique : R S
F. BARIKA KTATA 8
2. Les opérateurs
Opérateur de différence
R A B C
a d 1
b e 2
c f 3
T A B C
a d 1
s e 4
c d 3
R- T A B C
b e 2
c f 3
F. BARIKA KTATA 9
2. Les opérateurs
Opérateur de projection
Définition
La projection d'une relation R de schéma R(A1, A2,...,An)
sur les attributs {Ai1, Ai2, ... , Aip} est une relation R' de
schéma R' (Ai1, Ai2, ..., Aip) dont les tuples sont obtenus
par élimination des attributs de R n'appartenant pas à
R' et par suppression des tuples en double.
• Notation : p Ai1, Ai2, …, Aip (R) ou proj Ai1, Ai2, …, Aip (R)
T
• Représentation graphique :
Ai1, Ai2, …Aip
R
F. BARIKA KTATA 10
2. Les opérateurs
Opérateur de projection
R A B C
a d 1
b e 2
c f 3
proj A,B(R) A B proj A (R) A
a d a
b e b
c f c
F. BARIKA KTATA 11
2. Les opérateurs
Opérateur de restriction
Définition
• La restriction (ou sélection) d’une relation R par une
qualification Q est une relation R’
• de même schéma dont les tuples sont ceux de R qui
satisfont à la qualification.
• Q peut s’exprimer à l’aide de constante, d’attributs, de
comparateurs (>, >=, <, <=,=, <>) et d’opérateurs logiques
( , , )
T
• Notation : s Q ( R ) ou select Q (R)
Q
• Représentation graphique :
F. BARIKA KTATA 12
2. Les opérateurs
Opérateur de restriction
R A B C
a d 1
b e 2
c f 3
Select C < 4 et A <> ‘a’ ( R ) A B C
b e 2
c f 3
F. BARIKA KTATA 13
2. Les opérateurs
Opérateur de produit cartésien
Définition
Le produit cartésien de deux relations R et S (de schémas
quelconques) est une relation T ayant pour attributs la
concaténation de ceux de R et de S et dont les tuples sont
toutes les concaténations d'un tuple de R à un tuple de S.
• Notation : R x S ou product(R,S) T
• Représentation graphique : x
R S
F. BARIKA KTATA 14
2. Les opérateurs
Opérateur de produit cartésien
R A B C S D E
a d 1 a d
b e 2 b e
c f 3
RxS A B C D E
a d 1 a d
a d 1 b e
b e 2 a d
b e 2 b e
c f 3 a d
c f 3 b e
F. BARIKA KTATA 15
2. Les opérateurs
Opérateur de jointure
Définition
La jointure (q) de deux relations R et S selon une
condition C est l'ensemble des tuples du produit
cartésien R X S satisfaisant la condition C.
T
Notation
T = JOIN (R, S/C) C
Ou: R C S R S
JOIN(R, S/C) = RESTRICT (PRODUCT (R,S)/C)
F. BARIKA KTATA 16
2. Les opérateurs
Opérateur de jointure
R A B C S D E
a d b f d
b e g b e
c f c
R B<D et A != C S A B C D E
a d b f d
b e g f d
F. BARIKA KTATA 17
2. Les opérateurs
Opérateur de jointure
L’équi-jointure
L’équi-jointure de deux relations R et S est une q jointure avec pour qualification
Q l’égalité entre deux colonnes, c’est-à-dire R Ai = Bj S avec Ai et Bj, deux
attributs de R et de S respectivement
R A B C
S D E
a d d d f
b e g b e
c f c
R B= D S A B C D E
a d d d f
F. BARIKA KTATA 18
2. Les opérateurs
Opérateur de jointure
La jointure naturelle
La jointure naturelle de deux relations R et S est une équi-jointure sur tous les
attributs de même nom dans R et dans S, suivie de la projection qui permet de ne
conserver qu’un seul des cas attributs égaux de même nom.
Notation : R S ou joint (R,S)
Représentation graphique :
R S
F. BARIKA KTATA 19
2. Les opérateurs
Opérateur de jointure
La jointure naturelle
R A B C S A B D
a d s a d d
b e g a d g
c f c c f c
R S A B C D
a d s d
a d s g
c f c c
F. BARIKA KTATA 20
2. Les opérateurs
Exemples de requêtes algébriques
Soit la base de données :
pièce (nop, nomp, prix)
fournisseur (nof,nomf,ville)
vente (nop,nof )
Exemple de question : Trouver les numéro des fournisseurs
vendant le produit boulon.
Requête algébrique :
PROJECT ( JOIN (vente , RESTRICT (pièce / nomp = 'boulon'))
/ {nof})
F. BARIKA KTATA 21
2. Les opérateurs
Exemples de requêtes algébriques
Une base de données relationnelle
fournisseur
nof nomf ville vente
1 Girard Lyon nop Nof
2 Blanc Paris 1 1
3 Merlin Nancy 1 2
pièce 2 2
nop nomp prix 2 3
1 vis 1.5 3 1
2 écrou 2 3 2
3 boulon 2.5 3 3
F. BARIKA KTATA 22
2. Les opérateurs
Exemples de requêtes algébriques
Base de données VPC (Vente par Correspondance)
Client (numCli, nom, prénom, rue, CP, ville)
Produit (numProd, libellé, pu)
Commande (numCli, numProd, date, quantité)
Exemple de question : Trouver les produits commandés en quantité
supérieure à 100 et dont le prix dépasse 1000 dinars . On affichera les
numéros de produit, leur libellé et leur prix unitaire ainsi que la date
de la commande.
Notons Res la relation résultat et R1, R2, R3 des relations
intermédiaires
F. BARIKA KTATA 23
2. Les opérateurs
Exemples de requêtes algébriques Res
R1 = RESTRICT(Produit/ pu >1000) numProd,libellé,pu,date
R2 = RESTRICT (Commande/qté > 100)
R3
R3 = JOIN(R1,R2)
Res = PROJECT (R3/{numProd,libellé,pu,date})
R1 R2
pu > 1000 qté > 100
Produit Commande
F. BARIKA KTATA 24
Exercice
• Table EQUIPES
N°Equipe NomEquipe Ville Entraineur
1 Les Nains Lyon BlancheNeige
2 Les Peintres Villeurbanne Kandinski
3 Les Poètes Paris Hugo
• Table A-joué
• Table JOUEURS
N°Joueur N°Equipe NomJoueur PrénomJoueur
N°Joueur
1
1
N°Match
1
2
NbPointsMarqué
s 20
10
NbFautes
3
5
1 1 Prof Jean 1 3 15 3
2 1 Simplet Eric 1 5 30 2
3 1 Grincheux Guy 2 1 10 2
4 1 Timide Jean 2 2 12 4
5 1 Dormeur Paul 2 3 18 3
6 2 Cantona Eric 2 5 20 1
7 2 Picasso Pablo 3 1 14 2
8 2 Dali Salvador 3 2 15 3
9 2 Manet Edouard 3 3 16 4
10 2 Matisse Henri 3 5 17 2
11 3 Verlaine Paul
12 3 Rimbaud Arthur
13 3 Villon François
14 3 Musset Alfred de
15 3 Vigny Alfred de
16 3 Cantona Joël
• Table MATCHS
N°Match N°Locaux N°Visiteur Date NbSpectateurs NbPtsLocaux NbPtsVisiteurs
1 1 2 01/02/1996 5000 89 95
2 1 3 08/02/1996 10000 56 84
3 2 1 15/02/1996 15000 78 99
4 2 3 22/02/1996 9000 92 76
5 3 1 29/02/1996 21000 101 86
6 3 2 07/03/1996 12000 75 87
F. BARIKA KTATA 25