Niveau : 2ième Année Épreuve : Théorique N° du module : Durée : 2H Intitulé du module : Base de Données Date d'évaluation : 29/01/2020 Barème /40 Variante 1
NB : les champs marqués en gras et soulignés représentent les clés primaires des tables et les champs marqués par # représentent les clés étrangères
1. Donner le MCD du schéma proposé (6 pts)
2. Créer la base de données Hôpital (2 pts) 3. Ecrire le code qui permet de créer la table Prescription avec les contraintes de clé primaire et clé étrangère (2) 4. Ecrire la procédure qui permet d’insérer les données dans la table Prescription en vérifiant l’intégrité référentielle (4 pts) 5. Ajouter à la base de données les contraintes suivantes (les tables sont déjà créées) (6 pts) a. Les spécialités des médecins doivent être soit (cardiologue, pédiatre, ophtalmologue, généraliste) b. L’email d’un médecin doit être valide c. Le stockActual doit être supérieur au stockMin 6. Ecrire la requête qui affiche la liste des 5 remèdes les plus consommés (4 pts) 7. Créer une fonction qui retourne le nombre de prescriptions d’un médecin dont le nom est passé comme paramètre. (4 pts) 8. Créer une procédure qui affiche la liste des médecins d’une spécialité passée en paramètre ayant rédigé plus que 50 prescriptions le mois en cours (4 pts) 9. Un patient ne peut pas consommer plus que 100 unités du même remède dans la même année. Réaliser un TRIGGER qui vérifie cette condition à chaque insertion dans la table detailPrescription. En plus le trigger doit mettre à jour la colonne stockActual (4 pts) 10. Créer une procédure stockée qui diminue le stockMin des remèdes qui n’ont jamais été prescris. Le taux de diminution est passé en paramètre (4 pts)