Institut Galil´ee INFO2
Ann´ee 2018-2019
TP BD Cinema en SQL3
Objectif : Utiliser l’objet-relationnel introduit dans SQL3
On d´esire impl´ementer la base de donn´ees Cin´ema en SQL3.
1 Cr´eation de types et de tables
1. Cr´eez un type adresse_type avec un num´ero de rue, un nom de rue
et un nom de ville.
NB : Il faut terminer la d´efinition du type par une ligne finale qui ne
contient qu’un ”/”. Ne terminez pas la d´efinition par un ” ;”. Si vous
avez des erreurs de compilation d’un type, vous pouvez faire afficher
une description des erreurs en tapant ”show errors” dans sqlplus.
2. Cr´eez un type person_type avec les informations associ´ees (nom,
pr´enom, date de naissance, date de d´ec`es, pays)
3. Cr´eez les types movie_type,review_type et review_aggregator_type.
4. Cr´eez les tables person,movie,review_aggregator et review as-
soci´ees `a ces 4 types (person_type,movie_type et review_type).
N’oubliez pas les contraintes d’int´egrit´e (au moins les cl´es primaires).
5. Utilisez describe pour voir les descriptions des types et tables que
vous venez de cr´eer.
2 Ajout et modification de donn´ees, requˆetes
1. Ajoutez des donn´ees dans les quatre tables (person,movie,review_aggregator
et review) en utilisant les mˆemes donn´ees que celles de la base en
SQL2.
2. V´erifiez qu’il s’agit bien de tables objets et non de tables relationnelles
en consultant les tables user_tables et user_object_tables.
3. Ecrire les requˆetes suivantes :
(a) Listes des personnes avec toutes les informations associ´ees
(b) Nombre de films par genre
(c) Liste des films dont le budget est sup´erieur `a 20 millions
4. Mettez `a jour le nombre de critique (113) du film Star wars pour
l’agr´egateur Rotten Tomatoes.
1
3 H´eritage et tables imbriqu´ees
On d´esire d´efinir les types acteur_type et realisateur_type. Ceux-ci
h´eriteront du type person_type. On utilise le principe d’une d´ecomposition
par distinction.
1. Le type person_type doit ˆetre modifi´e (la clause NOT FINAL doit ˆetre
ajout´ee pour permettre l’h´eritage - sp´ecialisation du type). On d´esire
´egalement pouvoir respecter la contrainte de totalit´e (une personne
peut ˆetre un acteur et un r´ealisateur).
Comme un type ne peut ˆetre modifi´e si des tables ou d’autres types
l’utilisent, vous devez donc supprimer la table person avant de modi-
fier le type person_type.
Proposez une nouvelle d´efinition du type person_type
2. Cr´eez (i) un type movie_ref_type ayant comme attribut movie_id
(identifiant d’un film) et (ii) le type movies_type correspondant au
type d’une table imbriqu´ee dont chaque enregistrement est du type
movie_ref_type, c’est-`a-dire un identifiant de film.
3. Cr´eez un type actor_type qui h´erite de person_type et qui poss`ede
l’attribut starring d´efini comme une table imbriqu´ee d’identifiants
de film.
4. Cr´eez un type director_type qui h´erite de person_type et qui poss`ede
l’attribut directs d´efini comme une table imbriqu´ee (nested table)
d’identifiants de film.
5. Cr´eez les tables actor et director.
6. Ecrivez les proc´edures permettant d’assurer la contrainte de totalit´e
sur les tables actor et director (un r´ealisateur peut jouer dans un
film et notamment son propre film). Testez les proc´edures avec des
insertions.
7. Ins´erez des donn´ees dans les tables actor et director.
8. Affichez la liste des acteurs avec toutes les informations associ´ees (no-
tamment les films dans lesquels ils jouent).
4 Collections
On d´esire d´efinir une liste finie de revues (au plus 2).
1. Cr´eer le type review_type compos´e d’un score, d’un nombre de cri-
tique et du nom de l’agr´egateur de revues.
2
2. Cr´eer le type reviews_type en utilisant des tableaux pr´e-dimensionn´es
(VARRAY)
3. Ins´erez des donn´ees dans la nouvelle table cinema en utilisant les
donn´ees de la base en SQL2.
4. Modifiez le type movie_type et la table movie de mani`ere `a disposer
d’un attribut review. Cet attribut est une table imbriqu´ee (nested
table) compos´ee de trois attributs review_aggregator,score_pct
et critic_number.
5. Ins´erez des donn´ees dans la nouvelle table movies en utilisant les
donn´ees de la base en SQL2.
6. Affichez les films dont le scores de Rotten Tomatoes est sup´erieur ou
´egale `a 90.
3
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !