You are on page 1of 58

Dr.

Nour El-Houda BENALIA


Responsable de la matière Informatique -
2ème année
Cycle préparatoire- ENP

Chapitre 03:

L’algèbre relationnelle
Vous allez apprendre:
2

 Manipuler de l’information à l’aide des différentes opérations de


l’algèbre relationnelle.
 Appliquer les opérations de l’algèbre relationnelle aux requêtes
SQL.
 Composer des requêtes SQL simples.
Modèle relationnel
normalisé Composition des Requêtes

Algèbre relationnelle

Requêtes

AR
SQL
3 Introduction
 L'algèbre relationnelle est un concept mathématique de relation de la
théorie des ensembles.

 Constituée d'un ensemble d’opérateurs de base sur les relations,


formellement définis, pouvant être combinés pour construire des
expressions algébriques.

 Les opérations relationnelles permettent de créer une nouvelle


relation (table) à partir d'opérations élémentaires sur d'autres tables.

 Beaucoup utilisés par les SGDBs pour la gestion des bases de


données informatiques comme le SQL, DBase, etc.
4 Introduction
 On peut classifier les opérateurs relationnels en trois catégories :

 Les opérateurs unaires : affectation, sélection et projection. Ce sont les plus


simples, permettent de produire une nouvelle table à partir d’une autre table.

 Les opérateurs binaires ensemblistes travaillant sur des relations de même


schéma : union, intersection, différence. (produire une nouvelle relation à partir
de deux relations de même degré et de même domaine).

 Les opérateurs binaires n-aires travaillant sur des relations de schémas


différents : jointure, produit cartésien, division.

 Remarque: Les notations de l’algèbre relationnelle ne sont pas standardisées.


5 Introduction
 Gestion d'une base d'invitations. Cette base de données décrit les personnes
invitées et les plats qui ont été servis. Elle est composée de trois relations :

REPAS (date, invité)


 donne la liste des invités qui ont été reçus et à quelle date.
MENU (date, plat)
 donne le menu servi à chaque date.
PREFERENCE (personne, plat)
 donne pour chaque personne ses plats préférés.

 N.B: les attributs "personne" et "invité" ont même domaine et les clés sont
soulignées.
6

Les opérateurs
7

1. Les Opérateurs unaires


8
Opérateurs unaires
a) Affectation

 Affectation

R (A1, ..., An) = expression de sélection

L’affectation permet de sauvegarder le résultat d'une expression de


recherche, ou bien de renommer une relation et ses attributs.
9
Opérateurs unaires
b) La Sélection
Sélection(restriction): R[condition-de-sélection]
 Définition : La sélection génère une relation regroupant exclusivement toutes les
occurrences de la relation R qui satisfont l’expression logique E.
Notation : σ(E)R.
 opération unaire essentielle dont la signature est :

Relation x expression logique -> relation

 La sélection permet ainsi de choisir (i.e. sélectionner) certaines lignes dans une table.
Le résultat de la sélection est donc une nouvelle relation qui a les mêmes attributs que
R.

 Si R est vide (c’est-à-dire sans aucune occurrence), la relation qui résulte de la sélection
est vide.
10
Opérateurs unaires
b) La Sélection

 σ(idPersonne≥5) PERSONNE sur la relation PERSONNE où:


 Personne[idPersonne≥5]
11 Opérateurs unaires REPAS (date, invité)
donne la liste des invités qui ont été reçus et à
b) La Sélection quelle date.
MENU (date, plat)
donne le menu servi à chaque date.
PREFERENCE (personne, plat)
donne pour chaque personne ses plats
 Exemple: préférés.

Donner la liste des repas à la date 01/02/20.


Solution en algèbre (sélection et affectation):
 Res = REPAS [date= 01/02/20]
12
Opérateurs unaires
c) La Projection
Définition :
 La projection consiste à supprimer les attributs autres que A1, A2,..,An d’une
relation et à éliminer les n-uplets en double apparaissant dans la nouvelle version

𝚷( A1, A2,..,An)R

 Il s’agit d’une opération unaire essentielle dont la signature est :


relation x liste d’attributs -> relation
 En d’autres termes, la projection permet de choisir des colonnes dans une table.

 Si R est vide, la relation qui résulte de la projection est vide, mais pas forcément
