Vous êtes sur la page 1sur 22

Ministère de l’Enseignement Supérieur et de recherche scientifique

Université de Sousse
Institut Supérieur de Gestion (ISG)
Séance de Cours

Chapitre5
L’algèbre relationnel

Enseignant : MR Kamel Garrouch


I. Introduction
L’algèbre relationnel est un ensemble d'opérateurs qui manipulent des ensembles
de n-uplets (enregistrement) d'un modèle relationnel.

Il permet par exemple de sélectionner certains enregistrements d’une relation


satisfaisant une condition ou encore de regrouper des enregistrements de
relations différentes.

Tout opérateur de l'algèbre relationnelle s'applique à une ou plusieurs relations et


produit une relation.
L’algèbre relationnelle utilise des opérateurs qu’on pourra classifier en trois catégories :

oLes opérateurs unaires : sélection, projection


oLes opérateurs binaires travaillant sur des relations de même schéma : union,
intersection et différence.
oLes opérateurs binaires travaillant sur des relations de schémas différents :
jointure, produit cartésien et division. 2
II. Les opérateurs unaires
1) L’opérateur PROJECTION

Cet opérateur ne porte que sur une relation. Il permet de ne retenir que certains attributs
spécifiés d'une relation

Formalisme : R ← PROJECTION (R1, liste des attributs)


Exemple: soit la relation suivante Enseignants Permanents
Numero Nom Prenom Salaire Adresse
Résultat : R1
7800 Behi Ahmed 730 Ouardanine
Nom Prenom
7801 Jabari Akram 730 Bizerte Behi Ahmed
Jabari Akram
7802 Assa Amer 900 Libon
Assa Amer
7803 Yazid Hichem 1100 Jradou
Yazid Hiuchem

Afficher les noms et prénoms des enseignants permanents


R1 ← PROJECTION (ENSEIGNANT PERMANENTS, Nom, Prenom) 3
II. Les opérateurs unaires
2) L’opérateur SELECTION

Cet opérateur porte sur une relation. Il permet de ne retenir que les n-uplets répondant à
Une condition exprimée à l'aide des opérateurs arithmétiques ( =, >, <, >=, <=, <>) ou
logiques de base (ET, OU, NON). Tous les attributs de la relation sont conservés.

Formalisme : R ← SELECTION (R1, condition)

Exemple: Donner les enseignants permanents dont le salaire est supérieur à 800

R3 ← SELECTION (ENSEIGNANT, Salaire>800)


Résultat :
Numero Nom Prenom Salaire Adresse

7802 Assa Amer 900 Liban

7803 Yazid Hichem 1100 Jradou

4
III. Opérateurs binaires travaillant sur des relations de même schéma
1) L’opérateur UNION

Porte sur deux relations qui doivent avoir le même nombre d'attributs définis dans le
même domaine (ensemble des valeurs permises pour un attribut). On parle de relations
ayant le même schéma.

La relation résultat possède les attributs des relations d'origine et les n-uplets de chacune,
avec élimination des doublons éventuels.
Formalisme : R ← UNION (R1, R2)

Exemple : Soit la relation Enseignants Contractuels


Numero Nom Prenom Salaire Adresse
1802 Salhi Taher 900 Sbitla

2803 Ferchichi Anis 900 Jandouba

3000 Laribi Salah 900 Bizerte


5
III. Opérateurs binaires travaillant sur des relations de même schéma
1) L’opérateur UNION (suite)

Donner la liste des enseignants permanents et celle des enseignants contractuels.


R1←UNION (Enseignants Permanents, Enseignants Contractuels)

Numero Nom Prenom Salaire Adresse


7800 Behi Ahmed 730 Ouardanine

7801 Jabari Akram 730 Bizerte

7802 Assa Amer 900 Liban

7803 Yazid Hichem 1100 Jradou

1802 Salhi Taher 900 Sbitla

2803 Ferchichi Anis 900 Jandouba

3000 Laribi Salah 900 Bizerte

6
III. Opérateurs binaires travaillant sur des relations de même schéma
2) L’opérateur INTERSECTION
Porte sur deux relations de même schéma. La relation résultat possède les attributs des
relations d'origine et les n-uplets communs à chacune.
Formalisme : R ← INTERSECTION (R1, R2)
Exemple : soit les 3 relations suivantes :

LESFILMS (TITRE, PAYS, ANNEE, DUREE)


