Vous êtes sur la page 1sur 52

Faculté des Sciences de Bizerte

Département Informatique

Chapitre
L’algèbre relationnelle
5
Préparé par:
Mme O. DRIDI

2019 / 2020 1
Algèbre relationnelle : Définition

• Langage procédural : indique comment construire


une nouvelle relation à partir d’une ou plusieurs
relations existantes.
• Langage abstrait, avec des opérations qui travaillent
sur une (ou plusieurs) relation(s) pour définir une
nouvelle relation sans changer la (ou les) relation(s)
originale(s)
• Le résultat de toute opération est une relation.

2
Algèbre relationnelle : Définition

• Collection d’opérations formelles qui agissent sur des


relations et produisent une relation en résultat.
• L’algèbre relationnelle définit des opérateurs sur les
relations, produisant de nouvelles relations. Il est donc
possible de construire de nouvelles informations à partir
des relations de départ et d’une composition séquentielle
d’opérateurs.
• Ces opérateurs se divisent en trois classes :
– les opérateurs unaires portant sur une seule relation,
– les opérateurs binaires portant sur deux relations de
même schéma
– les opérateurs binaires portant sur deux relations de
schémas différents. 3
Algèbre relationnelle : Opérateurs
relationnels
Généralement, la réponse à une requête s’obtient par l’utilisation d’un ou
plusieurs opérateurs relationnels.

Opérations classiques ensemblistes:

Les deux relations doivent posséder


– Union (È) le même nombre d’attributs et les
– Intersection (Ç) domaines des attributs associés
doivent être de même type
– Différence (-)

– Produit Cartésien (´)

4
Algèbre relationnelle : Opérateurs
relationnels
Opérations spécifiques BD utilisant les valeurs des
attributs:

– Sélection (s)

– Projection (p)
– Jointures ( / *)
– Division (÷)

5
Algèbre relationnelle : Union (1/2)
• Opération portant sur deux relations de même schéma
R1 et R2, consistant à construire une relation de même
schéma R3 ayant pour tuples ceux appartenant à R1 ou
R2. (les tuples en double étant éliminés).

• Notation R1ÈR2
UNION (R1, R2)

6
Algèbre relationnelle : Union (1/2)
L’union permet de fusionner deux relations ayant les mêmes attributs en une
seule relation.
UNION(R, S) produit une nouvelle relation de même schéma ayant les n-uplets
de R et ceux de S, les doublons étant supprimés.

Soit la relation OUVRIER Soit la relation CADRE


Num_Employé Nom_Employé Num_Employé Nom_Employé
14 Ben Mohamed 78 Ben Younes
45 Ben Saleh 98 Ben Salem
56 Tounsi
Num_Employé Nom_Employé
UNION (OUVRIER , CADRE) 14 Ben Mohamed
45 Ben Saleh
56 Tounsi
78 Ben Younes
98 Ben Salem 7
Algèbre relationnelle : Intersection (1/2)

• Opération portant sur deux relations de même schéma R1


et R2 consistant à construire une relation de même schéma
R3 ayant pour tuples ceux appartenant à la fois à R1 et R2.

• Notation R1 Ç R2
INTERSECT (R1, R2)
AND(R1, R2)

8
Algèbre relationnelle : Intersection (2/2)
Permet de fournir des occurrences présentes dans l’une et
l’autre des relations.

Soit la relation INGENIEUR Soit la relation CHEF DE SERVICE


Num_Employé Nom_Employé Num_Employé Nom_Employé
14 Ben Mohamed 34 Ben Mohamed
45 Ben Saleh 45 Ben Saleh
56 Tounsi 56 Tounsi

Num_Employé Nom_Employé
45 Ben Saleh
56 Tounsi
9
Algèbre relationnelle : Différence (1/2)

• Opération portant sur deux relations de même schéma R1


et R2, consistant à construire une relation de même
schéma R3 ayant pour tuples ceux appartenant à R1 et
n’appartenant pas à R2.

• Notation R1 - R2
DIFFERENCE(R1, R2)
REMOVE (R1, R2)
MINUS(R1, R2)

10
Algèbre relationnelle : Différence (2/2)
Permet d’obtenir les occurrences de la relation R1 qui
n’appartiennent pas à la relation R2.

Soit la relation INSCRITS Soit la relation REÇUS


Nom_Étud Spécialité Nom_Étud Spécialité
Ben Mohamed Marketing Ben Mohamed Marketing
Ben Saleh Gestion Tounsi Économie
Tounsi Économie
Ben Mahmoud Gestion

Nom_Étud Spécialité
Différence (INSCRITS, Ben Saleh Gestion
REÇUS) Ben Mahmoud Gestion

