Voilà un exemple de contrôles qui concerne les bases de données et surtout la partie du langage tsql : ( Transact SQL : contrôle 1 v2) qui est équivalent au contrôle 3 du module base de données (car le contrôle 1 se focalise sur la méthode Merise et le contrôle 2 est lié à la partie algèbre relationnelle et le langage sql). Aussi, nous proposons une solution de ce contrôle. Mais, on vous encourage de ne pas voir la solution qu’après des essais . Bonne chance!
Transact SQL : Contrôle 1 (v2)
Soit le schéma de la base de données suivante :
stagiaire (idStagiaire,nom,prenom,#idfiliere,TotalAbsence)
filiere(idFiliere,nomF)
Module(idM,nomM,NbreHeure)
Fil_Module(#idF,#idM)
Absence(idA,dateA,#idS,#idM,TypeAbsence)
On s’intéresse aux absences des stagiaires par module de formation .Un module est enseigné à
plusieurs filières. Une absence a un type qui peut prendre les valeurs ”Justifie” ou ”non justifiée”. La
table absence enregistre les absences à raison d’une ligne par séance. On suppose qu’une séance a
une durée de 2h30min (2.5heures).
Le champ TotalAbsence enregistre le nombre total d’absences en séances d’un stagiaire (absence
justifiée ou non justifiée). Le champ TotalAbsence doit s’incrémenter de 1 à chaque absence d’un
stagiaire. L’identifiant du stagiaire s’incrémente automatiquement (démarre de 1 et s’incrémente de
1) .
On suppose que la base de données est créée et remplie.
Questions :
1- Remplir la table filière avec 20 lignes comme suit : 1-f1, 2-f2, 3-f3, ……, 20-f20 (2pts)
2- Créer un déclencheur qui permet d’incrémenter de 1 le TotalAbsence après chaque absence
d’un stagiaire. (2pts)
3- Créer une procédure stockée qui prend en paramètre l’id d’une filière donnée et affiche la
liste des stagiaires de cette filière qui n’ont pas d’absences. (2.5pts)
4- Utiliser la procédure précédente pour afficher les stagiaires de la filière TDM qui n’ont pas
d’absences. (2pts)
5- Créer une fonction stockée qui retourne le nombre de modules de chaque filière. (2.5pts)
6- Utiliser cette fonction pour afficher le nom de la filière avec le plus grand nombre de
modules. (2pts)
7- Donner le nécessaire pour afficher, pour chaque filière : (4pts)
Filière numéro : …. De nom : …..
Liste des modules :
Module num …. De nom ….. Masse Horaire : ….
Module num …. De nom ….. Masse Horaire : ….
Module num …. De nom ….. Masse Horaire : ….
….
Nombre de modules : ….
8- La suppression d’une absence doit entrainer la décrémentation du TotalAbsence pour le
stagiaire concerné. Créer le trigger nécessaire. Tester avec suppression de toutes les
absences du stagiaire num 5. (3pts)
Vous pouvez suivre notre cours de base de données pour approfondir vos compétences et surmonter tous les problèmes de création et manipulation de base de données : Merise, Algèbre relationnelle, SQL et TSQL.
Aussi, vous avez une playlist des vidéos (Explication en Darija arabe marocaine) bien organisée qui traite : Les bases de données
Nous proposons d’autres examens sur les bases de données. C’est intéressant : Examens de bases de données
Contrôle 1 V2 (solution)
Nous proposons la solution bien détaillée sur la vidéo suivante :