LESACTEURS (NOMACTEUR , #TITRE)
LESREALISATEUR (NOMREALISATEUR , #TITRE)

Donner la liste des réalisateurs qui sont des acteurs :


R ← PROJECTION (LESACTEURS,NOMACTEUR)
R1 ← PROJECTION (LESREALISATEUR, NOMREALISATEUR)
R2 ← INTERSECTION (R, R1)

7
III. Opérateurs binaires travaillant sur des relations de même schéma
3) L’opérateur DIFFERENCE
Porte sur deux relations de même schéma. La relation résultat possède les attributs des
relations d'origine et les n-uplets de la première relation qui n'appartiennent pas à la
deuxième.
Attention : la différence n’est pas commutative.

Formalisme : R ← DIFFERENCE (R1, R2)


Exemple : Exemple : donner les acteurs qui ne sont pas réalisateurs

R ← PROJECTION (LESACTEURS, NOMACTEUR)


R1 ← PROJECTION (LESREALISATEUR, NOMREALISATEUR)
R2 ← DIFFERENCE (R, R1)

8
IV. Opérateurs binaires travaillant sur des relations de schéma différents
IV.1 Opérateur PRODUIT CARTÉSIEN
Cet opérateur porte sur deux relations. La relation résultat possède les attributs de
chacune des relations d'origine et ses n-uplets sont formés par la concaténation de
chaque n-uplets de la première relation avec l'ensemble des n-uplets de la deuxième.
Formalisme : R ← PRODUIT (R1, R2)
Exemple : soit les relations suivantes
EMP(Matr, NomE, Poste, DatEmb, Sup, Salaire, #NumDept)

Matr NomE Poste DatEmb Sup Salaire NumDept


500 behi Chef atelier 12/12/00 400 750 10
515 jabari employé 14/02/01 500 500 10
516 miladi employé 18/02/01 500 500 10
520 salhi technicien 20/04/00 350 530 11
530 hlila ingénieur 02/03/00 500 600 11

9
IV. Opérateurs binaires travaillant sur des relations de schéma différents
IV.1 Opérateur PRODUIT CARTÉSIEN
DEPT(NumDept, NomDept, Lieu) PROJET(CodeP, NomP)

NumDept NomDept CodeP NomP


10 informatique 20 construction
11 mecanique 21 développement

R ← PRODUIT (DEPT, PROJET)

NumDept NomDept CodeP NomP


10 informatique 20 construction
10 informatique 21 développement
11 mecanique 20 construction
11 mecanique 21 développement

Application donner le résultat de la requête suivante


R2 ← PRODUIT (EMP, DEPT)

10
IV. Opérateurs binaires travaillant sur des relations de schéma différents
IV.2 Opérateur JOINTURE
Cet opérateur porte sur 2 relations qui doivent avoir au moins un attribut défini dans
le même domaine. La condition de jointure peut porter sur l'égalité d'un ou de plusieurs
attributs définis dans le même domaine (mais n'ayant pas forcément le même nom). Les
n-uplets de la relation résultat sont formés par la concaténation des n-uplets des
relations d'origine qui vérifient la condition de jointure.

Formalisme :
R ← JOINTURE (R1, R2, condition d'égalité (inégalité) entre attributs)

Exemple : ajoutons la relation suivante

PARTICIPATION(#Matr, #CodeP, Fonction)

11
IV. Opérateurs binaires travaillant sur des relations de schéma différents
IV.2 Opérateur JOINTURE
Matr CodeP Fonction
500 20 Chef de projet
516 20 employé
500 21 Chef de projet
530 21 ingénieur
530 20 ingénieur
R ← JOINTURE (PARTICIPATION, EMP, PARTICIPATION.Matr = EMP.Matr)

Remarque:
Des jointures plus complexes que l'équijointure peuvent être réalisées en généralisant
l'usage de la condition de jointure à d'autres critères de comparaison que l'égalité
(<,>, <=,>=, <>). 12
IV. Opérateurs binaires travaillant sur des relations de schéma différents
IV.3 Opérateur DIVISION
Cet opérateur porte sur 2 relations qui doivent avoir au moins un attribut défini dans le
même domaine.
Tous les attributs du diviseur (ici PROJET) doivent être des attributs du dividende (ici
PARTICIPATION).
La relation dividende doit avoir au moins une colonne de plus que la relation diviseur.
La relation résultat, le quotient, est formée de tous les n-uplets qui, concaténés à chacun
des n-uplets du diviseur (ici PROJET) donnent toujours un n-uplets du dividende (ici
PARTICIPER).

Formalisme : R ← DIVISION (R1, R2)

13
IV. Opérateurs binaires travaillant sur des relations de schéma différents
IV.3 Opérateur DIVISION
Exemple: donner les employés qui participent à tous les projets

R1 ← PROJECTION(PARTICIPATION, Matr, CodeP)


R2 ← PROJECTION(PROJET, CodeP)

R ← DIVISION (R1, R2)

Résultat : Matr
500
530

14
V. Opérations d'Agrégation
V.1 Opération CALCULER
Formalisme :
R= CALCULER (R0, fonction1, fonction2, ...) ou N←CALCULER (R0, fonction)

Les calculs et/ou comptage portent sur la relation R0.


La relation résultat ne comportera qu'une ligne avec autant de colonnes que de résultats
demandés ou pourra simplement être considérée comme un nombre N utilisable
ultérieurement en tant que tel dans le cas où un seul résultat est attendu.

Exemple : On désire obtenir la somme des salaires des employés

R1←CALCULER (EMP, Somme (Salaire))

15
V. Opérations d'Agrégation
V.2 Opération REGROUPER_ET_CALCULER
Formalisme :
R←REGROUPER_ET_CALCULER (R0, att1, att2, ..., fonction1, fonction2, ...)
Exemple:
On désire obtenir la somme des salaires par département:

R2←REGROUPER_ET_CALCULER(EMP, NumDept, Somme (Salaire))

Le regroupement s'effectue sur un sous ensemble des attributs de la relation R0.


La relation résultat comportera autant de lignes que de groupes de n-uplets, les
fonctions s'appliquant à chacun des groupes séparément.

16
V. Opérations d'Agrégation
V.3 Les Fonctions d'agrégation
Formalisme :
R←REGROUPER_ET_CALCULER (R0, att1, att2, ..., fonction1, fonction2, ...)
Exemple:
On désire obtenir la somme des salaires par département:
R2←REGROUPER_ET_CALCULER(EMP, NumDept, Somme (Salaire))

Le regroupement s'effectue sur un sous ensemble des attributs de la relation R0.


La relation résultat comportera autant de lignes que de groupes de n-uplets, les
fonctions s'appliquant à chacun des groupes séparément.

17
V. Opérations d'Agrégation
V.3 Les Fonctions d'agrégation
Elles sont utilisées dans les opérateurs
CALCULER et REGROUPER_ET_CALCULER.
a. Les fonctions statistiques de base

Elles portent sur un ou plusieurs groupes de n-uplets et évidemment sur un attribut de


type numérique.

-Somme (attribut): total des valeurs d'un attribut


-Moyenne (attribut): moyenne des valeurs d'un attribut
-Minimum (attribut) : plus petite valeur d'un attribut
-Maximum (attribut) : plus grande valeur d'un attribut

Remarque :
les valeurs "non renseignées" de l'attribut sont ignorées.

18
V. Opérations d'Agrégation
V.3 Les Fonctions d'agrégation
Elles sont utilisées dans les opérateurs
CALCULER et REGROUPER_ET_CALCULER.
b. La fonction de comptage : Comptage ()
La fonction de comptage donne le nombre de n-uplets d'un ou de plusieurs groupes de
n uplets. Il n'est donc pas nécessaire de préciser un attribut.

Exemple : donner le nombre d'employés par projet.

R2←REGROUPER_ET_CALCULER(PARTICIPATION,CodeP, comptage (Matr))

19
Exercices d'application :
Exercice 1: Soit le schéma relationnel :

EMP(Matr, NomE, Poste, DatEmb, Sup, Salaire, Commission, #NumDept)


DEPT(NumDept, NomDept, Lieu)
PROJET(CodeP, NomP)
PARTICIPATION(#Matr, #CodeP, Fonction)

Donnez la suite d'opérations élémentaires de l'algèbre relationnelle pour obtenir les


données qui correspondent aux listes suivantes :

1. Matricules et noms des employés qui ont été embauchés avant le 1er janvier 1995.
2. Noms des employés qui ont le poste de secrétaire.
3. Noms des employés avec le nom du département où ils travaillent.
4. Noms des employés qui travaillent dans le département FINANCES.
5. Numéros de département qui ont des ingénieurs.
20
Exercices d'application :
Exercice2 Soit le modèle relationnel suivant relatif à la gestion des notes annuelles d'une
promotion d'étudiants :
ETUDIANT (N°Etudiant, Nom, Prénom)
MATIERE(CodeMat, LibelléMat, CoeffMat)
EVALUER(#N°Etudiant, #CodeMat, Date, Note)
Questions :
1. Quel est le nombre total d'étudiants ?
2. Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la plus basse?
3. Quelles sont les moyennes de chaque étudiant dans chacune des matières ?
4. Quelles sont les moyennes par matière ?
5. Quelle est la moyenne générale de chaque étudiant ?
6. Quelle est la moyenne générale de la promotion ?
7. Quels sont les étudiants qui ont une moyenne générale supérieure ou égale à la
moyenne générale de la promotion ? 21
Merci pour votre
Attention

Vous aimerez peut-être aussi