11
Algèbre relationnelle : Produit cartésien
(1/2)
• Opération portant sur deux relations R1 et R2, consistant à
construire une relation R3 ayant pour schéma la
concaténation de ceux des relations opérandes et pour
tuples toutes les combinaisons des tuples des relations
opérandes

• Notation R1 ´ R2
PRODUCT(R1, R2)
TIMES(R1,R2)

12
Algèbre relationnelle : Produit cartésien
(2/2)
Le produit cartésien se construit en combinant toutes les
possibilités.
Soit la relation LIVRE Soit la relation EDITION
Titre Auteur Couleur Type
X Ben Saleh Rouge Luxe
Y Tounsi Blanc Broché

Titre Auteur Couleur Type


X Ben Saleh Rouge Luxe
TIMES(LIVRE, EDITION) X Ben Saleh Blanc Broché
Y Tounsi Rouge Luxe
Y Tounsi Blanc Broché

13
Algèbre relationnelle : Sélection (ou
restriction) (1/4)
• Opération sur une relation R1 produisant une relation R2 de même
schéma, mais comportant les seuls tuples qui vérifient la condition C
précisée en argument.

• C est une condition logique s’exprimant au moyen des attributs de R et


des opérateurs logiques AND, OR, NOT et de comparaison =, ¹, <, >,
£, ³, BETWEEN, IN, LIKE

• Notation : scondition (R1)

RESTRICT(R,condition)
R[condition]
• scond1 (scond2 (R)) = scond2 (scond1 (R)) 14
Algèbre relationnelle : Sélection (ou
restriction) (2/4)

R
A B C
a b 1 sc (R)
d a 2
c b 3 Où C =(A=‘a’ OU B=‘a’) ET C<=3
a b 4
e e 5 Résultat
è A B C
a b 1
d a 2

15
Algèbre relationnelle : Sélection (ou
restriction) (3/4)
élimination des occurrences de la relation qui ne satisfont
pas à une condition donnée.
Exemple : Relation Commande
N°Commande Date Montant
28 Octobre 1675
29 Octobre 3425
30 Novembre 4670
52 Décembre 345

« Donner les commandes passées après le mois d’octobre »

N°Commande Date Montant


30 Novembre 4670
52 Décembre 345
16
Algèbre relationnelle : Sélection (ou
restriction) (4/4)
Exemple : Relation Commande
N°Commande Date Montant
28 Octobre 1675
29 Octobre 3425
30 Novembre 4670
52 Décembre 345

« Donner les commandes dont le montant ne dépasse pas


500 DT »
N°Commande Date Montant
52 Décembre 345

17
Algèbre relationnelle : Projection (1/2)

• Opération sur une relation R1 consistant à


composer une relation R2 en enlevant à la relation
initiale tous les attributs non mentionnés en
opérandes.

• Notation p A1, A2, …, An (R)


R[A1, A2, …, An]
PROJECT(R, A1, A2, …, An)

•p liste1 (p liste2 (R)) = p liste1 (R) 18


Algèbre relationnelle : Projection (2/2)
Consiste à éliminer des attributs d’une relation

Soit la relation ÉTUDIANT :


Nom_Etud Nom_Départ Adr_Départ
Ben Saleh Informatique Bizerte
Ben Ahmed Informatique Jendouba

p Nom_Etud (ETUDIANT)

p Nom_Etud, Adr_Départ(ETUDIANT)

19
Algèbre relationnelle : Jointure

Join fusionne deux relations en produisant toutes les


concaténations de leurs n-uplets respectifs qui vérifient une
condition c.
La jointure est un Produit cartésien suivi d’une sélection.
R S
R1 C R2 = σC (R1 × R2)
A B C D E
1 2 3 3 1
1) Produit Cartésien: R X S 4 5 6 1 2
A B C D E
1 2 3 3 1 2) Jointure: R S
1 2 3 1 2 B<D et C>E
4 5 6 3 1 A B C D E
4 5 6 1 2 1 2 3 3 1
20
Algèbre relationnelle : Variantes de
Jointure
Théta-Jointure une jointure dans laquelle la condition C
est une simple comparaison entre un attribut A1 de la
relation R1 et un attribut A2 de la relation R2.

R S
A B C D E
1 a 1 b a
3 a 2 b c
R X S
A B C D E R A<=CS
1 a 1 b a A B C D E
1 a 2 b c 1 a 1 b a
3 a 1 b a 1 a 2 b c
3 a 2 b c
21
Algèbre relationnelle : Variantes de Jointure
Une équi-jointure est une jointure dans laquelle la
condition C est un test d'égalité entre un attribut A1 de la
relation R1 et un attribut A2 de la relation R2 (sans
élimination de l’attribut superflus).
R S
A B C A’ B’ C’
a b c a’ b c’
d e c’ a’ b’ c’

