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

Documents pareils