Définir les indicateurs du rapport
Objectif : Formuler les colonnes attendues et les règles de comptage du rapport final de fréquentation et de retards.
Un rapport peut être techniquement valide tout en répondant mal à la question posée : il peut compter plusieurs fois un même emprunt ou omettre les adhérents sans activité. Avant de rédiger la requête finale, vous devez donc fixer ce que représente chaque ligne et ce que signifie chaque indicateur. Ces choix rendent les résultats interprétables et vérifiables.
Décrire le résultat avant de le calculer
La spécification d’un résultat tabulaire décrit les colonnes, leur sens, leur unité et les règles qui déterminent les lignes présentes. Pour le rapport de la médiathèque, retenez les colonnes suivantes : l’identifiant et le nom de l’adhérent, le nombre d’emprunts sur la période retenue, et le nombre de ces emprunts encore en retard à la date du rapport. L’identifiant aide à distinguer deux personnes qui portent le même nom ; le nom rend le résultat lisible.
Précisez aussi la période de fréquentation. Dans la suite du projet, vous pourrez la définir à partir de la date de début de l’emprunt, par exemple pour un mois ou une année donnée. À ce stade, ne confondez pas cette période de mesure avec la règle de retard : un emprunt peut avoir commencé pendant la période et n’être en retard qu’à la date où vous consultez le rapport. La requête finale devra appliquer ces critères à leurs colonnes respectives.
Fixer la granularité et les comptages
La granularité indique ce que représente une ligne du résultat. Choisissez ici une ligne par adhérent, et non une ligne par emprunt ni une ligne par œuvre. Les informations d’emprunt sont donc résumées à l’échelle de chaque adhérent. Cette décision détermine quelles colonnes décrivent le groupe et empêche de présenter accidentellement plusieurs lignes pour une même personne.
Définissez séparément les deux mesures. « Nombre d’emprunts » compte les emprunts de l’adhérent qui satisfont le périmètre choisi ; « nombre de retards » compte, parmi ces emprunts, ceux qui répondent à la définition opérationnelle retenue. Un emprunt ne doit contribuer qu’une fois à chaque mesure, même si le résultat intermédiaire contient plusieurs lignes issues des tables reliées. Dans les leçons précédentes, vous avez vu comment les jointures peuvent répéter des lignes et pourquoi le choix de l’identifiant compté est important.
| Indicateur | Sens dans le rapport | Point de vigilance |
|---|---|---|
| Adhérent | Personne identifiée par son identifiant et son nom | Une ligne par identifiant d’adhérent |
| Emprunts | Nombre d’emprunts dans le périmètre de fréquentation | Ne pas compter plusieurs fois un même emprunt |
| Retards | Nombre d’emprunts non rendus dont l’échéance est dépassée | N’inclure que les retards encore en cours |
Définir précisément un retard
Pour ce projet, un retard est un emprunt dont la date d’échéance est antérieure à la date du jour et dont la date de retour est NULL. Les noms de colonnes date_echeance et date_retour sont les hypothèses de schéma déjà retenues dans les exemples précédents. La date d’échéance seule ne suffit pas : un emprunt rendu en retard n’est pas un retard encore en cours selon cette définition.
Enfin, décidez si le rapport doit montrer tous les adhérents ou seulement ceux qui ont emprunté pendant la période. Pour un suivi de fréquentation complet, conserver tous les adhérents permet de rendre visibles les personnes sans emprunt, avec une mesure égale à zéro. Pour une liste d’activité, vous pouvez restreindre la sortie aux personnes ayant au moins un emprunt. Ce choix relève du besoin métier ; il ne doit pas être laissé au hasard de la jointure employée.
À retenir
- Décrivez les colonnes attendues et le périmètre temporel avant d’écrire la requête.
- Fixez une ligne par adhérent : c’est la granularité du rapport.
- Comptez chaque emprunt une seule fois dans les mesures.
- Pour ce rapport, un retard est un emprunt non rendu dont l’échéance est dépassée.
- Décidez explicitement si les adhérents sans emprunt doivent apparaître.
Dans la prochaine leçon, vous assemblerez ces choix en une requête complète et commentée, puis vous combinerez les critères de lignes et de groupes.