Équi-Jointure: R C=C’ S
A B C A’ B’ C’
d e c’ a’ b c’
d e c’ a’ b’ c’ 22
Algèbre relationnelle : Variantes de
Jointure
La Jointure Naturelle est une équi-jointure dans laquelle
les attributs des relations R1 et R2 portent le même nom.
Dans la relation construite, l'attribut n'est pas dupliqué
mais fusionné en un seul attribut.

Notation: R1 * R2 ou JOIN(R1, R2)

La définition d’une jointure naturelle exige que les deux


attributs de la jointure portent le même nom dans les
deux relations.

23
Algèbre relationnelle : Variantes de
Jointure
La jointure Naturelle
R S
A B C B C D E
a b c b c’ d f
a’ b’ c’ b’ c’ e f

RxS
Jointure Naturelle: R * S
A B C B C D E
a b c b c’ d f A B C D E
a b c b’ c’ e f a’ b’ c’ e f
a’ b’ c’ b c’ d f
a’ b’ c’ b’ c’ e f
24
Algèbre relationnelle : Variantes de
Jointure

25
Algèbre relationnelle : Variantes de
Jointure
Semi-jointure
• La semi-jointure est une jointure pour laquelle on
ne garde que les attributs de R1 (semi-jointure de
gauche) ou de R2 (semi-jointure de droite).
• Notation : R’ = R1 R2 (semi-jointure de gauche)
R’ = R1 R2 (semi-jointure de droite)

26
Algèbre relationnelle : Variantes de
Jointure

27
Algèbre relationnelle : Variantes de
Jointure
• Par exemple : Producteur Produit

28
Algèbre relationnelle : Variantes de
Jointure
• Par exemple : Producteur Produit

29
Jointures externes

• Créer toutes les combinaisons significatives entre tuples de


deux relations
– Mettre en évidence les tuples qui n’apparaissent que dans
une table (gauche ou droite)
– Valeur NULL pour les attributs de l’autre table
• Pré-condition: au moins un attribut de même domaine
• Jointure externe gauche (left outer join, )
• Jointure externe droite (right outer join, )
• Jointure externe totale (full outer join, )

30
Jointures externes

• Il s’agit d’une jointure naturelle qui permet de faire figurer les


occurrences qui n’ont pas « d’associé » dans l’autre relation. On leur
associe alors la valeur nulle.

• La jointure extérieure conduit à la relation suivante:

31
Jointures externes

• La relation résultat d’une jointure extérieure R3


contient les tuples issus de la jointure de R1 et R2
ainsi que de R1 et R2 ne participant pas à la
jointure, avec des valeurs nulles pour les attributs
non renseignés.

32
Jointure externe gauche (left outer join)

• Permet de faire apparaître en totalité les occurrences de la


relation en gauche.
• Préserve les informations de l’opérande gauche.
• Si pas de correspondances avec l’opérande droite, valeurs
nulles.
• Syntaxe:
• Exemple:

33
Algèbre relationnelle : Variantes de
Jointure (suite)

34
Auto-jointure

• C’est une jointure naturelle dans laquelle les deux


relations initiales sont R1 et R1.
• Soit la relation Enseignants:

• L’auto-jointure permet de répondre à la question


suivante: « Donner les noms des enseignants qui
ont le même salaire que l’enseignant emp2 ? ». 35
Auto-jointure

• Réponse:
R1 = Sélection (Enseignants / Nom_ens = ‘emp2’)
R2 = Jointure (Enseignants, R1 / Salaire= Salaire)
R3 = Projection (R2 / Nom_ens)

36
Algèbre relationnelle : Division (1/2)
La division revient à chercher l’ensemble des sous-tuples
de R1 vérifiant tous les tuples de R2.

Elle permet d’obtenir les occurrences de R1 qui sont


associées à toutes les occurrences de R2.

— Notation R1 ÷ R2 ou DIVISION (R1, R2)

37
Algèbre relationnelle : Division (2/2)
Une relation est, donc, divisée par une autre relation
contenant exclusivement des attributs de la première
relation.

Nom_Étud Nom_Prof Nom_Étud


Mohamed Ben Saleh Mohamed
Ali Tounsi Ali
Fatma Ben Saleh « Donner le nom des profs qui
Yesmine Ben Khaled enseignent conjointement aux
Mohamed Tounsi élèves figurant dans la seconde
Ali Ben Saleh relation. »
Fatma Ben Khaled Nom_Prof
Ben Saleh
Tounsi 38
Algèbre relationnelle : Complément (1/2)
Consiste à construire la relation qui contient toutes les
occurrences qui n’existent pas (c’est la relation qui
exprime le FAUX)
Soit la relation R :
Professeur Étudiant
Ben Saleh Mohamed
Ben Saleh Ali Le complément de R :
Ben Saleh Fatma
Professeur Étudiant
Tounsi Mohamed
Ben Saleh Yesmine
Tounsi Ali
Ben Ahmed Mohamed
Tounsi Fatma
Tounsi Yesmine
Ben Ahmed Ali
Ben Ahmed Fatma
Ben Ahmed Yesmine 39
Algèbre relationnelle : Complément (2/2)

