UNIVERSITÉ ASSANE SECK DE ZIGUINCHOR
UFR DES SCIENCES ET TECHNOLOGIES
DÉPARTEMENT D’INFORMATIQUE
CHAPITRE I
L’ ALGÈBRE RELATIONNELLE
LICENCE 3 INGÉNIERIE INFORMATIQUE
ANNÉE ACADÉMIQUE 2023 – 2024
SEMESTRE 5
DR SERIGNE DIAGNE
PLAN DU COURS
I. L’opération unaire simple : Le complément
II. Autres opérations binaires
1. La différence
2. Le produit cartésien
3. La division
III. Autres jointures
1. La semi jointure
2. Les jointures externes
IV. L’éclatement
1. Éclatement horizontal
2. Éclatement vertical 2
I. L’OPÉRATION UNAIRE SIMPLE : LE COMPLÉMENT
Le complément est une opération unaire qui permet d’avoir tous les
enregistrements possibles de la relation qui n'appartiennent pas à son
instance en ce moment précis ;
Le résultat obtenu est une nouvelle relation ayant le même schéma que la
relation de départ ;
Le complément d’une relation regroupe tous les enregistrements qui
n’appartiennent pas à son instance et dont toutes les valeurs sont déjà
prises par des enregistrements dans l’instance.
3
I. L’OPÉRATION UNAIRE SIMPLE : LE COMPLÉMENT
Syntaxe :
COMPLEMENT (Relation)
Représentation en algèbre relationnelle :
- Relation
Remarque :
- - Relation = Relation
Exemple :
Numero Age Sexe
1 18 Masculin
Donner le complément de la table ci-contre.
2 27 Féminin 4
II. D'AUTRES OPÉRATIONS BINAIRES
II.1. La différence de deux relations
La différence est une opération binaire non commutative ;
Elle porte sur deux relations de même schéma ;
Le résultat aura le même schéma que les relations opérandes ;
L’instance du résultat contient les enregistrements de la première relation
qui ne figurent pas dans la deuxième.
5
II. D'AUTRES OPÉRATIONS BINAIRES
II.1. La différence de deux relations
Syntaxe :
DIFFERENCE (Relation1, Relation2)
Représentation en algèbre relationnelle :
Relation1 – Relation2
Représentation graphique :
Résultat
Relation1 Relation2 6
II. D'AUTRES OPÉRATIONS BINAIRES
II.2. Le produit cartésien de deux relations
Le produit cartésien est une opération binaire commutative ;
Les deux relations ne doivent pas avoir le même schéma, en plus elles ne
doivent avoir aucun attribut en commun ;
Le résultat est une nouvelle relation ayant comme schéma la concaténation
des schémas des deux relations opérandes ;
L’instance du résultat contient des enregistrements obtenus en complétant
chaque enregistrement de la première relation par tous les enregistrements
de la deuxième.
7
II. D'AUTRES OPÉRATIONS BINAIRES
II.2. Le produit cartésien de deux relations
Remarque : Le nombre d’enregistrements du résultat est le produit des
nombres d’enregistrements des deux relations.
Syntaxe : PRODUIT (Relation1, Relation2)
Représentation en algèbre relationnelle :
Relation1 x Relation2
Représentation graphique :
Résultat
Relation1 Relation2 8
II. D'AUTRES OPÉRATIONS BINAIRES
II.3. La division de deux relations
La division est une opération binaire non commutative ;
Pour diviser une relation R1 par une relation R2, tous les attributs de R2
doivent aussi être des attributs de R1 ;
R1 doit avoir au moins un attribut de plus que R2 ;
L’instance de la relation R2 ne doit pas être vide ;
Le résultat est une nouvelle relation dons le schéma est composé de tous
les attributs de R1 qui ne sont pas des attributs de R2 ;
9
II. D'AUTRES OPÉRATIONS BINAIRES
II.3. La division de deux relations
L’instance du résultat contient les valeurs des attributs du résultat qui
sont composées avec toutes les valeurs existantes dans R 2.
Syntaxe : DIVISION (Relation1, Relation2)
Représentation en algèbre relationnelle :
Relation1 ÷ Relation2
Représentation graphique :
Résultat
÷
Relation1 Relation2 10
III. AUTRES JOINTURES
III. 1. La semi-jointure (Semi-Join)
Dans certains cas, lors de l’exécution d’une jointure, il n’est pas nécessaire
de conserver tous les attributs des deux relations en résultat ;
Seuls les attributs d’une des deux relations sont conservés ;
Une opération spécifique de semi-jointure, très utile permet de le faire ;
C’est une opération portant sur deux relations R1 et R2 donnant en résultat
les tuples de R1 qui participent à la jointure des deux relations ;
La semi-jointure de la relation R1 par relation R2 est notée :
R = SEMI-JOINTURE (Rl, R2, Condition) 11
III. AUTRES JOINTURES
III. 1. La semi-jointure (Semi-Join)
Elle est équivalente à la jointure des relations R1 et R2 suivie par une
projection du résultat sur les attributs de la relation R 1 ;
À noter que l’opération n’est pas commutative puisque seuls des tuples de
la première relation sont conservés ;
Elle peut être vue comme une restriction de la relation R1 par les valeurs
des attributs de jointure figurant dans la relation R 2.
12
III. AUTRES JOINTURES
III. 1. La semi-jointure (Semi-Join)
Personne
Numero Nom Prenom Age
1 Suzuki Yao 48
2 Ahmed Moustapha 62
3 Ford Jean Jacques 75
Voiture
Matricule Marque Annee
ZG 2154 A Ford 2016
ZG 1987 A Mercedes 2022
ZG 1452 A Suzuki 2020
13
III. AUTRES JOINTURES
III. 1. La semi-jointure (Semi-Join)
Exemple :
Semi-Join(Personne, Voiture, Nom = Marque)
Numero Nom Prenom Age
1 Suzuki Yao 48
3 Ford Jean Jacques 75
Semi-Join(Voiture, Personne, Nom = Marque)
Matricule Marque Annee
ZG 1452 A Suzuki 2020
ZG 2154 A Ford 2016
14
III. AUTRES JOINTURES
III. 1. La semi-jointure (Semi-Join)
Remarque :
Personne SJNom = Marque Voiture = ΠPersonne.* (Personne ΘNom = Marque Voiture)
Voiture SJNom = Marque Personne = ΠVoiture.* (Voiture ΘNom = Marque Personne)
15
III. AUTRES JOINTURES
III. 2. Les jointures externes
Une jointure perd des tuples d’au moins une relation quand les relations
jointes n’ont pas de projections identiques sur l’attribut de jointure ;
Pour préserver toutes les informations dans tous les cas, il est nécessaire de
définir des jointures qui conservent les tuples sans correspondant ;
Pour ces tuples, on associe la valeur Null à des attributs quand c’est
nécessaire ;
C’est dans ce but que les jointures externes sont introduites. 16
III. AUTRES JOINTURES
III. 2. Les jointures externes
C’est une opération générant une relation R3 à partir de deux relations R1 et
R2 par :
jointure de ces deux relations ;
ajout des tuples de R1 et R2 ne participant pas à la jointure avec des valeurs nulles
pour les attributs de l’autre relation.
Elle est représentée en général comme suit :
R = JOINTURE-EXTERNE (R1, R2, condition)
R = EXTERNAL-JOIN (R1, R2, condition) 17
III. AUTRES JOINTURES
III. 2. Les jointures externes
La jointure externe permet, par exemple, de joindre des tables Personne et
Voiture en gardant :
les personnes dont le nom de famille ne coïncide avec aucune marque de voiture
les voiture dont la marque ne coïncide avec aucun nom de famille.
Elle est donc en pratique très utile pour conserver l’intégralité des
instances des deux tables.
18
III. AUTRES JOINTURES
III. 2. Les jointures externes
Exemple :
La jointure externe entre Personne et Voiture sur la même condition a pour
instance :
JOINTURE-EXTERNE (Personne, Voiture, Nom = Marque)
Numero Nom Prenom Age Matricule Marque Annee
1 Suzuki Yao 48 ZG 1452 A Suzuki 2020
2 Ahmed Moustapha 62 Null Null Null
3 Ford Jean Jacques 75 ZG 2154 A Ford 2016
Null Null Null Null ZG 1987 A Mercedes 2022
19
III. AUTRES JOINTURES
III. 2. Les jointures externes
Remarque :
Il est possible de garder les tuples d’une des tables (de table de gauche) qui
ne sont en relation avec aucun tuple de l’autre (table de droite) ;
Dans ce cas, on ignore ceux de l’autre table (table de droite) qui ne sont en
relation avec aucun tuple de la première (table de gauche) ;
On parle alors de jointure externe gauche ou jointure externe droite.
20
III. AUTRES JOINTURES
III. 2. Les jointures externes
Exemple :
JOINTURE-EXTERNE-GAUCHE (Personne, Voiture, Nom = Marque)
Numero Nom Prenom Age Matricule Marque Annee
1 Suzuki Yao 48 ZG 1452 A Suzuki 2020
2 Ahmed Moustapha 62 Null Null Null
3 Ford Jean Jacques 75 ZG 2154 A Ford 2016
JOINTURE-EXTERNE-DROITE (Personne, Voiture, Nom = Marque)
Numero Nom Prenom Age Matricule Marque Annee
1 Suzuki Yao 48 ZG 1452 A Suzuki 2020
3 Ford Jean Jacques 75 ZG 2154 A Ford 2016
Null Null Null Null ZG 1987 A Mercedes 2022
21
IV. L’ÉCLATEMENT
Définition
L’éclatement est une opération qui n’appartient pas vraiment à l’algèbre
relationnelle puisqu’il donne deux relations en résultats, à partir d’une ;
Elle est cependant utile pour partitionner une relation en deux sous-
relations ;
À ce titre, elle est considérée comme une extension de l’algèbre
relationnelle ;
Il existe deux manière de partitionnement d’une relation :
L’éclatement horizontal ;
L’éclatement vertical 22
IV. L’ÉCLATEMENT
IV. 1. L’éclatement horizontal
C’est une opération consistant à créer deux relations à partir d'une
relation :
La première contient les tuples de R vérifiant une condition de sélection ;
La deuxième ceux ne la vérifiant pas.
Cette opération appliquée à la relation R génère donc deux relations R 1
et R2 qui seraient obtenues par sélection comme suit:
R1 = SELECTION (R, Condition)
R2 = SELECTION (R, ¬(Condition))
23
IV. L’ÉCLATEMENT
IV. 1. L’éclatement horizontal
Exemple :
Visite
Numero Date Pays
1 25/03/2022 Sénégal
2 18/04/2023 Mali
3 15/08/2021 Gambie
4 30/03/2023 Guinée
5 16/12/2022 Mauritanie
24
IV. L’ÉCLATEMENT
IV. 1. L’éclatement horizontal
L’éclatement horizontal de la table Visite ci-dessus suivant la condition
« Les visites effectuées avant 2023 » donne les tables Visite_1 et Visite_2
suivantes :
Visite_1 = (Visite) Visite_2 = (Visite)
Date < '01/01/2023' Date >= '01/01/2023'
Numero Date Pays Numero Date Pays
1 25/03/2022 Sénégal 2 18/04/2023 Mali
3 15/08/2021 Gambie 4 30/03/2023 Guinée
5 16/12/2022 Mauritanie
25
IV. L’ÉCLATEMENT
IV. 2. L’éclatement vertical
C’est aussi une opération consistant à créer deux relations à partir d'une
relation ;
La première contient les parties de tuples de R obtenues par projection sur les
attributs cités
La deuxième les parties de tuples obtenues par projections sur les attributs non
cités.
Cette opération appliquée à la relation R (Att1, Att2, …, Attn) génère donc
deux relations R1 et R2 qui seraient obtenues par projection comme suit :
26
IV. L’ÉCLATEMENT
IV. 2. L’éclatement vertical
R1 = PROJECTION (R, Att1, Att2, …, Atti)
R2 = PROJECTION (R, Attj, …, Attn)
Avec :
j > i ;
n > j
27
IV. L’ÉCLATEMENT
IV. 2. L’éclatement vertical
Exemple : L’éclatement vertical de la table Visite ci-dessus par la projection
sur Numero et Pays donne les tables Visite_3 et Visite_4 suivantes :
Visite_3 = ΠNumero, Pays (Visite) Visite_4 = ΠDate (Visite)
Numero Pays Date
1 Sénégal 25/03/2022
2 Mali 18/04/2023
3 Gambie 15/08/2021
4 Guinée 30/03/2023
5 Mauritanie 16/12/2022
28
EXERCICE D’APPLICATION
Module (Libelle, VolHoraire, Coefficient, Type)
Salle (Numero, Batiment, Capacite, Type, Climatise)
Suivre (#Etudiant, #Module, Annee, Semestre)
Dispenser (#Enseignant, #Module, Annee, Semestre)
SeDerouler (#Module, #Salle, #Batiment, Date, Heure)
29