TP Système de Gestion de Base de Données (II) Avec Solution
Exercices :Voici le schéma relationnel de la base AcciRoute pour représentater les rapports
d’accidents de la route. Le S.R de chaque relation est enrichi avec un type de l’attribut, afin de
vous permettre de formuler adéquatement les requétes SQL
Personne (NAS : char(9), nom : varchar(35), VilleP : Varchar(50))
Voiture (Imma : Char(6), modele : varchar(20), annee : char(4), nas : char(9))
Accident (DateAc : Date, NAS : char(9), dommage : numeric(7 :2), villeAc : varchar(50),
imma : char(6) )
Note :
1. Les types des attributs représentent les domaines syntaxiques.
2. Une personne est propriétaire d’une ou plusieurs voitures.
3. Une personne conduit q’une voiture dont elle est propriétaire.
4. Il peut y avoir des homonymes dans la base différentiés par leur NAS respectif.
Questions :
1. Créer la base de données AcciRoute.
2. Créer la procédure CreateAcciRoute qui permet de construire les tables de données
AcciRoute en les supprimant s’ils existent avant leur création.
3. Créer la procédure InsertAccident qui permet d’insérer les données dans Accident en
vérifiant l’intégrité référentielle.
4. Créer la procédure GetnumProp qui permet de calculer le nombre de propriétaires
impliqués dans un accident entre deux années données.
5. Créer la procédure GetProp qui donne le nom et le nas des propriétaires qui ont fait
deux accidents dans un intervalle de 4 mois.
6. Créer la procédure GetDomCity qui calcule le total des dommages d’une ville donnée
et affiche « catégorie1 » pour dommage<=5000 et « catégorie2 » pour dommage entre
5000 et 10000 et « catégorie3 » pour dommage >10000.
7. Créer la procédure GetnumAcci qui permet d’afficher pour chaque ville le nombre
total d’accidents enregistrés.
8. Créer la procédure GetNamProp qui permet d’afficher le nom des propriétaires qui
résident dans une ville où il y a eu plus de x accidents tel que x un paramètre de la
procédure.
9. Créer la procédure GetnumAcciDat qui calcule le nombre d’accidents qui sont
survenus à une date donnée.
10. Créer la procédure GetnumAcciHour qui calcule le nombre d’accidents survenus entre
deux heures données.
11. Créer la procédure UpdateDom qui permet de diminuer de 5% le dommage à chaque
véhicule dont les dommages dépassant les 5000.00.
Solution
<script src="https://gist.github.com/anonymous/9931388.js"></script>