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