CentraleSupélec LMF, UMR CNRS 9021
Département informatique Laboratoire Méthodes Formelles
Bât Breguet, 3 rue Joliot-Curie Bât 650 Ada Lovelace, Université Paris Sud
91190 Gif-sur-Yvette, France Rue Noetzlin, 91190 Gif-sur-Yvette, France
SIPTD1

Exercice 1

Director
Director_IDFirst_nameLast_name
54874521AlanPakula


Film
Film_IDTitleRelease_year
8654712The Pelican Brief1993


Note : {$_{fk(XYZ)}$} indique une clef étrangère faisant référence à une ligne de la table {$XYZ$}.

Film_Director
Director_ID{$_{fk(Director)}$}Film_ID{$_{fk(Director)}$}
548745218654712

Exercice 2

Variante 1

Idem que pour l'exercice 1. Nous ne pouvons pas imposer par la structure de la table que la cardinalité minimale de Director est 1, il faut ajouter une contrainte dans le modèle physique.

Variante 2

Director
Director_IDFirst_nameLast_nameFilm_ID{$_{fk(Film)}$}
54874521AlanPakula8654712


Film
Film_IDTitleRelease_year
8654712The Pelican Brief1993

La table Film_Director n'est pas nécessaire, il n'y a qu'un film par director.

Variante 3

Même structure que pour la variante 2, mais on ne peut pas imposer par la structure que chaque director dirige exactement un film. Il faut ajouter une contrainte au niveau de l'implémentation.

Variante 4

Même structure que pour la variante 2, mais on ne peut pas imposer par la structure que chaque director dirige exactement un film, et on ne peut pas imposer non plus que chaque film apparaisse comme film d'au moins un director. Il faut gérer ces contrainte au niveau de l'implémentation.

Variante 5

On peut garder la même structure, ou bien ajouter une colonne Director_ID à la table Film, mais il faut alors assurer la cohérence des colonnes Film_ID de Director et Director_ID de Film.

Exercice 3

Director
Director_IDFirst_nameLast_name
54874521AlanPakula


Film
Film_IDTitleRelease_yearDirector_ID{$_{fk(Director)}$}Team_ID{$_{fk(Team)}$}
8654712The Pelican Brief199354874521NULL


Team
Team_IDName
1247895Dream Team


Is_member
Team_ID{$_{fk(Team)}$}Director_ID{$_{fk(Director)}$}
124789554874521