Année 2019/2020 Deuxième semestre
Département INFORMATIQUE DUT année spéciale
Page 1 Bases de données – TD 1
Travaux Pratiques et Dirigés de Bases de Données n˚ 1
Les vues
Les exercices de ce TD font référence à la base de données « Vidéothèque ».
1. Créez une vue vueFilm qui donne pour chaque film dont la base contient au moins un exemplaire le numéro de film et le nombre d’exemplaires de chaque film. La vue est-elle modifiable ? Pourquoi ? 2. Créez une vue vueActeur qui donne le numéro, nom et prénom de tous les acteurs. La vue est-elle
modifiable ? Pourquoi ?
3. Ecrire et faire exécuter un script SQL pour créer les tables location et client. Insérer dans vos tables (et dans votre script) les lignes suivantes :
login nomClient prenomClient motDePasse
charlie Chaplin Charles charlot
mo Olivier Marius malaisie
numExemplaire dateLocation login dateEnvoi dateRetour
1112 01-01-2020 charlie 01-01-2020 NULL
1111 01-01-2020 charlie 02-01-2020 04-01-2020
5503 (aujourd’hui) charlie NULL NULL
5443 02-01-2020 charlie 02-01-2020 05-01-2020
2864 12-01-2020 mo 13-01-2020 NULL
15674 (aujourd’hui) mo (aujourd’hui) NULL
3437 (aujourd’hui) mo (aujourd’hui) NULL
Rentrer les clients Pierre Blanc (login : peter) et Jacques Lenoir (login : lenoir) en utilisant des mots de passe aléatoires de cinq caractères alphabétiques1.
4. Créez une vue vueClient qui donne le login, nom et prénom de tous les clients ayant déjà emprunté un film. La vue est-elle modifiable ? Pourquoi ?
Cherchez à modifier le nom et le prénom du client « charlie ». Est-ce possible ? Est-ce possible de modifier son login ?
5. Créez une vue nommée vuePretsEnvoyesAuj qui liste les exemplaires expédiés en date
d’aujourd’hui2. Cette vue devrait comporter un maximum d’informations sur les prêts (exemplaire, client, film, réalisateur, toutes les dates, etc.). La vue est-elle modifiable ? Pourquoi ?
a. Quels attributs figurant dans la vue sont modifiables ?
b. Est-ce possible de modifier, par la vue, la date de location de l’exemplaire 3437 ? c. Est-ce possible de modifier, par la vue, la date d’expédition de l’exemplaire 3437 et de
mettre cette date à NULL ? Que se produit-il lorsque la requête est exécutée ?
d. Annuler cette dernière modification. Réécrire la vue vuePretsEnvoyesAuj en y ajoutant la clause WITH CHECK OPTION. Que se produit-il lorsque la requête précédente est à nou- veau exécutée ?
1 dbms_random.string('A', 5)
2 Le type date d’Oracle inclut l’heure dans la partie décimale. Pour les comparaisons de date il faut utiliser TRUNC(attribut_au_format_date).
Année 2019/2020 Deuxième semestre
Département INFORMATIQUE DUT année spéciale
Page 2 Bases de données – TD 1
6. Créez une vue vuePrets qui contient le login, le nom et le prénom de l’emprunteur, la date
d’emprunt, le titre et le réalisateur des films empruntés. Cette vue est-elle modifiable ? Pourquoi ? 7. Créez une vue vuePretsSortis qui affiche le numéro d’exemplaire, la date de location, d’expédition,
et de retour des films en circulation (expédiés et non-rendus). Cette vue est-elle modifiable ? Pour- quoi ?
Écrivez une requête SQL qui est possible seulement si le CHECK OPTION n’est pas précisé. Testez l’exécution sur la vue avec CHECK OPTION, et sans CHECK OPTION.
EXEMPLAIRE LOCATION CLIENT
numExemplaire numExemplaire login
numFilm dateLocation nomClient
codeSupport login prenomClient
vo dateEnvoi motDePasse
probleme dateRetour adresse
detailSupport
FILM
FILM GENREFILM GENRE
numFilm numFilm codeGenre
titre codeGenre libelleGenre
realisateur
ACTEUR INDIVIDU
numFilm numIndividu
numIndividu nomIndividu
prenomIndividu