CPGE Oujda Spé
EXERCICE ALGEBRE RELATIONNELLE
Faire du Cinéma ...
On considère les deux relations suivantes où les clés sont en caractères gras :
* LESFILMS(TITRE, PAYS, ANNEE, REALISATEUR, DUREE)
* LESACTEURS(TITRE,ACTEUR)
et où les attributs ont les significations et les types suivants:
-TITRE : titre d'un film (chaine 50 caractères)
-PAYS : pays d'où un film est originaire (chaine 10 caractères)
-ANNEE : année de sortie du film (entier 4 chiffres)
-REALISATEUR: Nom du réalisateur du film (chaine 20 caractères)
- DUREE : durée du film en mn (entier 3 chiffres)
-ACTEUR : Nom d'acteur (chaine 20 caractères)
La relation LESFILMS donne pour chaque film identifié par son titre, le pays , l'année de sortie, réalisateur et la durée.
La relation LESACTEURS donne pour chaque film l'ensemble des principaux acteurs.
A l'aide de l'algèbre relationnelle exprimer les requêtes suivantes:
Q1: Liste des films français (titre, année, réalisateur).
Q2: Donnez les années de sortie des films tournés par GABIN.
Q3: Trouver les acteurs qui ont tourné avec TRUFFAUT comme réalisateur.
Q4: Liste des films où le réalisateur est aussi acteur
Q5: Donnez les acteurs qui jouent dans tous les films de Truffaut.
CORRIGE EXERCICE ALGEBRE RELATIONNELLE
Faire du Cinéma ..
On considère les deux relations suivantes où les clés 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))