Université BATNA 2
Faculté des Mathématiques et de l'informatique
L2 informatique 2021-2022 Module : Base de données
TD5 (l’Algèbre relationnelle)
Exercice 1 :
Soient les relations R et S suivantes:
B C
R A B S
b c
a b
e a
a f
b d
c b
g b
d e
Donnez les résultats des requêtes suivantes :
S2=B:D(S); RS2;
R⋈S; S1=C:A(S) ;
RS; RS ;
Exercice 2:
Soient les relations suivantes :
CJH (IdCours, Jour, Heure)
CS (IdCours, IdSalle)
Etudiant(IdEtudiant, Nom, Adresse)
Cours-Etudiant (IdCours, IdEtudiant, Note)
Ces quatre schémas forment le schéma de la base de données. Un exemple de valeur courante possible
pour la base de données figure ci-dessous.
CJH CS
IdCours Jour Heure IdCours IdSalle
Archi Di 10 h Archi S1
Algo Ma 10 h Algo S2
Algo Lu 10 h SE S1
SE Ma 13 h
Etudiant Cours-Etudiant
IdEtudiant Nom Adresse IdCours IdEtudiant Note
100 Ali Batna Archi 100 A
200 Med Setif Archi 300 A
300 Kader Batna SE 100 B
SE 200 A
SE 300 B
Algo 100 C
Algo 200 A
1. Donnez les résultats des requêtes suivantes :
R1 = IdCours (CJH)
R2 = IdEtudiant (Etudiant)
R IdCours = ’Algo’ (Cours-Etudiant).
R4=CJH ⋈ CS ([Link] = [Link]).
R5 = IdEtudiant, IdCours (cours-Etudiant)
R6 = R5 R1
R7 = R2 R1 : ensemble de toutes les inscriptions possibles
R8 = R7 – R5 : ensemble des inscriptions manquantes
R9 = IdEtudiant (R5) : liste des étudiants qui sont inscrits à certains cours
R10 = IdEtudiant (R8) : liste des étudiants qui ne sont pas inscrits à certains cours
R11 = R9 – R10 : liste des étudiants qui sont inscrits à tous les cours
2. Comparez le résultat de R6 avec celui de R11, que représente-t-il ?
3. Que peut-on déduire ?
Exercice 3 :
Soit le schéma relationnel suivant :
Catégorie (code_catégorie, nom_catégorie)
Fournisseur(NFournisseur, NomFournisseur, contact, ville, pays)
Produit (ref_produit, nom_produit, prix_unitaire, Qté_stock, NFournisseur, code_categorie)
Client (code_client, nom_client, ville, pays)
Employés (Nemployé, nomEmployé, prénom, fonction)
Commande (NCmde, date_cmde, date_envoie, lieu_livraison, code_client, Nemployé)
Détail_commande (ref_produit, NCmde, qté, prix_unitaire, remise )
Répondre aux requêtes suivantes en langage algébrique et en langage SQL :
1. Les produits dont la quantité en stock est inferieur à 10 ;
2. Les noms des fournisseurs de la ville de BOUIRA ;
3. La liste des clients étrangers ;
4. Les commandes (ncmde, date_cmde) passées durant le premier trimestre 2018 ;
5. Les fournisseurs qui ne fournissent aucun produit ;
6. Les clients qui ont commandé des produits de catégorie boisson ;
7. Les commandes (date et numéro) avec pour chaque commande les informations sur le client
(code, nom et pays) ainsi que sur l’employer qui a établi la commande (num, nom, prénom) ;
8. Les produits vendus avec remise ;
9. Chiffre d’affaire de l’employé Samari ;
10. Les fournisseurs qui fournissent tous les produits de catégorie ‘détergent’ ;
Exercice 3 :
Soient les relations suivantes :
Client (NCl, Nom, Adresse)
Produit (NProd, Libllé, Prix, QStock)
Commande (NCmde, #NCli, DateCom)
Detail (#NCmde, #NProd, QCom)
1. Que retourne la requête suivante ?
R1=[ NCli, NProd(Commande ⋈ Detail)] / [ NProd(Produit)]
R2= NCli (commande)
Res=R2-R1
2. Exprimer en Algèbre relationnelle la requête suivante :
Trouver les produits (Numéro et libellé) qui ont été commandé durant l’année 2020 par des
clients habitant `Batna`.
3. Que retourne la requête suivante ?
SELECT [Link] , COUNT (*)
FROM Commande C, Detail D
WHERE [Link]=[Link] and [Link]=’P045’
GROUPE BY [Link]
HAVING COUNT (*) >2
4. Exprimer en SQL la requête suivante :
Trouver le montant total des commandes pour chaque client habitant `Alger`.