TD2 - fil

Transcription

TD2 - fil
L3 MIAGE – 2015/2016
TD2 – Bases de données
septembre 2015
Exercice 1 :
On demande à quelques personnes d’aller à des séances de cinéma et de donner leur avis.
Celui-ci peut varier entre ’tres bon’,’pas mal’,’moyen’,’mauvais’,’sans avis’. Leurs
réponses sont stockées dans une base de données dont voici le schéma :
CINEMA(c_ref,nom,adresse)
FILM(f_ref,titre,annee)
SPECTATEUR(s_ref,nom,prenom,adresse,datenaiss)
SEANCE(s_ref,refcinema,horaire,reffilm)
ASSISTE(refspectateur,refseance,avis)
Question 1.1 : Représentez le modèle de données sous la forme d’un MCD ou d’un diagramme
de classes. Quelle alternative peut-on donner à la relation entre SEANCE et SPECTATEUR ?
Question 1.2 : Donnez les instructions SQL qui permettent de créer le schéma de cette base
de données.
Question 1.3 : Ecrivez en SQL les requêtes suivantes :
1. Quels sont les films de 2006 ?
2. Où et quand peut-on voir le film “Le vent se lève” ? (Donner les noms des cinémas et
les horaires des séances.)
3. Combien de spectateurs sont allés à la séance de référence 123 ?
4. Quel est la moyenne du nombre de spectateurs par séance ?
5. Donner la liste des spectateurs avec le nombre de séances auxquelles ils sont allés.
6. Quels sont les noms des spectateurs qui ont trouvé mauvais tous les films qu’ils ont
vus ?
Question 1.4 : En utilisant les instructions SQL qui permettent de modifier la base,
1. Ajoutez-vous dans la table des spectateurs.
2. Comment supprimer les séances antérieures à septembre 2006 (on suppose que l’horaire
comporte l’heure et la date), et les avis relatifs à ces séances ? (deux requêtes, ... on
verra plus tard qu’avec les contraintes d’intégrité, une seule requête peut suffire).
2
L3 MIAGE – 2015/2016 : TD2 – Bases de données
3. Modifiez la base pour que le spectateur nommé ”Superman” prenne la nouvelle identité
”Clark Kent”.
4. Le spectateur nommé ’Tournesol’ décide de changer d’avis pour la séance 123, et de
donner un avis ”très bon”. Modifiez la base en conséquence.
On ajoute une colonne derniereProjection à la table FILM, qui contiendra l’horaire de la
dernière séance à laquelle ce film a été projeté.
Cet attribut est dit redondant car l’information est déjà présente dans la base de donnée (dans
d’autres tables que FILM).
Question 1.5 :
Sans utiliser cette nouvelle colonne, donner la requête SQL qui permet
d’obtenir l’horaire de la dernière séance du film de référence 123. Cette requête prouve que
l’attribut derniereProjection est redondant.
Question 1.6 : Donner l’instruction update qui permet de mettre à jour la table FILM en
calculant la valeur de derniereProjection pour tous les films.