Partie 2 · Logique
Fonctions et procédures stockées
Le responsable technique demande d'exploiter explicitement des fonctions et des procédures stockées. Il ne s'agit pas de prouver que tu connais la syntaxe, mais de démontrer que chaque mécanisme répond à un vrai besoin du cas.
Fonctions SQL
Il faut proposer au moins deux fonctions utiles : une fonction de calcul ou d'aide à la qualification métier (le score), une fonction de transformation ou d'interprétation d'un résultat (par exemple convertir un score en niveau faible/moyen/élevé), éventuellement une fonction de mise en forme ou de catégorisation. Pour chacune, il faut expliquer : son rôle, ses paramètres, sa valeur de retour, les hypothèses prises et les cas limites à gérer (par exemple un budget NULL).
Procédures stockées
Plusieurs procédures structurantes : une procédure d'insertion ou d'intégration d'un marché, une procédure de traitement d'un lot, une procédure d'alimentation ou de rafraîchissement du dashboard, éventuellement une procédure de maintenance ou de purge. Le cas précise : « Vous ne devez pas livrer une simple suite d'INSERT » : la logique de contrôle, de calcul, d'échec et de traçabilité doit être pensée dès la conception.
| Fonction | Procédure |
|---|---|
| (hors cours, notion générale) calcule et renvoie une valeur, utilisable dans une requête | (hors cours) exécute une suite d'actions appelée explicitement |
Vérifie que tu as compris
Ce que SQLite ne sait pas faire
SQLite n'a ni procédures stockées ni fonctions SQL définies par l'utilisateur en SQL pur (hors cours). On exprime donc la règle du score en SQL avec CASE (c'est le calcul que la fonction encapsulerait), ou on écrit la procédure côté Python. Dans un SGBD comme MySQL (hors cours, exemple ajouté), on écrirait CREATE FUNCTION / CREATE PROCEDURE, avec CALL pour appeler une procédure et un gestionnaire d'erreur pour annuler un traitement en échec.
L'important, indépendamment du SGBD, est la qualité de la logique : contrôler les données, calculer, gérer l'échec, tracer.
À toi de coder
Vérifie que tu as compris