Vous êtes sur la page 1sur 5

I.U.T.

de Nice Cte dAzur Dpartement Informatique

2002-2003

S.G.B.D. 1
TD n 4 Exercices sur lAlgbre relationnelle
-- CORRIGE --

Objectif : manipuler les oprateurs algbriques, exprimer des requtes dans le langage algbrique, utiliser les arbres dexpression pour optimiser les requtes.

Dans la suite du TD, nous allons considrer les schmas de relations suivantes avec leurs significations intuitives :

CJH (IdCours, Jour, Heure)


Le cours dont lidentifiant apparat dans la premire composante dun n-uplet a lieu le jour spcifi dans la deuxime composante, lheure qui apparat dans la troisime composante.

CS (IdCours, IdSalle)
Le cours de la premire composante a lieu dans la salle indique dans la seconde composante.

ENA (IdEtudiant, Nom, Adresse)


Les tudiants dont lidentifiant apparat comme la premire composante dun n-uplet ont un nom et une adresse qui apparaissent respectivement dans la deuxime et troisime composante.

CEN (IdCours, IdEtudiant, Note)


Ltudiant de la deuxime composante a obtenu la note spcifie dans la troisime composante au cours spcifi dans la premire composante. Ces quatre schmas forme le schma de la base de donnes qui servira pour les exercices. Un exemple de valeur courante possible pour la base de donnes figure ci-dessous. CJH IdCours Archi Algo Algo Syst Jour Lu Ma Ve Ma Heure 9h 9h 9h 14h CS IdCours Archi Algo Syst IdSalle S1 S2 S1

ENA

IdEtudiant 100 200 300

Nom Toto Tata Titi

Adresse Nice Paris Rome

CEN

IdCours Archi Archi Syst Syst Syst Algo Algo

IdEtudiant Note 100 A 300 A 100 B 200 A 300 B 100 C 200 A

1.
1.1.

Les oprateurs algbriques


Donner les rsultats des projections suivantes : R1 = CJH (IdCours) R2 = ENA (IdEtudiant)
R1 IdCours Archi Algo Syst R2 IdEtudiant 100 200 300

1.2.

Donner le rsultat R3 de la restriction CEN (IdCours = Algo).


R3 IdCours Algo Algo IdEtudiant 100 200 Note C A

1.3.

Donner le rsultat R4 de la jointure CJH CS (CJH.IdCours = CS.IdCours).


R4 IdCours Archi Algo Algo Syst Jour Lu Ma Ve Ma Heure 9h 9h 9h 14h IdSalle S1 S2 S2 S1

1.4.

Donner le rsultat R6 de la suite doprations suivante : R5 = CEN (IdEtudiant, IdCours) R6 = R5 R1


R6 = { x R5 (IdEtudiant) tel que (x, u) R5 pour tout u R1 } R5 IdEtudiant 100 300 100 200 300 100 200 IdCours Archi Archi Syst Syst Syst Algo Algo R6 IdEtudiant 100

1.5.

Donner le rsultat R11 de la suite doprations suivante : 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
R7 IdEtudiant 100 100 100 200 200 200 300 300 300 IdCours Archi Algo Syst Archi Algo Syst Archi Algo Syst R11 IdEtudiant 100 R8 IdEtudiant 200 300 IdCour s Archi Algo 100 200 300 200 300 R9 IdEtudiant R10 IdEtudiant

1.6.

Comparez le rsultat de 1.4 avec celui de 1.5, que reprsente-t-il ?


Le rsultat est le mme, cest lensemble des tudiants qui suivent tous les cours.

1.7.

En sinspirant de 1.5, montrer que la division peut tre obtenue partir de la diffrence, du produit cartsien et de la projection.
Soient les deux relations R1 (A, B) et R2 (B) o A et B peuvent tre des groupe dattributs. La division de R1 par R2 peut sobtenir comme suit : R1 R2 = R3 R6 avec : R3 = R1 (A) R4 = R3R2 R5 = R4 R1 R6 = R5(A)

2.
2.1.

Le langage algbrique
Donner les noms des tudiants qui suivent le cours Algo.
R1 = CEN ENA (CEN.IdEtudiant = ENA.IdEtudiant) R2 = R1 (IdCours = Algo) RES = R2 (Nom)

Exprimer les requtes ci-dessous dans le langage algbrique.

2.2.

Donner les notes en Archi des tudiants dont le nom est Titi.
R1 = CEN ENA (CEN.IdEtudiant = ENA.IdEtudiant) R2 = R1 (IdCours = Archi) R3 = R2 (Nom = Titi) RES = R3 (Note)

2.3.

Donner les couples (jour, heure) pour lesquels la salle S1 est occupe par un cours.
R1 = CS CJH (CS.IdCours = CJH.IdCours) R2 = R1 (IdSalle = S1) RES = R2 (Jour, Heure)

2.4.

Donner les identifiants des tudiants qui nont que des notes A
R1 = CEN (Note = A) R2 = CEN (Note <> A) R3 = R1 R2 RES = R3 (IdEtudiant)

2.5.

Donner la salle o se trouve Toto le lundi 9h.


R1 = CEN ENA (CEN.IdEtudiant = ENA.IdEtudiant) R2 = R1 CJH (R1.IdCours = CJH.IdCours) R3 = R2 CS (R2.IdCours = CS.IdCours) R4 = R3 (Nom = Toto) R5 = R4 (Jour = Lu) R6 = R5 (Heure = 9h) RES = R6 (IdSalle)

3.
3.1.

Les arbres dexpression algbrique


Dessinez larbre dexpression de la requte 2.1, fates descendre la restriction aussi bas que vous pouvez.

(Nom)

(Nom)

(IdCours=Algo')

(IdCours=Algo')

ENAT

CEN

ENAT

CEN Descente de restriction

3.2.

Dessinez larbre dexpression de la requte 2.5, fates descendre les restrictions et les projections aussi bas que vous pouvez.
Arbre dexpression de la requte 2.5 :

(IdSalle) (Heure=9h) (Jour=Lu) (Nom=Toto')

CS

CJH

CEN

ENAT

Descente des restrictions et des projections :

(IdSalle)

CS

(IdCours)

(IdCours) (Heure=9h) (Jour=Lu)

CEN

(IdEtudiant) (Nom=Toto)

CJH

ENAT