Previous Up Next
Accueil

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 fonction nextval()) 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

  1. Créez un schéma que vous nommerez les_vues.
  2. 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 :

4.10.3  Règles

  1. 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 les_vues.acteur quand on tente de l’insérer dans la table les_vues.acteur.
  2. Quel est le problème de cette règle ?
  3. 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.
  4. 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 les_vues.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 les_vues.acteur et les_vues.realisateur quand cela permet de simplifier l’écriture des requêtes.

  1. Quels sont les individus qui ne sont ni des acteurs, ni des réalisateurs.
  2. Quels sont les noms et prénoms des acteurs qui sont également réalisateurs ?
    Remarque : cette requête a déjà été résolue en utilisant l’algèbre relationnelle (cf. travaux dirigés section 3.5.2) et le langage SQL (cf. travaux pratiques 4.6 et 4.8) :
  3. Quels sont les noms et prénoms des individus dont le prénom est à la fois celui d’un acteur et celui d’un réalisateur sans qu’il s’agisse de la même personne ? Remarque : cette requête a déjà été résolue en utilisant l’algèbre relationnelle (cf. travaux dirigés section 3.5.2).
Base de Données et langage SQL – Laurent Audibert

Previous Up Next