
Requêtes SQL sur la base de données INSCRIP 2/4
SCI6306 (Automne 2016) Copyright © 2016 Christine DUFOUR
Professeure : Christine Dufour
Il est fortement conseillé, pour chaque besoin, de commencer par remplir le journal de bord avant de
débuter la construction de la requête SQL. La décomposition d’un besoin en ses différentes parties en
amont permet souvent d’éviter de multiples itérations lorsque l’on écrit une requête SQL, comme elle
contribue à mieux le comprendre selon la logique SQL.
Vous retrouverez sur le site du cours un gabarit pour le journal de bord (fichier
sci6306_travail_requetes_SQL_gabarit_journaldebord.doc). Pour les éléments qui ne s’appliquent pas à
une requête, indiquez simplement « ne s’applique pas » ou « N/A ».
Assurez-vous, dans les résultats affichés :
• De toujours inclure les clés primaires des objets représentés. Par exemple, si on demande une
liste d’étudiants, en sus d’y indiquer le nom de l’étudiant, il faut inclure le numéro d’étudiant.
• De penser à inclure les champs pertinents par rapport au besoin énoncé. Par exemple, si on
demande la liste des étudiants ayant obtenu plus de 80% dans un cours spécifique, il faut inclure
dans les résultats, la note obtenue.
• D’éliminer les répétitions. Par exemple, si on demande la liste des étudiants, il ne faut pas y
retrouver deux fois le même étudiant.
• De choisir un ordre de tri logique.
• De faciliter la lecture des tables de résultats.
Finalement, toutes les requêtes doivent respecter le principe d’indépendance c’est-à-dire qu’elles
doivent retourner la bonne réponse peu importe les données que l’on retrouve dans les tables.
Requêtes de niveau 1
8 points par besoin (4 points pour la décomposition du besoin et 4 points pour la requête SQL); total = 24 points
1. Liste des étudiants qui portent le même nom (prénom et nom de famille) qu’un professeur
2. Utilisation des salles de classe par jour de la semaine (en ordre chronologique) c’est-à-dire, avoir,
pour chaque jour de la semaine, la liste des salles occupées (une ligne par salle)
3. Horaire des étudiants en ordre chronologique c’est-à-dire, avoir, pour chaque étudiant, la liste des
cours auxquels il est inscrit en ordre croissant de jour et d’heure
Requêtes de niveau 2
8 points par besoin (4 points pour la décomposition du besoin et 4 points pour la requête SQL); total = 24 points
1. Moyenne des notes par programme
2. Conflits d’horaire dans les inscriptions (c’est-à-dire identification des étudiants inscrits à deux
cours se donnant dans la même plage horaire)
3. Bottin du collège avec le nom des personnes, leur numéro d’identification, leur statut (professeur
ou étudiant), ainsi que le nombre de cours donnés ou suivis (selon le statut)
Requêtes de niveau 3
8 points par besoin (4 points pour la décomposition du besoin et 4 points pour la requête SQL); total = 16 points
1. Liste des étudiants n’ayant pas de cours le mardi
2. Statistiques sur les salles de classe; pour chaque salle : nombre de cours optionnels qui s’y
donnent, nombre de cours obligatoires qui s’y donnent, nombre d'étudiants qui l’occupent, nombre
de professeurs qui y enseignent