Vous êtes sur la page 1sur 2

EXAMEN

Semestre : 1 2
Session : Principale Rattrapage

Unité d’enseignement : GL-BD


Module (s) : Système de Gestion des Bases de Données
Classe(s) : 3A
Nombre des questions :08 Nombre de pages : 02
Date : 30/05/2023 Heure .09H00 Durée :01h30

Une START-UP nommée « GoKOORA » souhaite gérer la location des terrains de football.
Ceci est une proposition du schéma relationnel correspondant à leur base de données :
TERRAINS (ID_terrain, Nom,Adresse,Capacite)
PERSONNES (Id_Personne ,Nom,Prenom,Adresse, Numéro_telephone, date_naissance)
CLIENTS (ID_client# , point_fidelite)
RESERVATIONS (ID_reservation ,Date_reservation, Heure_debut, Heure_fin, ID_terrain#,
ID_client #)
EMPLOYES (ID_employe# , salaire)
MAINTENANCES (ID_maintenance ,Date_maintenance, duree, ID_terrain#, ID_employe#)
Remarques :
- La colonne durée de la table MAINTENANCES représente la durée de la
maintenance d’un terrain en JOUR.
- Description de la table RESERVATIONS
Colonne ID_reservation Date_reservation Heure_debut Heure_fin Id_terrain Id_client
Type Numerique Date Numerique Numerique Numerique Numerique

Travail demandé :

1- Créer la vue « V_MAINTENANCES » contenant la liste des terrains qui n’ont pas été
maintenus. Cette vue contient l’identifiant du terrain ainsi que son nom (1.5pts)

2- Ecrire un bloc anonyme qui permet d’afficher l’année dans laquelle le nombre maximum
des réservations ont été effectuées. (1.5pts)

1
3- Ecrire un bloc anonyme permettant de lister les noms des terrains ainsi que leurs
disponibilités : si la durée est terminée ou le terrain n'est pas en maintenance, afficher "le
terrain est disponible", sinon "en cours de maintenance". (2pts)

4- A-Créer une procédure stockée « PROC_TOP5_CLIENTS » qui affiche les noms et les
prénoms des 5 premiers clients qui ont passé le plus de réservations. Cette procédure retourne
également le nombre total de leurs réservations. (3pts)
B-Tester cette procédure(0.5pt)

5- A-Créer une fonction stockée « FN_CALCUL_BONUS » qui permet de calculer le bonus


salarial d’un employé passé en paramètre en respectant la formule suivante :
Bonus = nombre d’opérations de maintenance du mois en cours*10.
Cette fonction vérifie que l’employé existe déjà. (2.5pts)
B- Tester cette fonction avec l’employé numéro 15. (0.5pt)

6- Créer une procédure stockée « PROC_INSERTION » qui permet d’ajouter une nouvelle
réservation(4pts).
La procédure doit vérifier que :
- Le terrain existe déjà.
- La réservation n’existe pas.
- Le terrain est disponible pendant cette journée et en dehors de la maintenance (date
de la maintenance + durée différente de la date de réservation).

7- Créer un trigger « TRIG_INSERTION » qui permet de bloquer la réservation si l’heure


de début est supérieure à l’heure de fin. (2pts)

8- Créer un trigger « TRIG_FIDELITE » qui permet de mettre à jour la colonne «


point_fidelite » de la table CLIENTS après chaque nouvelle affectation ou retrait d’une
réservation pour chaque client. La valeur des points varie de 10% par rapport à la valeur
existante. (2.5pts)

Bon travail ☺

Vous aimerez peut-être aussi