42 0 101KB
Institut Supérieur d'Informatique et de Mathématiques de Monastir
CORRECTION SERIE Algèbre Relationnelle Section : L2 Informatique
Matière : Ingénierie BD
Exercice 1 : Soit le schéma de la base de données de l'"Officiel des spectacles" suivant : SALLE (NOM, HORAIRE, TITRE#) FILM (TITRE, REALISATEUR) PRODUIT (PRODUCTEUR, TITRE#) VU (SPECTATEUR, TITRE#) AIME (SPECTATEUR#, TITRE#) PARTICIPE (ACTEUR, TITRE#) Où les attributs prennent leurs valeurs dans les domaines suivants : NOM -> noms de salles HORAIRE -> heures TITRE -> titres de films REALISATEUR, ACTEUR, PRODUCTEUR, SPECTATEUR, AMATEUR -> noms de personnes Question : Ecrire les requêtes suivantes en algèbre relationnelle : 1.
Où et à quelle heure peut-on voir le film "Out of Africa" ? R11 = Sélection (SALLE, {TITRE=’out of Africa’}) R1 = Projection (R11, {NOM, HORAIRE})
2.
Quels sont les films réalisés par Marcel Carné ? R21 = Sélection (FILM, {REALISATEUR =’Marcel Carné’}) R2 = Projection (R21, {TITRE})
3.
Quels sont les acteurs de "Mission" ?
Page 1/5
R31=Sélection(Participe,{TITRE=’Mission’}) R3 = Projection (R31, {ACTEUR}) 4.
Où peut-on voir un film où joue Arletty ? R41 = Sélection (PARTICIPE, {ACTEUR=’ Arletty’}) R42 = Jointure (R41, SALLE, {ACTEUR.TITRE = SALLE.TITRE}) R4 = Projection (R42, {NOM})
5.
Quels sont les acteurs qui ont produit un film ? R51 = Jointure (PARTICIPE, PRODUIT, {PARTICIPE.ACTEUR = PRODUIT.PRODUCTEUR}) R5 = Projection (R51, {ACTEUR})
6.
Quels sont les acteurs qui produisent un film dans lequel ils jouent ? R61 = Intersection (PARTICIPE, PRODUIT) R6 = Projection (R61, {R61.ACTEUR})
7.
Quels sont les acteurs qui jouent dans les films de Resnais ? R71 = Sélection (PRODUIT, {PRODUCTEUR=’ Resnais’}) R72 = Jointure (PARTICIPE, R71, {PARTICIPE.ACTEUR = PRODUIT.PRODUCTEUR}) R7 = Projection (R72, {PARTICIPE.ACTEUR})
8.
Quels acteurs jouent dans tous les films ? R81 = projection (FILM, {TITRE}) R8 = Division (PARTICIPE, R81}
9.
Quels acteurs jouent dans tous les films de Tati ? R91 = Sélection (FILM, {REALISATEUR = ‘Tati’}) R92 = Projection (R91, {TITRE}) R9 = Division (PARTICIPE, R92}
10. Qui produit tous les films de Tarkowski ? R101 = Sélection (FILM, {REALISATEUR = ‘Tarkowski’})
Page 2/5
R102 = Projection (R101, {TITRE}) R10 = Division (PRODUIT, R102) 11. Quels spectateurs ont vu tous les films ? R111 = Projection (FILM, {TITRE}) R11 = Division (Vu, R111) 12. Quels sont les spectateurs qui aiment tous les films qu'ils ont vus ? R121 = Agrégat (AIME, {SPECTATEUR, COMPTE(TITRE) nbFilm}) R122 = Agrégat (VU, {SPECTATEUR, COMPTE(TITRE) nbFilm}) R123 = Intersection (R121, R122) R12 = Projection (R123, {SPECTATEUR}) 13. Où peut-on voir Christophe Lambert après 16h ? R131 = Sélection (SALLE, {TITRE = {‘Christophe Lambert’, HORAIRE > 16}) R13 = Projection (R131, {NOM}) 14. Quels films ne passent dans aucune salle ? R141 = Projection (FILM, {TITRE}) R142 = Projection (SALLE, {TITRE}) R14 = Différence (R141, R142) 15. Qui produit les films qui ne passent dans aucune salle ?
R151 = Différence (R141, R142) R152 = Jointure (R151, PRODUIT, {R151.TITRE = Produit.TITRE}) R15= Projection (R152, {PRODUCTEUR})
16. Quels sont les producteurs qui ont vu tous les films qu'ils produisent ? R161 = Intersection (PRODUIT, VU) R162 = Agrégat (PRODUIT, {PRODUCTEUR, COMPTE(TITRE) nbFilm}) R163 = Agrégat (R161, {PRODUCTEUR, COMPTE(TITRE) nbFilm}) Page 3/5
R164 = Intersection (R162, R163) R16 = Projection (R164, {PRODUCTEUR}) Exercice 2 : Une association dispose d'un certain nombre de centres sportifs où ses adhérents peuvent s'inscrire en vue de la pratique de sports. Chaque personne ne peut s’inscrire que dans un seul centre. Pour la gestion de ses installations elle dispose d'une base de données de schéma S1 : Pratique (Personne#, Sport) Est_Membre (Personne, Centre_Sportif#) Propose (Centre_Sportif, Sport) Question : Exprimez les requêtes suivantes en algèbre relationnelle : 1.
Quels centres sportifs proposent au moins un sport pratiqué par Pierre ?
R11 = Sélection (PRATIQUE, {Personne = {‘Pierre’}) R12 = Jointure (PROPOSE, R11, {PROPOSE.Sport = R11.Sport}) R1 = Projection (R12, {Centre_Sportif}) 2.
Quels centres sportifs proposent tous les sports pratiqués par Henri ?
R21 = Sélection (PRATIQUE, {Personne = {Henri’}) R22 = Projection (R21, {Sport}) R2 = Division (PROPOSE, R22) 3.
Quels centres sportifs proposent tous les sports pratiqués par chacun de leurs membres ?
// Pour tous les centres sportifs, on récupère tous les sports qui sont pratiqués par leur membres : R31 = Jointure (PROPOSE, EST-MEMBRE, {PROPOSE.Centre_sportif = EST_MEMBRE. Centre_sportif}) R32 = Jointure (R31, PRATIQUE, {EST_MEMBRE.Personne = PRATIQUE.Personne}) // Maintenant, pour être sûr que ces personnes sont des membres des centres sportifs à sélectionner : R33 = Projection (R32, {EST_MEMBRE.Personne, EST-MEMBRE. Centre-sportif}) R34 = Intersection (EST-MEMBRE, R33) // Puis, on calcul le nombre de membres pour chaque centre dans R34 et on la compare avec celui dans EST-MEMBRE : Page 4/5
R35 = Agrégat (R34, {R34.Centre-sportif, COMPTE(Personne) nbMembres}) R36 = Agrégat (EST-MEMBRE, {Centre-sportif, COMPTE(Personne) nbMembres}) R37 = Intersection (R35, R36) R3 = Projection (R37, {centre-sportif}) 4.
Quels sports offerts par l'association ne sont pas proposés par le centre Les Joyeux Musclés ?
R41 = Sélection (PROPOSE, {centre_sportif = ‘Les Joyeux Musclés’}) R42 = Projection (R41, {Sport}) R43 = Projection (PRATIQUE, {Sport}) R4 = Différence (R43, R42) 5.
Quels centres sportifs proposent au moins deux sports pratiqués par Louis ?
R51 = Sélection (PRATIQUE, {Personne = ‘Louis’}) R52 = Projection (R51, {sport} R53 = Jointure (PROPOSE, R52, {PROPOSE.Sport = R52.Sport}) R54 = Agrégat (R53, {centre_sportif, COMPTE(Sport) nbSport}) R55 = Sélection (R54, {nbsport>2}) R5 = Projection (R55, {centre_sportif}) 6.
Quels centres sportifs proposent les sports pratiqués par Jacques et Jean ?
R61 = Sélection (PRATIQUE, {Personne = ‘Jacques’ ou Personne =’Jean’}) R62 = Jointure (R61, PROPOSE, {R61.Sport = PROPOSE.Sport}) R6 = Projection (R62, {centre_sportif})
Page 5/5