Faire du Cinéma
[30 minutes]
On considère les deux relations suivantes :
FILMS (titre:string, pays:string, année:integer(4), réalisateur:string, durée:integer(3))
ACTEURS (titre:string, acteur:string)
La relation FILMS donne pour chaque film, identifié par son titre, le pays, l'année de sortie, réalisateur et la durée.
La relation ACTEURS donne pour chaque film l'ensemble des principaux acteurs.
À l'aide de l'algèbre relationnelle, exprimer les requêtes ci-après.
Question
Lister les films français (titre, année, réalisateur).
Solution
R1 = Restriction(FILMS, FILMS.pays='France')
R = Projection(R1, R1.titre, R1.année, R1.réalisateur)
Question
Donnez les années de sortie des films dans lesquels l'acteur Jean GABIN a joué.
Solution
R1 = Restriction (ACTEURS, ACTEURS.acteur='Gabin')
R2 = Jointure (R1, FILMS, R1.titre=FILMS.titre)
R = Projection(R2, R2.année)
Question
Trouver les acteurs qui ont tourné avec François Truffaut comme réalisateur.
Solution
FilmsDeTruffaut = Restriction (FILMS, FILMS.réalisateur='Truffaut')
ActeursDesFilmsDeTruffaut = Jointure (FilmsDeTruffaut, ACTEURS, FilmsDeTruffaut.titre=ACTEURS.titre)
Resultat = Projection (ActeursDesFilmsDeTruffaut, ActeursDesFilmsDeTruffaut.acteur)
Question
Lister les films dans lesquels le réalisateur est aussi acteur.
Solution
R1 = Jointure (FILMS, ACTEURS, FILMS.titre=ACTEURS.titre)
R2 = Restriction (R1, R1.acteur=R1.realisateur)
R = Projection (R2, R2.titre)
Question
Trouver tous les acteurs qui ont été partenaires de l'actrice Catherine Deneuve.
Solution
R1 = Restriction (ACTEURS, ACTEURS.acteur<>'Deneuve')
R2 = Restriction (ACTEURS, ACTEURS.acteur='Deneuve')
RES1 = Jointure (R1, R2, R1.titre=R2.titre)
R = Projection (RES1, RES1.acteur)
Question
Lister les réalisateurs n'ayant joué comme acteurs que dans des films qu'ils ne réalisaient pas eux-mêmes.
Solution
R1 = Projection (ACTEURS, ACTEURS.acteur)
R2 = Projection (FILMS, FILMS.réalisateur)
RES1 = Intersection (R1, R2)
RES1 donne les réalisateurs qui sont aussi des acteurs.
R3 = Jointure (FILMS, ACTEURS, FILMS.titre=ACTEURS.titre AND FILMS.realisateur=ACTEURS.acteur)
RES2 = Projection (R3, R3.acteur)
RES2 donne les acteurs qui ont joué dans des films qu'ils ont réalisés.
R = Difference (RES1, RES2)
Question
Lister les réalisateurs ayant joué comme acteurs dans des films qu'ils ne réalisaient pas eux-mêmes.
Solution
R1 = Jointure (FILMS, ACTEURS, FILMS.titre=ACTEURS.titre)
R2 = Restriction (R1, R1.acteur<>R1.realisateur)
RES1 = Projection (R2, R2.acteur)
RES1 représente tous les acteurs qui jouent dans des films qu'ils n'ont pas réalisés.
RES2 = Projection (FILMS, FILMS.réalisateur)
RES2 représente tous les réalisateurs.
R = Intersection (RES1, RES2)
Question
Donnez les acteurs qui jouent dans tous les films de François TRUFFAUT.
Solution
R1 = Restriction (FILMS, FILMS.réalisateur='Truffaut')
R2 = Projection(R1, R1.titre)
R = Division (ACTEURS, R2)