équivalente étant donné qu’elle contient généralement moins d’attributs.
13
Opérateurs unaires
c) La Projection

ou bien PERSONNE[NOM]
14
Opérateurs unaires REPAS (date, invité)
donne la liste des invités qui ont été reçus et à
c) La Projection quelle date.
MENU (date, plat)
donne le menu servi à chaque date.
PREFERENCE (personne, plat)
Exemple: donne pour chaque personne ses plats
préférés.

Donner la liste des invités à la date 01/05/2019.


Solution en algèbre
(sélection, affectation et projection):

 R1 = REPAS [date=01/05/2019]
 RESULTAT = R1 [invité]
15

Les Opérateurs binaires ensemblistes ( de


même schéma ):
Les trois opérateurs ensemblistes opèrent sur des relations R et S
de même schéma SRS.
16
Les opérateurs ensemblistes
a) L’union
Définition:
 l’union est une opération portant sur deux relations R1 et R2 ayant
le même schéma et construisant une troisième relation constituée des
n-uplets appartenant à l’une ou l’autre des deux relations R1 et R2
sans doublon.

Notation : R1 ∪ R2.
 Il s’agit d’une opération binaire ensembliste commutative essentielle
dont la signature est :

Relation X relation -> relation


17 Les opérateurs ensemblistes
a) L’union
 R1 et R2 doivent avoir les mêmes attributs et si une même occurrence
existe dans R1 et R2, elle n’apparaît qu’une seule fois dans le résultat de
l’union.

 Le résultat de l’union est une nouvelle relation qui a les mêmes attributs
que R1 et R2.

 Si R1 et R2 sont vides, la relation qui résulte de l’union est vide.

 Si R1 (respectivement R2) est vide, la relation qui résulte de l’union est


identique à R2 (respectivement R1).
18 Les opérateurs ensemblistes
a) L’union
19 Les opérateurs ensemblistes
a) L’union
 Exemple : Quelles sont les personnes qui ont pour plats préférés ‘frites’ ou ‘pâtes’ ?

REPAS (date, invité)


donne la liste des invités qui ont été reçus et à
Solution en algèbre :
quelle date.
 R1 = PREFERENCE [plat=’frites’] MENU (date, plat)
donne le menu servi à chaque date.
 R2 = R1 [personne] PREFERENCE (personne, plat)
donne pour chaque personne ses plats
 R3 = PREFERENCE [plat=’pâtes’] préférés.

 R4 = R3 [personne]
 RES = R2 U R4

 Ou bien :
 R1 = PREFERENCE [plat=’frites’ ou plat = ‘pâtes’]
 RES = R1 [personne]
20 Les opérateurs ensemblistes
b) L’intersection
Définition :
 L’intersection est une opération portant sur deux relations R1
et R2 ayant le même schéma et construisant une troisième
relation dont les n-uplets sont constitués de ceux appartenant
aux deux relations. Notation : R1 ∩ R2.

 Il s’agit d’une opération binaire ensembliste commutative dont


la signature est :
relation x relation → relation
21 Les opérateurs ensemblistes
b) L’intersection
 R1 et R2 doivent avoir les mêmes attributs.

 Le résultat de l’intersection est une nouvelle relation qui a les


mêmes attributs que R1 et R2.

 Si R1 ou R2 ou les deux sont vides, la relation qui résulte de


l’intersection est vide.
22 Les opérateurs ensemblistes
b) L’intersection
23 Les opérateurs ensemblistes
b) L’intersection
 Exemple : Quelles sont les personnes qui ont pour plats
préférés ‘frites’ et ‘pâtes’ ? REPAS (date, invité)
donne la liste des invités qui ont été reçus et à
quelle date.
MENU (date, plat)
Solution en algèbre : donne le menu servi à chaque date.
PREFERENCE (personne, plat)
 R1 = PREFERENCE [plat=’frites’] donne pour chaque personne ses plats
préférés.
 R2 = R1 [personne]
 R3 = PREFERENCE [plat=’pâtes’]
 R4 = R3 [personne]
 RES = R2 ∩ R4
