Algèbre relationnel et langage SQL
Prof : A.CHAFIK
CPGE TETOUAN
MPSI-TSI
[email protected]
18 mars 2025
Introduction Projection Sélection Opérations ensemblistes Jointure
L’algèbre relationnelle est un langage formel,abstrait, et mathématique que
l’on peut appliquer à des relations, et dont le résultat est une relation.
1/30
Introduction Projection Sélection Opérations ensemblistes Jointure
L’algèbre relationnelle est un langage formel,abstrait, et mathématique que
l’on peut appliquer à des relations, et dont le résultat est une relation.
SQL (Structured Query Language) est un langage de programmation utilisé
pour gérer et manipuler des bases de données relationnelles
1/30
Introduction Projection Sélection Opérations ensemblistes Jointure
L’algèbre relationnelle possède plusieurs opérateurs :
certains sont ensemblistes (selon la théorie des ensembles)
d’autres sont relationnels (spécifiques à l’algèbre relationnelle)
On peut aussi classer les opérateurs selon qu’ils s’appliquent à une ou à plu-
sieurs relations (tables).
2/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Le langage SQL permet d’interroger une base de données à l’aide de la com-
mande SELECT.
Cette commande permet de :
récupérer certaines colonnes (SELECT)
de certaines tables (FROM)
récupérer certaines lignes (WHERE)
regrouper certaines lignes (GROUP BY)
filtrer après le regroupement (HAVING)
trier les résultats (ORDER BY)
limiter le nombre d’enregistrements retournés (LIMIT)
3/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Schéma relationnel exemple
4/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Projection
La projection sur une relation (table) R génère une relation T regroupant exclu-
sivement toutes les occurrences de la relation R réduites aux attributs R1 , ..., R P ,
en supprimant les doublons.
Notation
T = Π R1 ,...,RP ( R) = {ligne[ R1 , ..., R P ]|ligne ∈ R}
avec R1 , ..., R P sont des attributs (colonnes) de R.
5/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Requête SQL :
SELECT R1 , ..., R p FROM R
ou bien
SELECT DISTINCT R1 , ..., R p FROM R
Le mot clé DISTINCT permet de supprimer les doublons.
6/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Projection
Projection
Exemple : Noms et villes de tous les clients ?
Πnom , adresse (Client)
7/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Projection
Projection
Exemple : Noms et villes de tous les clients ?
Πnom , adresse (Client)
SELECT DISTINCT nom , adresse From Client
7/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Projection
Projection
Exemple : Noms et villes de tous les clients ?
Πnom , adresse (Client)
SELECT DISTINCT nom , adresse From Client
Relation résultante
Nom Adresse
Durand Nice
Fabre Paris
Prosper Paris
Antonin Marseille
7/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Projection
Projection
Exemple : Afficher toutes les informations des clients ?
Client
SELECT * From Client
8/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Sélection
La sélection sur une relation R définit une relation T de même schéma qui ne
contient que les tuples (lignes) de R qui satisfont à la condition (ou prédicat)
spécifiée.
T = σcondition ( R) = {ligne ∈ R| ligne satis f ait condition}
9/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
La condition (prédicat) est une expression logique faisant intervenir :
les colonnes de la table (attributs)
des constantes
les opérateurs de comparaison =, ̸= , <, >, ≤, ≥
les opérateurs logique ET (∧), OU (∨), NON (¬) pour faire la
combinaison de plusieurs conditions.
10/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Sélection
Exemple : Quels sont les clients qui habitent à Paris ?
11/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Sélection
Exemple : Quels sont les clients qui habitent à Paris ?
σadresse = Paris (Client)
11/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Sélection
Exemple : Quels sont les clients qui habitent à Paris ?
σadresse = Paris (Client)
Relation résultante : même schéma que la table Client
Numéro Nom Adresse Téléphone
106 Fabre Paris
110 Prosper Paris
11/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Requête Sélection en SQL
SELECT R1 , ..., R p FROM R WHERE conditions
12/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Requête Sélection en SQL
SELECT R1 , ..., R p FROM R WHERE conditions
La condition, en SQL, peut contenir les comparateurs :
= ou ! = (ou bien <>)
>, <, ≥, ≤
AND, OR, NOT
LIKE ’modèle’
IN (valeur1 ,. . . , valeur N )
BETWEEN . . . AND . . .
IS NULL, IS NOT NULL
12/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Sélection
Exemple : Quels sont les clients qui habitent à Paris ?
σadresse = Paris (Client)
13/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Sélection
Exemple : Quels sont les clients qui habitent à Paris ?
σadresse = Paris (Client)
SELECT * FROM Client WHERE adresse= ’Paris’ ;
13/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Exercice
1 Afficher les client qui habitent à Paris ou Nice
14/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Exercice
1 Afficher les client qui habitent à Paris ou Nice
2 Afficher les ventes du client n°120 du 20 oct 2004
14/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Exercice
1 Afficher les client qui habitent à Paris ou Nice
2 Afficher les ventes du client n°120 du 20 oct 2004
3 Afficher les clients qui n’habitent pas à Nice.
14/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Exercice
1 Afficher les client qui habitent à Paris ou Nice
2 Afficher les ventes du client n°120 du 20 oct 2004
3 Afficher les clients qui n’habitent pas à Nice.
4 Afficher en SQL les clients dont le numéro de téléphone commence par
’0661’ et dont l’adresse est indéterminée
14/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Sélection
Exercice
1 Afficher les client qui habitent à Paris ou Nice
2 Afficher les ventes du client n°120 du 20 oct 2004
3 Afficher les clients qui n’habitent pas à Nice.
4 Afficher en SQL les clients dont le numéro de téléphone commence par
’0661’ et dont l’adresse est indéterminée
5 Afficher les clients dont le deuxième caractère du nom est un z
14/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Union
Union
Opération binaire ensembliste commutative.
Notation : R1 ∪ R2
Contraintes R1 et R2 doivent avoir les mêmes attributs
15/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Union
Union
Opération binaire ensembliste commutative.
Notation : R1 ∪ R2
Contraintes R1 et R2 doivent avoir les mêmes attributs
Résultats génère une relation regroupant exclusivement toutes les
occurrences de la relation R1 et celles de le relation R2
15/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Union
Union :
16/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Union :
Requête SQL :
SELECT . . . FROM . . . WHERE . . .
UNION | UNION ALL
SELECT . . . FROM . . . WHERE . . .
UNION ALL permet de garder les répétitions lors de calcul de la réunion.
17/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Exemple :
Imaginons une entreprise qui possède deux magasins et une table de clients
pour chacun :
magasin1_client (idClient, nom, prénom, adresse, tel)
magasin2_client (idClient, nom, prénom, adresse, tel)
Afficher les informations sur tous les clients de l’entreprise
18/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Exemple :
Imaginons une entreprise qui possède deux magasins et une table de clients
pour chacun :
magasin1_client (idClient, nom, prénom, adresse, tel)
magasin2_client (idClient, nom, prénom, adresse, tel)
Afficher les informations sur tous les clients de l’entreprise
SELECT * FROM magasin1_client
UNION
SELECT * FROM magasin2_client
18/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Intersection
Intersection
Opération binaire ensembliste commutative.
Notation : R1 ∩ R2
Contraintes R1 et R2 doivent avoir les mêmes attributs
19/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Intersection
Intersection
Opération binaire ensembliste commutative.
Notation : R1 ∩ R2
Contraintes R1 et R2 doivent avoir les mêmes attributs
Résultats génère une relation regroupant exclusivement toutes les
occurrences qui existe à la fois dans la relation R1 et dans la relation R2
19/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Intersection
Intersection :
20/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Intersection :
Requête SQL :
SELECT . . . FROM . . . WHERE . . .
INTERSECT
SELECT . . . FROM . . . WHERE . . .
21/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Différence
Différence
Opération binaire ensembliste commutative.
Notation : R1 − R2
Contraintes R1 et R2 doivent avoir les mêmes attributs
22/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Différence
Différence
Opération binaire ensembliste commutative.
Notation : R1 − R2
Contraintes R1 et R2 doivent avoir les mêmes attributs
Résultats génère une relation regroupant exclusivement toutes les
occurrences de la relation R1 et qui n’existe pas dans le relation R2
22/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Différence :
Requête SQL :
SELECT . . . FROM . . . WHERE . . .
EXCEPT
SELECT . . . FROM . . . WHERE . . .
Dans certains systèmes de gestion de base de données (SGBD) on trouve l’opé-
rateur MINUS au lieu d’EXCEPT.
23/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Exemple :
Soit les relations (tables) :
Eleves (idEleve , Nom, Prenom, Ville, Tel, NoteBac, dateNaissance,
classe)
Emprunter (#idEleve, #idLivre, date, duree)
En SQL et en Algèbre relationnel, afficher idEleve des élèves qui n’ont jamais
empruntés des livres
24/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Exemple :
Soit les relations (tables) :
Eleves (idEleve , Nom, Prenom, Ville, Tel, NoteBac, dateNaissance,
classe)
Emprunter (#idEleve, #idLivre, date, duree)
En SQL et en Algèbre relationnel, afficher idEleve des élèves qui n’ont jamais
empruntés des livres
SELECT idEleve FROM Eleves
EXCEPT
SELECT idEleve FROM Emprunter
24/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Produit cartésien
Produit cartésien
Opération binaire ensembliste commutative.
Notation : R1 × R2
25/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Produit cartésien
Produit cartésien
Opération binaire ensembliste commutative.
Notation : R1 × R2
Résultats génère est une nouvelle relation qui a tous les attributs de R1
et ceux de R2 regroupant exclusivement toutes les combinaisons
possible des occurrences des relation R1 et R2 .
25/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Produit cartésien :
Requête SQL :
SELECT Table1.c1, Table1.c2, ...,
Table2.c1, Table2.c2, ..., Table2.cm
FROM Table1 , Table2
26/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Exercice : Décrivez chaque relation et donnez son équivalent en SQL
R1 = σadresse = Paris (Client)
R2 = ΠNom ( R1)
R3 = σmarque = BMW ( Produit)
R4 = R3 × R2
27/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Jointure
Jointure
Opération binaire commutative.
Notation : T = R ▷◁ S
R1.Ci = R2.Cj
Résultat La jointure de deux tables R et S selon une condition P est la
table T contenant l’ensemble des lignes du produit cartésien R x S
satisfaisant la condition P.
28/30
Introduction Projection Sélection Opérations ensemblistes Jointure
Jointure :
Requête SQL :
SELECT * FROM R JOIN S ON R.colonne1= S.colonne2 ;
29/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Jointure
Exercice
1 Afficher les noms des client avec les dates de leurs achats
30/30
Introduction Projection Sélection Opérations ensemblistes Jointure
opérateur : Jointure
Exercice
1 Afficher les noms des client avec les dates de leurs achats
2 Afficher pour le client numéro 125, le numéro de de vente et la marque
des produits achetés.
30/30