Master1, ESC, 2011/2012 UE : Introduction aux Bases de Données ...

TD N°5 : corrige Algèbre relationnelle. Exercice 1. Considérons le schéma de
relations suivant. Cours (IdCours, Jour, Heure). Se deroule (IdCours, IdSalle). E
tudiant (IdEtudiant, Nom, Adresse). note (IdCours, IdEtudiant, Note). Ces quatre
schémas forme le schéma de la base de données qui servira pour l'exercice.

Part of the document


Master1, ESC, 2011/2012 UE : Introduction aux Bases de Données TD N°5 : corrige Algèbre relationnelle Exercice 1 Considérons le schéma de relations suivant
Cours (IdCours, Jour, Heure)
Se deroule (IdCours, IdSalle)
Etudiant (IdEtudiant, Nom, Adresse)
note (IdCours, IdEtudiant, Note)
Ces quatre schémas forme le schéma de la base de données qui servira pour
l'exercice. Un exemple de valeur courante possible pour la base de données
figure ci-dessous.
[pic]
1- Donner les résultats des projections suivantes :
R1 = ?Cours (IdCours)
R2 = ?Etudiant (IdEtudiant) R1
|IdCours |
|Archi |
|Algo |
|Syst |
R2
|IdEtudia|
|nt |
|100 |
|200 |
|300 |
. Donner le résultat R3 de la restriction ?note (IdCours = 'Algo').
. R3
|IdCours |IdEtudiant |Note |
|Algo |100 |C |
| |200 |A |
|algo | | |
. Donner le résultat R4 de la jointure Cours × Sederoule (cours.IdCours
= Sederoule.IdCours).
[pic]
. R5 = ?note (IdEtudiant, IdCours)
. R6 = R5 ÷ R1 R6 = { x ? ?R5 (IdEtudiant) tel que (x, u) ? R5 pour tout
u ? R1 }
[pic]
. R7 = R2 × R1 : ensemble de toutes les inscriptions possibles
. R8 = R7 - R5 : ensemble des inscriptions manquantes
. R9 = ?R5 (IdEtudiant) : liste des étudiants qui sont inscrits à
certains cours
. R10 = ?R8 (IdEtudiant) : liste des étudiants qui ne sont pas inscrits
à certains cours
. R11 = R9 - R10 : liste des étudiants qui sont inscrits à tous les
cours
[pic]
2- Exprimer les requêtes ci-dessous dans le langage algébrique.
. Donner les noms des étudiants qui suivent le cours 'Algo'.
. R1 = note × Etudiant (note.IdEtudiant = etudiant.IdEtudiant)
. R2 = ?R1 (IdCours = 'Algo')
. RES = ?R2 (Nom)
. Donner les notes en 'Archi' des étudiants dont le nom est 'Titi'.
. R1 = note × etudiant (note.IdEtudiant = etudiant.IdEtudiant)
. R2 = ?R1 (IdCours = 'Archi')
. R3 = ?R2 (Nom = 'Titi')
. RES = ?R3 (Note)
. Donner les identifiants des étudiants qui n'ont que des notes 'A'
. R11 = ?note (Note = 'A')
. R1= ?R11 (IdEtudiant)
. R21 = ?note (Note 'A')
. R2= ?R21 (IdEtudiant)
. Res = R1 - R2
. Donner les couples (jour, heure) pour lesquels la salle 'S1' est
occupée par un cours
R1 = cours × sederoule (cours.CS.IdCours = sederoule.IdCours)
R2 = ?R1 (IdSalle = 'S1')
RES = ?R2 (Jour, Heure) Exercice 2
Soit les relations Employé(numSécu, nom, prénom, salaire). Ami(nom,
prénom, adresse, âge) Donnez une expression algébrique quand on souhaite
trouver :
1. tous les employés. R1= employé ou bien R1=?Employé(numSécu, nom,
prénom, salaire)
2. tous les nom et prénom de ses amis R2=?Ami(nom, prénom)
3. tous les employés qui ont un salaire dépassant 15000. R3 =
?Employé(salaire>=15000)
4. l'employé dont le numéro de sécurité sociale est 1 63 03 06 081 028
11. R4 = ?Employé(numSécu =1 63 03 06 081 028 11)
5. tous les nom, adresse et âge de ses amis qui ont moins de 25 ans.
R5 = ?ami(age=1000 and salaire