TD PL/SQL 16/17

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 le lieu de départ d’une activité est différent du lieu d’arrivé.


Exercice b


Garantir qu’un guide n’est affecté qu’à des voyages qu’il connaisse.


Exercice c


Garantir qu’un guide ne puisse pas prendre de congé en conflit avec les voyages qu’il accompagne.


Exercice d


Garantir qu’un guide ne puisse pas accompagner un voyage s’il est en congé pendant la période concerné.


Exercice e


Compléter votre solution relative au congé du guide avec les contraintes d’intégrité vous semblant utile. 


Exercice f


Garantir la cohérence des montants d’une réservation ainsi que de la première facture

(on supposera que le montant de l’acompte est systématiquement de 30%).

On pourra également supposer qu'une réservation correspond à une seule chambrée (cf table 

GroupeChambre dans la base de donnée).


Exercice g


N’autoriser la réservation à un voyage que si il y a suffisamment de place disponible


ċ
TD_PLSQL.zip
(158k)
Cédric Zanni,
29 mai 2017 à 00:34
ċ
dbcreateV3.zip
(309k)
Cédric Zanni,
28 mai 2017 à 22:51
ċ
startup.sh
(0k)
Cédric Zanni,
29 mai 2017 à 01:54
ċ
startup.sql
(0k)
Cédric Zanni,
29 mai 2017 à 01:54
Comments