Vous êtes sur la page 1sur 23

Fondements des Bases de données

2ème Année ISI-IRS & ISI-SEIO

Chapitre 4
L’algèbre Relationnelle
Samir BOUCETTA
Samir.Boucetta@issatm.ucar.tn
Adapté de Elmasri & Navathe

1er Semestre 2022/2023


SOMMAIRE

 Exemple de base de données (COMPANY)

 Algèbre Relationnelle
– Opérations Relationnelles Unaires
– Opérations d'algèbre relationnelle de la théorie des ensembles
– Opérations Relationnelles Binaires
– Opérations Relationnelles Supplémentaires
– Exemples de Requêtes en algèbre relationnelle

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 2


Database State for COMPANY
All examples discussed below refer to the COMPANY database shown here.

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 3


Algèbre Relationnelle
 L’ensemble des opérations de base pour le modèle
relationnel est connu sous le nom d’algèbre relationnelle.
Ces opérations permettent à un utilisateur de spécifier des
demandes de base de récupérations de données.

 Le résultat d’une requête est une nouvelle relation, qui peut


être formé à partir d’une ou de plusieurs relations. Les
opérations d’algèbre produisent ainsi de nouvelles
relations, qui peuvent être manipulées par la suite en utilisant
des opérations de la même algèbre.

 Une séquence d'Operations d’algèbre relationnelle forme une


expression d’algèbre relationnelle, dont le résultat va être
aussi une relation qui représente le résultat d’une requête de
base de données (ou demande de récupération).
Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 4
Opérations Relationnelles Unaires
 L’opération SELECT

L’opération SELECT est utilisée pour sélectionner un sous-ensemble de


tuples à partir d’une relation qui satisfont la condition de sélection. C’est un
filtre qui ne garde que les tuples qui satisfont une condition de qualification et
élimine les autres.
Exemple: Pour sélectionner les tuples EMPLOYEE dont le numéro de
département est 4 ou ceux dont le salaire est supérieur à 30.000 la notation
suivante est utilisée:
DNO = 4 (EMPLOYEE)
SALARY > 30,000 (EMPLOYEE)
En général, l’opération de sélection est désigné par  <sélection condition>(R)
où le symbole  (sigma) est utilisé pour designer l’opérateur de sélection, et
la condition de sélection est une expression Booléenne spécifiée sur les
attributs de la relation R.

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 5


Opérations Relationnelles Unaires
Propriétés de l’Opération SELECT

– L’opération SELECT  <condition de sélection>(R) produit une


relation S qui a le même schéma que R

– L’opération SELECT est commutative; i.e.,


 <condition1>( < condition2> ( R)) =  <condition2> ( < condition1> ( R))

– Une operation SELECT en cascade peut etre appliquee dans


