Corrigé de l’exercices d’algèbre relationnelle : faire du cinéma

On considère les deux relations suivantes où les
clés sont soulignées et les clés étrangères sont en caractères gras :

* LESFILMS(TITRE, PAYS, ANNEE, REALISATEUR, DUREE)

* LESACTEURS(TITRE,ACTEUR)


Q1: Liste des films français (titre, année,
réalisateur).

	projection(titre, année, réalisateur;
sélection(pays='France', LESFILMS)

Q2: Donnez les années de sortie des films tournés par GABIN.

	projection(année; jointure(LESFILMS.titre=LESACTEURS.titre, LESFILMS;

sélection(acteur='Gabin'; LESACTEURS)))

Q3: Trouver les acteurs qui ont tourné avec TRUFFAUT comme
réalisateur.

	projection(acteur, jointure(LESFILMS.titre=LESACTEURS.titre; LESACTEURS;

sélection(réalisateur='Truffaut'; LESFILMS)))

Q4: Trouver tous les acteurs qui ont été partenaires de
DENEUVE.

	LESACTEURS1 := sélection(acteur='Deneuve';LESACTEURS)

RES := projection(LESACTEURS.acteur,
sélection(LESACTEURS1.titre=LESACTEURS.titre;
sélection(acteur!='Deneuve';LESACTEURS) X LESACTEURS1)))

Q5: Liste des films où le réalisateur est aussi acteur

	projection(LESFILMS.titre; sélection(acteur=réalisateur; 

jointure(LESFILMS.titre=LESACTEURS.titre;
LESFILMS; LESACTEURS)))

Q6: Réalisateurs ayant joué comme acteurs dans des films qu'ils ne réalisaient pas eux-mêmes.

    RES1 := projection(acteur;

sélection(acteur!=réalisateur;
jointure(LESFILMS.titre=LESACTEURS.titre; LESFILMS; LESACTEURS)))
RES1 donne les acteurs d'un film qui n'ont pas réalisé ce film.
RES2 := projection(LESFILMS; réalisateur)
RES2 donne les réalisateurs
RES := RES1 INTERSECTION RES2
RES donne les réalisateurs ayant joué comme acteurs dans des films qu'ils ne réalisaient pas eux-mêmes.

Q7: Réalisateurs qui ne jouent pas dans un de leur propre film.

	RES1 := projection(réalisateur; LESFILMS) intersection

projection(acteur; LESACTEURS)
RES1 donne les réalisateurs / acteurs.
RES2 := projection(LESFILMS.réalisateur;
sélection(acteur=réalisateur;
jointure(LESFILMS.titre=LESACTEURS.titre;
LESFILMS; LESACTEURS)))
RES2 donne les réalisateurs qui sont acteurs dans leur propre film.
RES := RES1 - RES2
RES donne les réalisateurs qui ne jouent pas dans un de leurs propres films.

Q8: Donnez les acteurs qui jouent dans tous les films de Truffaut.

	LESACTEURS / projection(titre; sélection(réalisateur='Truffaut;LESFILMS))