24 Les opérateurs ensemblistes
c) La Différence
Définition :
 La différence est une opération portant sur deux relations R1 et R2
ayant le même schéma et construisant une troisième relation dont
les n-uplets sont constitués de ceux ne se trouvant que dans la
relation R1.

Notation : R1 - R2.

 Il s’agit d’une opération binaire ensembliste non commutative


essentielle dont la signature est :
relation x relation → relation
25 Les opérateurs ensemblistes
c) La Différence
 R1 et R2 doivent avoir les mêmes attributs.

 Le résultat de la différence est une nouvelle relation qui a les


mêmes attributs que R1 et R2.

 Si R1 est vide, la relation qui résulte de la différence est vide


aussi.

 Si R2 est vide, la relation qui résulte de la différence est


identique à R1.
26 Les opérateurs ensemblistes
c) La Différence
27 Les opérateurs ensemblistes
c) La Différence
 Exemple : Quelles sont les personnes qui n'ont jamais été
invitées ?

Solution en algèbre : L’algèbre relationnelle


REPAS (date, invité)
donne la liste des invités qui ont été reçus et à
 R1 = PREFERENCE [personne] quelle date.
MENU (date, plat)
donne le menu servi à chaque date.
 R2 = REPAS [invité] PREFERENCE (personne, plat)
donne pour chaque personne ses plats
 RESUL= R1 – R2 préférés.
28

c) Opérateurs binaires de schémas différents


29
Opérateurs binaires de schémas
différents
a) Le Produit cartésien
Définition :
 Le produit cartésien est une opération portant sur deux relations R1
et R2 et qui construit une troisième relation regroupant
exclusivement toutes les possibilités de combinaison des
occurrences des relations R1 et R2.

Notation :
R1 x R2.
 Il s’agit d’une opération binaire commutative essentielle dont la
signature est :
Relation x relation → relation
Opérateurs binaires de schémas différents
a) Le Produit cartésien
30

 Le résultat du produit cartésien est une nouvelle relation qui a


tous les attributs de R1 et tous ceux de R2.

 Si R1 ou R2 ou les deux sont vides, la relation qui résulte du


produit cartésien est vide.

 Le nombre d’occurrences de la relation qui résulte du produit


cartésien est le nombre d’occurrences de R1 multiplié par le
nombre d’occurrences de R2.
Opérateurs binaires de schémas différents
31
a) Le Produit cartésien
Opérateurs binaires de schémas différents
32
b) La Jointure

Définition:
 La jointure est une opération portant sur deux relations R1 et R2 qui
construit une troisième relation regroupant exclusivement toutes les
possibilités de combinaison des occurrences des relations R1 et R2 qui
satisfont l’expression logique E.

La jointure est notée : R1 ⋈E R2.

 Il s’agit d’une opération binaire commutative dont la signature est :


relation x relation x expression logique → relation
33 Opérateurs binaires de schémas différents
b) La Jointure

 Si R1 ou R2 ou les deux sont vides, alors la relation qui résulte de la


jointure est vide.

 En fait, la jointure n’est rien d’autre qu’un produit cartésien suivi


d’une sélection.
Opérateurs binaires de schémas différents
34
b) La Jointure

Fidus laure 16 99 livre 30


Fidus laure 16 20 baladeur 45
35 Opérateurs binaires de schémas différents
b) La Jointure

Exemple : Donner la liste des plats de tous les invités.

Solution en algèbre :

 R1 = REPAS [invité = personne] PREFERENCE


 RES = R1 [plat] REPAS (date, invité)
donne la liste des invités qui ont été reçus et à
quelle date.
MENU (date, plat)
donne le menu servi à chaque date.
PREFERENCE (personne, plat)
donne pour chaque personne ses plats
préférés.
36
Opérateurs binaires de schémas différents
c) La division
Division : R÷ S
Définition :

 La division est une opération portant sur deux relations R1 et R2, telles que
le schéma de R2 est strictement inclus dans celui de R1, qui génère une
troisième relation regroupant toutes les parties d’occurrences de la relation
R1 qui, associées à toutes les occurrences de la relation R2, se retrouvent
dans R1. Notation : R1÷ R2.

 Il s’agit d’une opération binaire non commutative dont la signature est :