n’importe quel order; i.e.,
 <condition1>( < condition2> ( <condition3> ( R))
=  <condition2> ( < condition3> ( < condition1> ( R)))

– Une operation SELECT en cascade peut être remplacee par une seule
selection avec conjonction de toutes les conditions; i.e.,
 <condition1>( < condition2> ( <condition3> ( R))
=  <condition1> AND < condition2> AND < condition3> ( R)

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 6


Opérations Relationnelles Unaires
 Opération de PROJECTION
Cette opération sélectionne certaines colonnes de la table et ignore les autres.
Exemple: Récupérer les prénoms, noms et salaires des employés:
 LNAME, FNAME,SALARY (EMPLOYEE)
Le format general de l’opration de projection est:
<liste attributs>(R)
 (pi) est le symbole utilise pour representer l’operation de
projection.
<liste attributs> est la liste des attributs retenus de la relation R.
L’opération de projection supprime tous les duplicatas.

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 7


Opérations Relationnelles Unaires

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 8


Opérations Relationnelles Unaires
Propriétés de l’opération de PROJECTION

– Le nombre de tuples dans le résultat d’une projection <list> (R) 


est toujours inferieur ou égal au nombre de tuples dans R.

– Si la liste d’attributs inclus une clé de R, alors le nombre de


tuples est égal au nombre de tuples dans R.

 <list1>( <list2> (R) ) =  <list1> (R)


si <list2> contient les attributs de <list1>

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 9


Opérations Relationnelles Unaires
 Opération de Renommage
Pour appliquer plusieurs opérations d’algèbre relationnelle l’une après l’autre,
nous pouvons:
- Ecrire les opérations sous forme d’une seule expression d’algèbre
relationnelle en imbriquant les opérations,
- Appliquer une opération à la fois et créer des résultats intermédiaires.

Dans le second cas, nous devons donner des noms aux relations qui
contiennent le résultat intermédiaire.
Exemple: L’expression suivante:

FNAME, LNAME, SALARY( DNO=5(EMPLOYEE))


Peut être écrite sous forme de séquence d’opérations et en donnant un nom à
chaque résultat intermédiaire, comme suit:
DEP5_EMPS   DNO=5(EMPLOYEE)
RESULT   FNAME, LNAME, SALARY (DEP5_EMPS)

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 10


Opérations d'algèbre relationnelle de la
théorie des ensembles
 Opération UNION
Le résultat de cette opération, noté R  S, est une relation qui inclus tous les
tuples qui sont soit dans R, dans S ou dans les deux (R et S). Les tuples
dupliqués sont éliminés.
Exemple: Pour retrouver le NSS de tous les employés qui travaillent au
département 5 ou ceux aui supervisent un employé travaillant au département 5,
nous pouvons utiliser l’opération UNION comme suit:
EMPS_DEP5  DNO=5 (EMPLOYEE)
RESULT1   SSN(EMPS_DEP5)
RESULT2   SUPERSSN(EMPS_DEP5)
RESULT  RESULT1  RESULT2
Pour que l’opération d’Union fonctionne, il faut que les deux opérandes soient
“type compatible”.

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 11


Opérations d'algèbre relationnelle de la
théorie des ensembles
 Compatibilité de type
The relations opérandes R1(A1, A2, ..., An) et R2(B1, B2, ..., Bn)
doivent avoir le même nombre d’attributs; et le domaine des
attributs correspondants (A1B1, A2B2 , etc.) doivent être
compatibles. Ceci signifie que dom(Ai)=dom(Bi) pour i=1... n.

Les relations résultantes de R1  R2, R1  R2, ou R1-R2 ont


les mêmes noms d’attributs que la relation opérande R1 (par
convention).

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 12


Opérations d'algèbre relationnelle de la
théorie des ensembles
 UNION - Exemple

ETUDIANT  ENSEIGNANT

ENSEIGNANT
ETUDIANT

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 13


Opérations d'algèbre relationnelle de la
théorie des ensembles
 Opération d’INTERSECTION

Le résultat de cette opération, note R  S, est une relation qui inclus tous les
tuples qui sont simultanément dans R et S. Les deux opérandes doivent être
"type compatible"

Exemple: Le résultat de l’opération d’intersection (figure ci-dessous) inclus


ceux qui sont étudiants et enseignants.

ETUDIANT  ENSEIGNANT

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 14


Opérations d'algèbre relationnelle de la
théorie des ensembles

 Operation de Difference d’ensembles (ou MINUS)


Le résultat de cette opération, noté R - S, est une relation qui
inclus tous les tuples qui sont dans R mais ne sont pas dans S.
Les deux opérandes doivent être "type compatible”..

Exemple: La figure de la diapositive suivante, montre:


- les noms des étudiants qui ne sont pas des enseignants
ETUDIANT-ENSEIGNANT
- et les noms des enseignants qui ne sont pas de étudiants
ENSEIGNANT-ETUDIANT

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 15


Opérations d'algèbre relationnelle de la
théorie des ensembles
Exemple: La figure ci-dessous montre les noms des étudiants qui ne sont pas
des enseignants, et les noms des enseignants qui ne sont pas de étudiants.

ETUDIANT-ENSEIGNANT

ENSEIGNANT-ETUDIANT

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 16


Opérations d'algèbre relationnelle de la
théorie des ensembles
 Notez que les opérations d’union et d’intersection sont
commutatives :
R  S = S  R et R  S = S  R

 L’union et l’intersection peuvent être traitées comme opérations


n-aire, applicables à un nombre quelconque de relations, car ces
deux opérations sont associatives :
R  (S  T) = (R  S)  T, and (R  S)  T = R  (S  T)

 L’opération MINUS n’est pas commutative; en général


R-S≠S–R

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 17


Opérations d'algèbre relationnelle de la
théorie des ensembles
 L’Opération PRODUIT CARTESIEN
– Cette opération est utilisée pour combiner les tuples de deux relations de
manière combinatoire. En général, le résultat de
R(A1, A2, . . ., An) x S(B1, B2, . . ., Bm) est une relation Q de degré n + m
attributs Q(A1, A2, . . ., An, B1, B2, . . ., Bm), dans cet ordre. La relation
résultante Q a un tuple pour chaque combinaison de tuples—un tuple de R et
un autre de S.
– Ainsi, si R a nR tuples (noté |R| = nR ), et S a nS tuples, alors
| R x S | va avoir nR * nS tuples.
– Les deux opérandes ne SONT PAS forcement "type compatible”
Exemple:
FEMALE_EMPS   SEX=’F’(EMPLOYEE)
EMPNAMES   FNAME, LNAME, SSN (FEMALE_EMPS)

EMP_DEPENDENTS  EMPNAMES * DEPENDENT


Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 18
Opérations d'algèbre relationnelle de la théorie des ensembles

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 19


Opérations Relationnelles Binaires
 Opération JOIN
– La séquence d’un produit cartésien suivi par une sélection est
utilisée pour identifier et sélectionner des tuples inter-reliés
provenant de plusieurs tables (relations). Cette opération est
appelée JOIN. Elle est notée par
– Cette opération est très importante car elle nous permet de
traiter des associations entre relations.
– La forme générale d’une opération JOIN pour deux relations
R(A1, A2, . . ., An) and S(B1, B2, . . ., Bm) est:
R <condition de jointure>S
où R et S sont des relations pouvant être le résultat d’une
expression d’algèbre relationnelle.

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 20


Binary Relational Operations (cont.)
Exemple: Supposons que nous voulons retrouver le nom du
directeur de chaque département. Pour avoir le nom du directeur,
nous avons besoin de combiner chaque tuple de DEPARTMENT
avec le tuple d’EMPLOYE pour lequel le No de SSN est égal au
No de MGRSSN du tuple de département. Pour ce faire, nous
utilisons l’opération de jointure

DEPT_MGR  DEPARTMENT MGRSSN=SSN


EMPLOYEE

Résultat de l’opération de jointure

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 21


Exemples de requêtes en Algèbre Relationnelle
 Q1: Retrouvez les noms et adresses de tous les employés qui
travaillent pour le département ‘Finance’.
DEPT_FINANCE   DNAME=’Finance’ (DEPARTMENT)

EMPS_FINANCE  (DEPT_FINANCE DNUMBER= DNO EMPLOYEE)


RESULTAT   FNAME, LNAME, ADDRESS (EMPS_FINANCE)

 Q2: Retrouvez les noms et prénoms des employés qui ont des
garçons.
DEPDS_GARCONS   SEX=’M’ AND RELATIONSHIP=‘Fils’ (DEPENDENT)

EMPS_AYANT_GARCONS   ESSN (DEPDS_GARCONS)


INFO_EMPS_AG  (EMPS_AYANT_GARCONS ESSN= SSN EMPLOYEE)
RESULT   LNAME, FNAME (INFO_EMPS_AG)

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 22


Exemples de requêtes en Algèbre Relationnelle
 Q3: Retrouvez les noms et prénoms des employés qui n’ont
pas de dépendants.
TOUS_LES_EMPS   SSN(EMPLOYEE)

EMPS_AYANT_DEPDS   ESSN (DEPENDENT)


EMPS_SANS_DEPDS  (TOUS_LES_EMPS - EMPS_AYANT_DEPDS)
RESULT1 
(EMPS_SANS_DEPDS EMPS_SANS_DEPDS.SSN= EMPLOYEE.SSN EMPLOYEE)

RESULTAT   LNAME, FNAME (RESULT1)

Chapitre 4 – Algèbre Relationnelle – Adapté de Elmasri/Navathe par Samir BOUCETTA 23

Vous aimerez peut-être aussi