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))