Relation X relation → relation
Opérateurs binaires de schémas différents
37 c) La division

 Autrement dit, la division de R1 par R2 (R1÷ R2) génère le quotient Q (A1,


A2, …, Ai) de la relation R1(A1, A2, …, Ai, Ai+1, … ,An ) par la relation
R2(Ai+1, …, An ) dont les tuples sont ceux qui concaténés à tout tuple de R2
donnent un tuple de R1.

 La relation R2 ne peut pas être vide.

 Tous les attributs de R2 doivent être présents dans R1 et R2 doit posséder au


moins un attribut de plus que R2 (inclusion stricte).

 Le résultat de la division est une nouvelle relation qui a tous les attributs de
R1 sans aucun de ceux de R2.

 Si R1 est vide, la relation qui résulte de la division est vide.


Opérateurs binaires de schémas différents
38 c) La division
ENSEIGNEMENT
Enseignant Nom
Bencharif Bouchemla
Talhi Hadji
Un exemple de division
ENSEIGNEMENT ÷
Kadi Bouchemla
ETUDIANT
Bencharif Hadji
qui permet de dresser la table R
Talhi Bouchemla
de tous les enseignants de la
Bencharif Charef
relation ENSEIGNEMENT qui
Aboud Charef
enseignent à tous les étudiants
de la relation ETUDIANT. ETUDIANT
Nom
Bouchemla
Hadji
ENSEIGNEMENT / ETUDIANT
Enseignant
Bencharif
Talhi
Opérateurs binaires de schémas différents
39
c) La division
Exemple :
Quels sont les invités qui sont venus à tous les repas?

REPAS (date, invité)


Solution en algèbre : donne la liste des invités qui ont été reçus et à
quelle date.
 R1 = REPAS [date] MENU (date, plat)
donne le menu servi à chaque date.
 RES = REPAS÷ R1 PREFERENCE (personne, plat)
donne pour chaque personne ses plats
préférés.

 Remarque : la division est également notée : R/S (R division S)


40
Opérateurs de base et opérateurs dérivés

 Cinq de ces huit opérateurs forment les opérateurs de base (ce


sont l'union, la différence, le produit cartésien, la restriction et
la projection)

 tandis que les trois autres, appelés opérateurs dérivés,


s'obtiennent plus ou moins facilement par combinaison des
opérateurs de base .
41
Opérateurs de base et opérateurs
dérivés
 Intersection:
R ∩ S = R - (R - S) = S - (S - R) = (R U S) - ((R - S) U (S - R))

 Jointure:

 Division:
soit R(X,Y) et S(Y)
R ÷ S = π [X] R - π [X] ( ( ( π[X]R ) × S ) - R )
42 Exercice 1

Soit les tables suivantes :


43
Questions: Donnez le résultat de chacune des requêtes suivantes puis
exprimez pour chacune d’elles en une phrase, la requête correspondante.
 1. R1 = EMP[sal<5000].

 2. R2 = EMP[ENOM = Mohammed]

 3. R3 = EMP[ENO]DEPT

 4. R4 = R3[ENOM]

 5. Donner le résultat de l’union de EMP et DEPT.

 6. Peut-on faire l’union de EMP et DEPT.

 7. Donnez le résultat de la division de EMP par EMP.

 8. Quelle est l’expression de l'algèbre relationnelle qui permettra d'obtenir le nom et la


profession de l'employé numéro 10.

 9. Idem pour la liste des noms des employés qui travaillent à Alger.

 10. Idem pour avoir le nom du directeur du département ''Commercial''.


44 Correction

 1. R1 = EMP[sal<5000].

Solution:
45 Correction

 2. R2 = EMP[ENOM = Mohammed]

 Solution:
46 Correction

 R3 = EMP[DNO]DEPT

Solution: On obtient les employes avec leurs informations complétes.


47 Correction
4. R4 = R3[ENOM]

Solution:
48 Correction

 5. Donner le résultat de l’union de EMP et DEPT.

On ne peut pas, puisque les deux tables ne contients pas les memes attributs.

 6. Peut-on faire l’union de EMP et DEPT.

On ne peut pas, puisque les deux tables n’ont pas les mêmes attributs.

 7. Donnez le résultat de la division de EMP par EMP.

