Cours Algèbre Relationnelle
Cours Algèbre Relationnelle
Algèbre relationnelle
Company Logo
1
Algèbre relationnelle et sql
Introduction :
La conception de la structure de la base de données, si
elle est un peu complexe à appréhender, peut
nécessiter, en amont, l'utilisation d'outils de
modélisation conceptuels de type entités-
associations (Modèle Conceptuel des Données de la
méthode MERISE ou diagramme de classes du
langage UML).
Algèbre relationnelle
Company Logo
2
Algèbre relationnelle et sql
Introduction :
Mais, même dans les cas les plus simples il faut
obligatoirement connaître les concepts du Modèle
Relationnel, sans quoi un utilisateur non averti risque
de créer une structure inadaptée et sera vite bloqué
dans la conception des requêtes.
Algèbre relationnelle
Company Logo
3
Algèbre relationnelle et sql
Introduction :
Il s'agit ici, d'étudier les principaux opérateurs de
l'algèbre relationnelle servant de base à l'élaboration
et à l'analyse (plan d'exécution) des requêtes.
Algèbre relationnelle
Company Logo
4
Algèbre relationnelle et sql
Introduction :
Bon nombre d'utilisateurs qui voient le matériel
informatique et les logiciels changer tous les trois
mois, seraient surpris d'apprendre que l'algèbre
relationnelle a été définie par Codd en 1970.
Algèbre relationnelle
Company Logo
5
Algèbre relationnelle et sql
Introduction :
Une bonne maîtrise de l'algèbre relationnelle permet
de concevoir n'importe quelle requête aussi complexe
soit-elle avant de la mettre en œuvre à l'aide du
langage SQL.
Algèbre relationnelle
Company Logo
6
Algèbre relationnelle et sql
Introduction :
Parmi les opérations de l'algèbre relationnelle, on
dispose d'opérations classiques sur les
ensembles (union, intersection, différence, produit
cartésien) puis d'opérations propres (projection,
sélection, jointure, division).
Algèbre relationnelle
Company Logo
7
Algèbre relationnelle et sql
Introduction :
Sont également exposées ici des opérations de calcul,
de regroupement , de comptage et de tri, non définies
à l'origine par Codd mais très utiles.
Algèbre relationnelle
Company Logo
8
Algèbre relationnelle et sql
Introduction au Modèle Relationnel
L'exemple suivant, relatif à la gestion simplifiée des étapes
du Tour de France 1997, va nous servir à introduire le
vocabulaire lié au modèle relationnel.
Algèbre relationnelle
Company Logo
9
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
10
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
11
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
12
Algèbre relationnelle et sql
Introduction :
•Comme nous pouvons le constater, le modèle
relationnel est un modèle d'organisation des données
sous forme de Tables (Tableaux de valeurs) ou
chaque Table représente une Relation, au sens
mathématique d'Ensemble.
Algèbre relationnelle
Company Logo
13
Algèbre relationnelle et sql
Introduction :
C'est ainsi que dans l'exemple présenté, figurent
l'ensemble des Equipes, des Coureurs, des Etapes, des
Temps réalisés par les coureurs à chacune des étapes,
et enfin l'ensemble des pays.
Algèbre relationnelle
Company Logo
14
Algèbre relationnelle et sql
Introduction :
• Les colonnes des tables s'appellent des attributs et les lignes
des n-uplets (où n est le degré de la relation, c'est à dire le
nombre d'attributs de la relation).
• Un attribut ne prend qu'une seule valeur pour chaque n-
uplet.
• L'ordre des lignes et des colonnes n'a pas d'importance.
Algèbre relationnelle
Company Logo
15
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
16
Algèbre relationnelle et sql
Introduction :
•Chaque table doit avoir une clé primaire constituée
par un ensemble minimum d'attributs permettant de
distinguer chaque n-uplet de la Relation par rapport à
tous les autres.
•Chaque ensemble de valeurs formant la clé primaire
d'un n-uplet est donc unique au sein d'une table.
C'est ainsi que dans la table COUREURS, chaque
coureur a un NuméroCoureur différent.
Algèbre relationnelle
Company Logo
17
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
18
Algèbre relationnelle et sql
Introduction :
•Les liens sémantiques (ou règles de gestion sur les
données) existants entre les ensembles sont réalisés
par l'intermédiaire de clés étrangères faisant elles-
mêmes référence à des clés primaires d'autres tables.
Algèbre relationnelle
Company Logo
19
Algèbre relationnelle et sql
Introduction :
C'est ainsi que dans la table COUREURS, la clé étrangère
CodeEquipe (faisant référence à la clé primaire de même
nom dans la table EQUIPES) traduit les deux règles de
gestion suivantes :
Algèbre relationnelle
Company Logo
20
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
21
Algèbre relationnelle et sql
Introduction :
•Il existe deux grands types de liens : Un -
Plusieurs (comme le précédent) et Plusieurs - Plusieurs.
•La réalisation de ce dernier type de liens, un peu plus
complexe, passe par l'utilisation d'une table
intermédiaire dont la clé primaire est formée des clés
étrangères des tables qu'elle relie.
Algèbre relationnelle
Company Logo
22
Algèbre relationnelle et sql
Introduction :
C'est ainsi que la table des TEMPS réalisés à chaque
étape par chacun des coureurs exprime les deux règles
de gestion suivantes :
1. Un COUREUR participe à plusieurs ETAPES
2. Une ETAPE fait participer plusieurs COUREURS
Algèbre relationnelle
Company Logo
23
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
24
Algèbre relationnelle et sql
Introduction :
Le modèle relationnel est le plus souvent décrit sous
la forme suivante, les clés primaires étant soulignées
et les clés étrangères marquées par un signe distinctif
(ici *).
Algèbre relationnelle
Company Logo
25
Algèbre relationnelle et sql
Introduction :
•On peut aussi le représenter sous forme graphique,
de manière à mieux visualiser et interpréter les liens :
Algèbre relationnelle
Company Logo
26
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
27
Algèbre relationnelle et sql
Introduction :
•Dans le cadre d'un projet d'informatisation, la
conception d'une base de données relationnelle passe
d'abord par l'identification des objets de gestion
(Coureurs, Etapes, …) et des règles de gestion du
domaine modélisé (interviews des utilisateurs, étude
des documents manipulés, des fichiers existants, …).
Algèbre relationnelle
Company Logo
28
Algèbre relationnelle et sql
Introduction :
Algèbre relationnelle
Company Logo
29
Algèbre relationnelle et sql
Opérations de base :
1. Projection
2. Sélection
3. Jointure
Algèbre relationnelle
Company Logo
30
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
31
Algèbre relationnelle et sql
NB :
•Cet opérateur ne porte que sur 1 relation.
•Il permet de ne retenir que certains attributs spécifiés
d'une relation.
•On obtient tous les n-uplets de la relation à
l'exception des doublons
Algèbre relationnelle
Company Logo
32
Algèbre relationnelle et sql
En Sql :
Opération PROJECTION
SELECT DISTINCT liste d'attributs FROM table ;
SELECT liste d'attributs FROM table ;
Algèbre relationnelle
Company Logo
33
Algèbre relationnelle et sql
En Sql :
Exemples :
SELECT DISTINCT Espèce FROM Champignons ;
Algèbre relationnelle
Company Logo
34
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
35
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
36
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
37
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
38
Algèbre relationnelle et sql
SELECT *
FROM ETUDIANT
WHERE Age BETWEEN 19 AND 23 ;
Algèbre relationnelle
Company Logo
40
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
43
Algèbre relationnelle et sql
Opération JOINTURE (équi-jointure : égalité) :
Formalisme : R = JOINTURE (R1, R2, condition
d'égalité entre attributs)
Exemple :
Algèbre relationnelle
Company Logo
44
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
45
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
46
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
47
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
48
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
49
50 Company Logo
Algèbre relationnelle et sql
Opération JOINTURE (équi-jointure) :
Avec Sql :
Exemple :
SELECT * FROM Produit, Détail_Commande
WHERE
[Link]=Détail_Commande.CodePrd ;
Algèbre relationnelle
Company Logo
51
Algèbre relationnelle et sql
Opération JOINTURE (équi-jointure) :
Avec Sql :
Exemple :
•Avec la clause INNER JOIN (jointure dite interne) à
partir du SQL2 , supportée aujourd'hui par tous les
SGBDR :
SELECT *
FROM table1 INNER
JOIN table2 ON table1.attribut1=table2.attribut1
INNER
JOIN table3 ON table2.attribut2=table3.attribut3... ;
Algèbre relationnelle
Company Logo
52
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
53
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
55
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
56
Algèbre relationnelle et sql
SELECT *
FROM table1 INNER JOIN table2 USING
(attribut1) ;
Algèbre relationnelle
Company Logo
57
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
58
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
59
Algèbre relationnelle et sql
Tous les produits apparaissent même si certains n'ont pas fait l'objet de commande
(exemple : 588J). Les colonnes manquantes sont alors complétées par des valeurs NULL.
Algèbre relationnelle
Company Logo
60
Algèbre relationnelle et sql
Opérations ensemblistes :
❖ Union
❖ Intersection
❖ Différence
❖ Produit
Algèbre relationnelle
Company Logo
61
Algèbre relationnelle et sql
Opérations ensemblistes :
Opération UNION
Formalisme : R = UNION (R1, R2)
Exemple :
CA : Conseil Administratif
Algèbre relationnelle
Company Logo
62
Algèbre relationnelle et sql
Opérations ensemblistes :
Opération UNION
On désire obtenir l'ensemble des enseignants élus au
CA ou représentants syndicaux.
CA : Conseil Administratif
Algèbre relationnelle
Company Logo
63
Algèbre relationnelle et sql
Opérations ensemblistes :
Opération UNION
NB :
•Cet opérateur 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.
Algèbre relationnelle
Company Logo
64
Algèbre relationnelle et sql
Opérations ensemblistes :
Opération UNION
NB :
•La relation résultat possède les attributs des relations
d'origine et les n-uplets de chacune, avec élimination
des doublons éventuels.
Algèbre relationnelle
Company Logo
65
Algèbre relationnelle et sql
Opérations ensemblistes :
Opération UNION en Sql :
Algèbre relationnelle
Company Logo
66
Algèbre relationnelle et sql
Opération INTERSECTION
Formalisme : R
= INTERSECTION (R1, R2)
Algèbre relationnelle
Company Logo
67
Algèbre relationnelle et sql
Opération INTERSECTION
NB :
•Cet opérateur 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.
Algèbre relationnelle
Company Logo
68
Algèbre relationnelle et sql
Opération INTERSECTION
Avec Sql :
•En SQL de base, plusieurs possibilités :
Algèbre relationnelle
Company Logo
69
Algèbre relationnelle et sql
Opération INTERSECTION
Avec Sql :
Algèbre relationnelle
Company Logo
70
Algèbre relationnelle et sql
Opération INTERSECTION
Avec Sql :
Algèbre relationnelle
Company Logo
71
Algèbre relationnelle et sql
Opération INTERSECTION
Exemple :
Algèbre relationnelle
Company Logo
72
Algèbre relationnelle et sql
Opération DIFFERENCE
Formalisme : R = DIFFERENCE (R1, R2)
Exemple :
Algèbre relationnelle
Company Logo
73
Algèbre relationnelle et sql
Opération DIFFERENCE
Exemple :
On désire obtenir la liste des enseignants du CA qui ne sont pas
des représentants syndicaux.
Algèbre relationnelle
Company Logo
74
Algèbre relationnelle et sql
Opération DIFFERENCE
NB :
•Cet opérateur 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 ! DIFFERENCE (R1, R2) ne donne pas le même
résultat que DIFFERENCE (R2, R1)
Algèbre relationnelle
Company Logo
75
Algèbre relationnelle et sql
Opération DIFFERENCE
Avec sql :
•En SQL de base, plusieurs possibilités :
Algèbre relationnelle
Company Logo
76
Algèbre relationnelle et sql
Opération DIFFERENCE
Avec sql :
SELECT attribut1, attribut2, ... FROM table1
WHERE attribut1 <> ALL (SELECT attribut1 FROM table2) ;
Algèbre relationnelle
Company Logo
77
Algèbre relationnelle et sql
Opération DIFFERENCE
Avec sql :
•ou encore, avec la jointure externe (SQL2) :
Algèbre relationnelle
Company Logo
78
Algèbre relationnelle et sql
Opération DIFFERENCE
Avec sql :
Exemple :
SELECT n°enseignant, NomEnseignant FROM E1
WHERE n°enseignant NOT IN (SELECT n°enseignant FROM
E2) ;
Ou
Algèbre relationnelle
Company Logo
79
Algèbre relationnelle et sql
Opération DIFFERENCE
Avec sql :
ou encore
Algèbre relationnelle
Company Logo
80
Algèbre relationnelle et sql
Opération DIFFERENCE
Avec sql :
Pour mieux comprendre cette dernière version, voici le résultat
renvoyé par la jointure externe gauche entre E1 et E2 :
Algèbre relationnelle
Company Logo
81
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
82
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
83
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
84
Algèbre relationnelle et sql
Exemple :
Algèbre relationnelle
Company Logo
85
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
86
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
88
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
89
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
91
Algèbre relationnelle et sql
Algèbre relationnelle
Company Logo
92
Exercice d'application n°1
Soit le modèle relationnel suivant relatif à une base de données sur des
représentations musicales :
REPRESENTATION (n°représentation, titre_représentation, lieu)
MUSICIEN (nom, n°représentation*)
PROGRAMMER (date, n°représentation*, tarif)
Remarque : les clés primaires sont soulignées et les clés étrangères sont
marquées par *
Questions :
1 - Donner la liste des titres des représentations.
2 - Donner la liste des titres des représentations ayant lieu à l'opéra
Bastille.
3 - Donner la liste des noms des musiciens et des titres des
représentations auxquelles ils participent.
4 - Donner la liste des titres des représentations, les lieux et les tarifs
pour la journée du 14/09/2020.
93 Company Logo
Opérations d’agrégation
❖ Fonctions d’agrégation
❖ Calculer
❖ Regrouper et calculer
94 Company Logo
Opérations d’agrégation
Les Fonctions d'agrégation
Elles sont utilisées dans les opérateurs calculer, regrouper et
calculer .
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
95 Company Logo
Opérations d’agrégation
Les Fonctions d'agrégation
Minimum(attribut) : plus petite valeur d'un attribut
Maximum(attribut) : plus grande valeur d'un attribut
96 Company Logo
Opérations d’agrégation
Les Fonctions d'agrégation : En sql
Les fonctions statistiques de base
SUM(attribut) : total des valeurs d'un attribut
AVG(attribut) : moyenne des valeurs d'un attribut
MIN(attribut) : plus petite valeur d'un attribut
MAX(attribut) : plus grande valeur d'un attribut
Remarque : les valeurs NULL sont ignorées.
97 Company Logo
Opérations d’agrégation
Les Fonctions d'agrégation : En sql
La fonction de comptage:
COUNT(*) : nombre de n-uplets
COUNT(DISTINCT attribut) : nombre de valeurs différentes de
l'attribut
98 Company Logo
Opérations d’agrégation
Opération CALCULER
SELECT fonction_agreg1(attribut1), fonction_agreg2(attribut2), ...
FROM table ;
Exemple :
SELECT SUM(Quantité*PuHt), SUM(Quantité)
FROM LIGNE_COMMANDE;
99 Company Logo
Opérations d’agrégation
Opération REGROUPER_ET_CALCULER
R=REGROUPER_ET_CALCULER(R0, att1, att2, ...,
fonction_agreg1, fonction_agreg2, ...)
Exemple :
Exemple :
SELECT Espèce, Catégorie, Conditionnement
FROM Champignons
ORDER BY Espèce DESC, Catégorie ASC, Conditionnement ASC ;
Remarque : par défaut le tri se fait par ordre croissant si l'on ne précise pas
ASC ou DESC.
Mr Ahmed OUQOUR
Enseignant chercheur
(Maths-Informatique)
Algèbre relationnelle
21/10/2024
2024/2025 109