TD Cohérence des Bases de Données - Triggers

Première Partie : Préparation de la Base de données.

La VBox utilisé dans ce TD provient d'Oracle et est pré-configurée avec un base ad hoc pour les formations dispensées dans leur contexte propre. Pour nos besoins, nous allons reconfigurer l'environnement et créer une toute nouvelle base.
Depuis un clone de la VBox Oracle Developer Days
  1. téléchargez le fichier dbcreateV3.zip;
  2. décompressez-le; il comporte les fichiers suivants:
    createdb.sql
    finish.sql
    inittdmines.ora
    removedb.sh
    script.sh
    setupdb.sql
  3. Ouvrez un terminal et exécutez, dans l'ordre:
$ emctl start dbconsole
$ cd CREATE_DB
$ bash ./script.sh

SQL> @setupdb.sql
Password: oracle
SQL> @createdb.sql
SQL> @finish.sql 

ATTENTION, il faut compter au moins 15 minutes pour l'exécution de l'ensemble des scripts ci-dessus.
Si tout s'est déroulé comme prévu, vous pouvez maintenant démarrer une session SQL Developper et vous connecter au SID tdmines (login: tdmines ; mot de passe: tdmines)

Seconde Partie : Gestion de la Cohérence Sémantique

Exercice Préliminaire

  • Créer des séquences pour chaque table, permettant de garantir l'unicité des identifiants (http://www.techonthenet.com/oracle/sequences.php)
  • Créer les triggers permettant d'insérer des éléments sans fournir l'identifiant (et qui insère automatiquement le numéro de séquence adéquat)
Pour chaque exercice suivant, il convient de trouver la bonne stratégie pour garantir la cohérence sémantique, par exemple, pas pas exclusivement en créant des triggers. Une explication succincte sur les triggers est disponible ici.

ATTENTION, il est entendu que l'ensemble des garanties de cohérence sémantique reste maintenu au fur et à mesure que d'autres contraintes s'ajoutent. Cela implique que certains exercices plus avancés peuvent avoir un effet rétroactif et nécessitent de revenir sur la formulation de la solution d'autres exercices. Dans ce cas, il est nécessaire de bien le signaler.

Vous rendrez pour chaque exercice un fichier .sql commenté avec le code adéquat. Tout code provocant des erreurs de compilation sera considéré comme faux et ne sera pas corrigé.  

Exercice a

Garantir que l'adjoint de l'école de musique, pour une année donnée, ne soit pas aussi le directeur.

Exercice b

Garantir que deux cours ne puissent pas avoir lieu en même temps, dans une même salle.

Exercice c

Garantir qu'un musicien ne puisse pas donner deux cours en même temps.

Exercice d

Garantir qu'un musicien ne suive et donne un cours en même temps.

Exercice e

Garantir qu'un musicien qui enseigne un instrument soit bien habilité à le faire.

Exercice f

Les participants à un orchestre "junior" doivent avoir moins de 18 ans.
Les participants à un orchestre "senior" doivent avoir au moins 18 ans.

Exercice g

Un musicien qui participe à un concert doit bien savoir jouer les instruments en question.

Exercice h

Un morceau joué en concert doit faire partie du répertoire de l'orchestre.
ċ
EcoleDeMusique.ddl
(17k)
Bart Lamiroy,
26 mai 2016 à 13:14
ċ
EcoleDeMusique.zip
(66k)
Bart Lamiroy,
27 mai 2016 à 01:46
ċ
TD2015-OK.zip
(35k)
Bart Lamiroy,
26 mai 2016 à 13:14
ċ
dbcreateV3.zip
(309k)
Bart Lamiroy,
26 mai 2016 à 13:14
ċ
import_data.sql
(50k)
Bart Lamiroy,
26 mai 2016 à 13:14
Comments