Cours n°2
Transcription
Cours n°2
ALSI BTS IG développeurs S25 : SGBDR TP ALSI N°6 Les déclencheurs ou triggers Objectifs du TP Implémenter différentes contraintes d’intégrité à l’aide de triggers Utiliser l’utilitaire d’importation/exportation de SQL Server 2000 Consignes préalables La base de données à utiliser est la base AssuranceTousRisques que vous allez devoir installer en suivant les consignes Le MCD de la base AssuranceTousRisques est fourni en annexe. Installation de la base de données AssuranceTousRisques en local 1. Création de la base de données Lancer l’analyseur de requêtes de SQL Server 2000 puis créer la base de données AssuranceTousRisques. Vous utiliserez pour cela le script crebasAssurance.sql qui vous est fourni. 2. Chargement des données Pour charger les données, vous allez utiliser l’utilitaire d’importation/exportation de données de SQL Server. Compte tenu des contraintes d’intégrité référentielles, vous allez devoir procéder en trois phases : en effet, les tables ayant des clé étrangères doivent être chargées après les tables auxquelles elles font référence. Or, l’utilitaire d’import/export procède par ordre alphabétique des noms de tables. Phase 1 a) Lancement de l’assistant d’importation/exportation de Sql server Aller dans démarrer, Tous les programmes, Microsoft SQL Server puis lancer « Importation et exportation de données La fenêtre de l’assistant d’import/export s’ouvre SGBDR – TP06 Page 1 sur 6 2005-2006 ALSI BTS IG développeurs S25 : SGBDR b) Définir la source de données Les données à importer se trouvent dans le fichier Excel nommé Données.xls qui est situé dans le répertoire AsssuranceTousRisques Application source Fichier de données (DonnéesAssurance.xls) c) Définir la destination des données Les données à importer se trouvent dans le fichier Excel nommé Données.xls qui est situé dans le répertoire AsssuranceTousRisques Interface d’accès aux données serveur sql server local Sélection de la base de données de destination : AssuranceTousRisques d) Spécifier le traitement à effectuer Choix de l’option de copie de données à partir de la source SGBDR – TP06 Page 2 sur 6 2005-2006 ALSI BTS IG développeurs S25 : SGBDR e) Indiquer les tables dans lesquelles on réalise l’importation La colonne SOURCE indique le nom de la feuille du classeur Excel qui contient les données La colonne DESTINATION permet d’indiquer le nom de la table qui va recevoir les données. Le fichier Excel Données.xls possède une feuille pour chaque table de la base AssuranceTousRisques, chacune de ces feuilles ayant le même nom que la table associée. Sélectionner le premier lot de tables sur lesquelles on va réaliser l’importation de données : - ASSURE - PARTICULIER - COMPAGNIE - SINISTRE - CONTRAT - TYPE_GARANTIE - ENTREPRISE - TYPE_VEHICULE - EXPERT - VEHICULE - HIST_BONUS f) Planifier la demande Demander l’exécution immédiate SGBDR – TP06 Page 3 sur 6 2005-2006 ALSI BTS IG développeurs S25 : SGBDR g) Valider la demande Valider la demande d’importation en cliquant sur terminer h) Importation terminée Vérifier l’absence d’erreur lors de l’importation Phase 2 Répéter les étapes a) à h) de la phase 1 en sélectionnant cette fois ci les feuilles - ADVERSAIRE - BIEN_IMMOBILIER - GARANTIES_CONTRAT - GARANTIES_SINISTRE du fichier Données.xls Phase 3 Répéter les étapes a) à h) de la phase 1 en sélectionnant cette fois ci la feuille ACTEURS_SINISTRE du fichier Données.xls SGBDR – TP06 Page 4 sur 6 2005-2006 ALSI BTS IG développeurs S25 : SGBDR Implémentation des contraintes à l’aide de triggers Le fichier TP05_Triggers_JeuTest.sql comporte les différents jeux de tests qui vous permettront de tester vos triggers. Gestion des contrats 1. Nous souhaitons nous assurer qu’un contrat couvre des biens ou des véhicules mais pas les deux à la fois. a. Quel est le type de contrainte devant être implémentée dans ce cas ? b. Représentez cette contrainte dans un extrait du MCD c. Mettez en place les triggers assurant la cohérence de cette partie de la base de données 2. La table HIST_BONUS permet de conserver un historique de tous les changements de bonus d'un contrat : une entrée est donc créée dans cette table à chaque création de contrat ou chaque fois que le bonus d'un contrat est modifié. Ecrire les triggers permettant d'implémenter cette contrainte. Attention, si un bonus est modifié plusieurs fois dans une même journée, on ne conserve que la dernière mise à jour : cela implique que la date enregistrée sur les occurrences de la table HIST_BONUS doit avoir la partie heure à zéro. Gestion des sinistres 3. Un sinistre ne peut mettre en jeu que les seules garanties définies au contrat a. Quel est le type de contrainte devant être implémentée dans ce cas ? b. Représentez cette contrainte dans un extrait du MCD c. Mettez en place le trigger assurant la cohérence de cette partie de la base de données 4. Par ailleurs, il faut empêcher de supprimer des garanties sur un contrat s'il existe des sinistres non totalement traités (etatDossier # "clos") pour lesquels cette garantie est mise en oeuvre. Ecrire le trigger permettant de l'interdire 5. Un sinistre est suivi par un expert. Or aucune contrainte d'intégrité référentielle n'a été définie dans la base, ceci afin de permettre la suppression d'un expert sans pour autant supprimer les sinistres dont il était chargé. Pour pallier ce manque, il faut prévoir les vérifications adéquates à savoir : lors de la création ou de la modification d'un sinistre, un numéro d'expert doit être renseigné et il doit exister dans la table EXPERT. Il faut également prévoir, lors de la suppression d'un expert, de remplace le numéro d'expert supprimé sur les différents sinistres dont il était chargé (on remplacement par 99999 qui est mémorisé dans la table EXPERT sous le nom "A définir". Mettez en place en place les triggers correspondants. Gestion des assurés 6. Nous pouvons constater sur le MCD qu’un assuré peut-être un particulier ou une entreprise. Nous voulons toutefois mettre en place un contrôle spécifiant qu’un assuré ne peut pas être les deux à la fois. a. Quel est le type de contrainte devant être implémentée dans ce cas ? b. Mettez en place les triggers assurant ce contrôle Gestion des véhicules 7. Lors de la suppression d'un type de véhicule, remplacer le traitement standard par la remise à NULL du type de véhicule au niveau des tables VEHICULE et ADVERSAIRE puis supprimer le type de véhicule SGBDR – TP06 Page 5 sur 6 2005-2006 ALSI BTS IG développeurs S25 : SGBDR Annexe : modèle conceptuel des données de la base AssuranceTousRisques SGBDR – TP06 Page 6 sur 6 2005-2006