sujet de TP

Transcription

sujet de TP
LPro QSSI - Bases de données
TP 1 : définition de données et contraintes
1
Savoir rendre les TP
Le travail de chaque séance de TP sera évalué, et participera à la note de
contrôle continu du cours de bases de données. Ce travail doit donc être rendu
de la manière suivante :
1. les commandes SQL en réponses aux exercices sont regroupées et sauvegardées dans un fichier texte dont le nom est constitué du nom et prénom
d’étudiant, et du numéro du TP. Ce fichier sera suffixé .sql ;
2. tout autre texte que les commandes SQL sera rentré sous forme de commentaire ;
3. le fichier est transmis par courrier électronique à l’adresse :
[email protected].
2
Savoir définir des schémas
Dans cette partie, nous créons des schémas de tables. On considère les
schémas suivants :
salle[nom cinéma, numéro salle, séance, titre]
adresse[nom cinéma, rue, ville]
film[titre, réalisateur, date sortie, acteur]
produit[producteur, titre]
vu[spectateur, titre, séance]
aime[spectateur, titre]
où
– la table salle décrit le nom d’un cinéma, le titre des films projetés ainsi
que l’heure et la date de la séance et la salle de projection,
– la table adresse décrit l’adresse de chaque cinéma,
– la table film décrit des films par leur titre, leur réalisateur, la date de sortie
et les acteurs du film,
– la table produit décrit le producteur de chaque film,
– la table vu indique la séance à laquelle un spectateur a vu un film,
– la table aime indique quels spectateurs ont aimé quels films.
1
Travail à faire
1. Se connecter à Oracle. L’éditeur utilisé est un éditeur en ligne, toute commande doit se terminer par le caractère ;
2. Vérifier que ces tables n’existent pas déjà (par exemple en utilisant la
commande DESC). Au besoin les supprimer si elles existent.
3. Créer les tables correspondant à ce schéma sous Oracle. On utilisera les
types suivants :
– varchar(30) pour les noms de personne (spectateurs, producteurs,
etc.),
– varchar(40) pour les titres de film,
– varchar(20) pour les adresses, les noms de ville et les noms de cinéma,
– timestamp(0) pour la date et l’heure de la séance,
– Date pour les dates,
– Number(3) pour le numéro de salle.
4. Utiliser la commande DESC pour s’assurer que les tables créées correspondent bien aux schémas décrits ci-dessus.
3
Savoir ajouter des données
Dans cette partie, nous modifions les instances des schémas créés précédemment.
Les instance des tables peuvent être affichées avec la commande SELECT *
FROM suivi du nom de la table.
Travail à faire
1. Afficher l’instance de la table film.
2. Le fichier fichier donnees.sql contient des ordres SQL INSERT INTO.
Charger ce fichier avec la commande @ suivi du nom du fichier.
3. Afficher les instances des tables.
4. Ajouter aux tables crées des tuples de manière à ce que :
– un film où joue l’actrice “ludivine sagnier” soit projeté dans au moins
une salle,
– un acteur ait produit un film,
– un acteur ait réalisé un film dans lequel il joue,
– un spectateur aime un film qu’il n’a pas vu,
– un réalisateur ait dirigé tous les acteurs connus,
– un spectateur aime tous les films qu’il voit,
– un spectateur n’aime aucun film,
– une salle d’un cinéma projette 2 films différents en même temps,
– deux films soient vus par le même spectateur au même moment,
– un cinéma soit sans adresse,
– un film soit sans producteur.
2
4
Savoir définir des contraintes
L’objectif de cette partie est de modifier les définitions des tables pour
prendre en compte les contraintes suivantes.
Dépendances fonctionnelles On considère les dépendances fonctionnelles
suivantes :
salle
nom cinéma, numéro salle, séance → titre
adresse nom cinéma → ville
adresse nom cinéma → rue
film
titre → réalisateur, date sortie
film
acteur, réalisateur, date sortie → titre
produit titre → producteur
vu
spectateur, séance → titre
1. Quelle est la signification de chacune de ces dépendances?
2. Coder ces dépendances sous la forme de contraintes de clé primaire sous
Oracle. Il faudra supprimer des instances de certaines tables les tuples qui
ne respectent pas ces contraintes.
3. La table film est-elle en FNBC ? Que faudrait-il faire pour la mettre en
FNBC?
4. Même question pour les autres tables. Modifier les schémas sous Oracle
pour obtenir des schémas en FNBC.
Valeurs nulles
Aucune des valeur d’attribut ne peut être NULL.
Dépendances d’inclusion On considère les dépendances d’inclusion suivantes :
– les titres de film utilisés dans les tables salle, produit, vu et aime proviennent tous des titres de film de la table film,
– les noms de cinéma de la table salle sont tous associés à une adresse de la
table adresse.
1. Coder ces dépendances sous la forme de contraintes de clé étrangère sous
Oracle. Il faudra supprimer des instances de certaines tables les tuples qui
ne respectent pas ces contraintes.
2. Sans supprimer ces dépendances fonctionnelles et d’inclusion, que faudraitil faire pour qu’un même nom de cinéma puisse apparaı̂tre dans plusieurs
villes?
3