• Ensemble des tuples du produit cartésien des domaines


des attributs d’une relation n’appartenant pas à cette
relation

• Notation Comp (R1)

40
Opérateurs et fonctions arithmétiques

• On utilise les opérateurs et les fonctions arithmétiques dans


les expressions:
1. Les opérateurs arithmétiques:

2. Modifier les valeurs numériques des attributs:

3. Comme élément de valeur calculée:

41
Opérateurs et fonctions numériques

42
Opérateurs et fonctions sur les chaînes de
caractères

43
Conclusion

44
Conclusion

• Opérateurs ensemblistes :
UNION, INTERSECTION, DIFFERENCE, PRODUIT reformulés
spécifiquement pour le modèle relationnel

• Opérateurs relationnels spécifiques :


SELECTION, PROJECTION, JOINTURE, DIVISION

• Opérateurs dérivés :
JOINTURE EXTERNE, SEMI-JOINTURE, ...

45
Exercice

EMPLOYÉ (Prénom, Nom, N°SS, Date_Naissance, Adresse,


Sexe, Salaire, #N°SS_Sup, #N°Serv)

SERVICE ( N°Serv, NomServ, #N°SS_Dir)

PROJET (N°Proj, Nomproj, Emplacement, #N°Serv)

TRAVAILLER (#N°SS, #N°Proj, Nbr_heures)


SUR

46
Exercice
Q1: Rechercher les employés appartenant au service N°4

sN°serv=4 (EMPLOYÉ)

Q2: Rechercher les employés dont le salaire dépasse 1000DT

ssalaire>1000 (EMPLOYÉ)

Q3: Rechercher les employés qui travaillent dans le service 4 pour un


salaire supérieur à 1200 DT ou qui travaillent dans le service 5 pour u
salaire supérieur à 800 DT
s(N°serv=4 ET salaire>1200) OU (N°serv=5 ET salaire>800)
(EMPLOYÉ) 47
Exercice
Q4: Rechercher les noms, prénoms et salaires de tous les
employés qui travaillent dans le service N°5.

Rf pprénom, nom, salaire (sN°serv=5 (EMPLOYÉ))


OU

R1 f sN°serv=5 (EMPLOYÉ)
// Tous les enregistrements des employés qui travaillent dans le service N°5

Rf p prénom, nom, salaire (R1)


//Projection sur les enregistrements déterminés pour n’afficher que les attributs
dont on a besoin

48
Exercice
Q6: Rechercher le nom et l’adresse de tous les employés qui
travaillent pour le service « Recherche »

R1 f s NomServ=« Recherche » (SERVICE)


// les enregistrements des services dont le nom est Recherche

EMP_RECH f (R1 * EMPLOYÉ)


// jointure avec la table Employé par rapport à l’attribut commun N°Serv
//Comparer deux attributs identiques via une égalitégJointure Naturelle

RESULTATf p prénom, nom, adresse (EMP_RECH)


\\ Projection sur le résultat pour n’afficher que les attributs nécessaires

49
Exercice
Q7: Pour chacun des projets implantés à ‘Jendouba’, indiquer le numéro du
projet, le numéro du service qui en a la charge ainsi que le nom de famille et
l’adresse du responsable du service.

R1f sEmplacement=« Jendouba » (PROJET)


// Récupérer les projets qui ont lieu à Jendouba

R2 f (R1 * SERVICE)
// Jointure pour récupérer les services qui en a la charge

R3f (R2 N°SSDir=N°SS EMPLOYÉ)


//Jointure pour récupérer les responsables des services

RESULTAT f p N°Proj, N°Serv, Nom, adresse (R3)


//Projection sur le résultat obtenu
50
Exercice
Q8: Rechercher les noms des employés qui travaillent sur
tous les projets contrôlés par le service N°5.

R1 f p N°Proj (sN°Serv=5 (PROJET))


// Récupérer les Numéros des projets qui sont contrôlés par le service N°5

R2 f p N°Proj,N°SS (TRAVAILLER SUR)


// Récupérer les numéros des projets et employés à partir de TRAVAILLER SUR

R3f R2 ÷ R1
//Récupérer les employés qui ont travaillé sur tous les projets

RESULTAT f p Nom, prénom (R3 * EMPLOYÉ)


//Projection sur la jointure
51
Questions ??????