Emp par DPT ON NE PEUX PAS LE FAIRE car POUR R1 /R2 il faut que (R2 C
R1)
49 Correction
 8. Quelle est l’expression de l'algèbre relationnelle qui
permettra d'obtenir le nom et la profession de l'employé
numéro 10.

 Solution:

π ENOM,PROF (σ ENO=10 (EMP))

ou

R1 = EMP[ENO=10] // sélection et affectation

R = R1[ENOM, PROF] // projection

C’est l’employé Mohammed ingénieur


50 Correction
 9. Idem pour la liste des noms des employés qui travaillent à
Alger.
Solution:
π ENOM (EMP ⋈ (σ V ILLE= ‘Alger’ (DEPT)))
ou
R1 = EMP [VILLE= ‘Alger’]DEPT // jointure

R = R1[ENOM] // sélection et affectation


C’est l’émployé sara
51 Correction
 10. Idem pour avoir le nom du directeur du département
''Commercial''.

 Solution:

π ENOM (EMP ⋈ ENO=DIR πDIR (σ DNOM=’Commercial’ (DEPT)))

ou

R1= EMP[DNOM=’Commercial’]DEPT // séléction, affectation,


jointure

R2= R1[ENOM] // projection

C’est l’employé sara


52 Exercice 2
Exercice 03
Soit le schéma de base de données relationnelle suivant relatif à la gestion des fournisseurs
et des marchandises qu’ils fournissent :
F(Fno, Fnom, Capital, Ville)
M( Mno, Mnom,Couleur)
FM (Fno, Mno, Qté,Ville)
Où: F= Fournisseur, M=Marchandise, FM= Fournisseur-Marchandise
Question : Que fait chacune des requêtes suivantes ? (Pour chacune d’elles donner les
résultats intermédiaires R1.............Ri)
Requête1: Requête2: Requête3:
R1 = M[Mnom= ‘Chaise’ et R1 = F[Ville= ‘Constantine’] R1 = F[Fnom=’Ali’]
couleur= ‘marron’] R2 = FM[Mno=100] R2 = R1[Fno]
R2= R1[Mno]FM R3 = R1[Fno]R2 R3 = FM[Fno, Mno]
R3= R2[Fno, Qté] R4= R3[Qté] R4 = R3[Fno]R2
Res = R4[ Mno]
53 Correction
•Les résultats intermédiaires:
54 Correction

1. Le résultat final de chaque requête :


Requête 1: Elle donne le numéro du fournisseur ainsi que la
quantité des chaises marrons qu’il a fournies.
Requête 2: Elle donne la quantité de la marchandise de numéro
100 fournie par des fournisseurs de Constantine.
Requête 3: Elle donne le numéro des marchandises fournies par
des fournisseurs de nom Ali.
55 Exercice
 Soit le schéma de la base de données Bibliothèque suivante :
Etudiant(NumEtd,NomEtd,PrenomEdt,AdresseEtd)
Livre(NumLivre,TitreLivre,NumAuteur,NumEditeur,NumTheme,
AnneeEdition)
Auteur(NumAuteur,NomAuteur,AdresseAuteur)
Editeur(NumEditeur,NomEditeur,AdresseEditeur)
Theme(NumTheme,IntituléTheme)
Prêt(NumEtd,NumLivre,DatePret,DateRetour)

 En gras les clés primaires et en italique les clés étrangères Ecrire


en langage algébrique les requêtes suivantes :
56

 1. Le nom, le prénom et l’adresse de l’étudiant de nom ‘Alami’


 2. Le numéro de l’auteur ‘Alami’
 3. la liste des livres de l’auteur numéro 121
 4. les livres de l’auteur nom ‘Alami’
 5. le numéro de l’auteur du livre ‘comment avoir 20 en BDD’
 6. le nom et l’adresse de l’auteur du livre ‘comment avoir 20 en
BDD’
 7. Les livres de l’auteur ‘Alami’ «édités chez l’éditeur ‘Nul part’
 8. les livres de l’auteur ‘Alami’ ou ‘Belhadj’
 9. les livres qui n’ont jamais été empruntés
57 Correction
58

You might also like