4.10. TRAVAUX PRATIQUES – SQL : NOUVEAUX OBJETS {S9}
101
4.10 Travaux Pratiques – PostgreSQL : Manipulation des nouveaux
objets
4.10.1 Séquences
1. Créez une séquence test_sequence cyclique commençant à 10 de pas d’incrément 2 et de valeur
maximum 20.
2. Testez cette séquence (avec la fonctionnextval) et observez son comportement. Le cycle recommence-
t-il à 10 ? Pourquoi ?
3. Testez également les fonctions currval et setval.
Effacez la séquence de la table.
4. Modifiez votre fichier GenBDCine.sql afin que la colonne num_individu de la table individu soit
du type serial. Rechargez votre base.
5. Tentez d’insérer un nouvel individu sans préciser son num_individu.
Quel est le problème ? Comment pouvez-vous y remédier ?
4.10.2 Schéma et vues
6. Créez un schéma vue.
7. Dans ce schéma, créez deux vues, l’une correspondant à la liste des acteurs, l’autre à la liste des
réalisateurs. Les schémas respectifs de ces relations seront :
– acteur(num_acteur, nom, prenom) ;
– realisateur(num_realisateur, nom, prenom).
4.10.3 Règles
8. Créez une règle insertion_acteur qui insère un individu dans la table individu à la place de
l’insérer dans la table vue.acteur quand on tente de l’insérer dans la table vue.acteur.
9. Quel est le problème de cette règle ?
10. Créez une nouvelle ligne dans la table film. Il s’agit d’un film fictif :
num_film num_realisateur titre genre annee
0
0
NULL
NULL
NULL
Quel problème rencontrez-vous ? Trouvez une solution.
11. Ainsi, quand un nouvel acteur est inséré, il est possible de mettre à jour la table jouer en faisant
référence à ce film fictif. Corrigez votre règle insertion_acteur pour mettre en œuvre cette
nouvelle logique. Vérifiez qu’un nouvel acteur « inséré » dans la vue vue.acteur apparaisse bien
dans cette vue une fois l’opération effectuée.
4.10.4 Toujours des requêtes
Dans les exercices qui suivent, pour répondre, utilisez les vues vue.acteur et vue.realisateur
quand cela permet de simplifier l’écriture des requêtes.
12. Quels sont les individus qui ne sont ni des acteurs, ni des réalisa