Entraînez-vous à SQL avec cette adaptation du chef-d'œuvre de Henri-Georges Clouzot, Le Corbeau (1943) !
Cette base a été générée par SQLab : elle contient à la fois des données et des exercices de SQL sur ces données.
Les tables-métier (celles sur lesquelles vous travaillerez) sont les suivantes :
Une base SQLab inclut également une table de messages : éléments narratifs, explications, énoncés de questions, pistes personnalisées en cas de réponses fausses, enfin solutions et variantes éventuelles.
Chaque message est chiffré par une clé cryptographique distincte (ou token).
L'énoncé d'une question vous fournira toujours une formule de calcul de token, p. ex. , salt_042(sum(A.hash + B.hash) over()) as token.
Imaginons que votre réponse « brute » consiste en la requête SQL suivante :
SELECT A.foo
, B.bar
FROM bizz A
JOIN buzz B ON A.foobar = B.foobarCopiez-collez la formule de token dans la clause SELECT :
SELECT A.foo
, B.bar
, salt_042(sum(A.hash + B.hash) over()) as token
FROM bizz A
JOIN buzz B ON A.foobar = B.foobarExécutez cette requête. La table résultante comportera une colonne token avec la même valeur sur toutes les lignes. Insérez cette valeur dans les parenthèses de la requête de déchiffrement suivante :
SELECT decrypt()Trois cas peuvent alors se présenter :
- 🔴 Votre réponse est complètement fausse, et le système ne voit pas comment vous aider à la corriger.
- 🟠 Votre réponse est presque juste, et le système vous donne une piste.
- 🟢 Votre réponse est juste, et le système vous félicite, affiche la correction officielle et, le cas échéant, l'épisode suivant.
La base de données est actuellement disponible pour MySQL 8 ou supérieur : téléchargez dump.sql (clic droit / « Télécharger le fichier lien sous… ») et exécutez :
read -p "Username: " USERNAME
mysql -u "$USERNAME" -p < dump.sql
mysql -u "$USERNAME" -p corbeauPour accéder au premier épisode de l'aventure, exécutez :
SELECT decrypt(64)L'aventure compte 44 épisodes, à travers lesquels vous progresserez en composant des requêtes de difficulté progressive.
Le plan de la base s'interprète ainsi :
- Chaque sommet représente une question.
- Les verts sont des points d'entrée : ils portent un numéro qui sert aussi de token d'accès.
- Les rouges sont également numérotés, mais ne peuvent être atteints qu'en ayant suivi un chemin d'arcs depuis un sommet vert, autrement dit, en ayant résolu toutes les questions précédentes.
- Certains arcs sont multiples, ce qui signifie que la solution admet une ou plusieurs variantes (qui vous seront systématiquement présentées dans la correction).
- Les petits sommets blancs représentent les erreurs pour lesquelles une indication a été prévue dans la base. Comme la plupart correspondent à des erreurs réellement commises par des étudiants, vous pouvez considérer leur nombre comme plus ou moins proportionnel à la difficulté.
- Quand vous arrivez à une étoile, vous avez fini soit un exercice, soit l'aventure complète !
Bonnes requêtes !
- Henri-Georges Clouzot et Louis Chavance sont les auteurs du scénario original du film Le Corbeau (1943) réalisé par Clouzot.
- Aristide Grange (université de Lorraine, laboratoire LCOMS) est l'auteur :
