Introduction
Cette interface permet d’interroger une base de données via un SGBD (MySQL, PSQL ou SQLite) choisi par l’enseignant. Pour cet atelier, nous utiliserons SQLite avec la base de données "cours.db". Le schéma et contenu des tables de la BD sont disponibles via l’application, via le bouton, mais aussi en annexe.
📖 Partie 1 : les requêtes simples
L’apprenant peut exécuter n’importe quelle requête SQL (langage de manipulation des données réduit au "Select") sur la base de données sélectionnée par l’enseignant. Cela permet à l’étudiant de tester la validité de la syntaxe de sa requête et de retourner la table résultat obtenu si la syntaxe est correcte.
Testez le mode simple avec la requête qui retourne le nom et prénom des étudiants inscrits dans le module MIAS2I5.
Autre test
📖 Partie 2 : Exercices
Attendez que l'animateur active la mode exercice. Vous pourrez continuer à utiliser le mode "libre". Pour cela, sélectionnez "Pas d'exercice".
L’apprenant devra sélectionner la question à laquelle il veut répondre via l’encadré Exercice et Question. Puis via le formulaire libre requête SQL, l’apprenant devra répondre à la requête. En plus de la validation syntaxique de sa requête, QueryCraft précisera si la table résultat obtenue correspond à la table résultat attendue. ATTENTION, ce ne signifiera pas forcément que la requête est sémantiquement correcte (répond totalement à l’intention posée).
Sélectionnez l’exercice Didapro11 et la question n°1 : "Nom et prénom des étudiants ayant des notes dans le module MIAS2I5"
L’intention précise s’affiche et éventuellement la table résultat attendue. Exécutez les requêtes suivantes pour visualiser les différences
R1 (requête correcte)
R2 (requête syntaxiquement correcte, mais qui ne répond pas à l’intention)
R3 (requête syntaxiquement incorrecte)
📖 Partie 3 : pas à pas
Pour comprendre les opérateurs utilisés dans sa requête, Quel que soit le mode de manipulation (libre ou dirigée) choisi, l’apprenant pourra utiliser le mode pas à pas proposé. L’exécution des opérateurs se fait de manière itérative : jointure / sélection / regroupement / condition de regroupement / projection / tri.
Sélectionnez la question n°2 dans l’interface Exercice et Question.
Etudiants (nom et prénom) qui ont eu une note d'examen supérieure à 10. Ecrivez la requête suivante dans l’interface Requête SQL et cochez la case Mode pas à pas. Requête correcte avec une jointure, une sélection et une projection
Visualisez les différentes étapes de la requête :
- Etape 1 : visualisation de la table notes
- Etape 2 : visualisation de la table étudiants
- Etape 3 : visualisation de la jointure entre les 2 tables
- Etape 4 : Sélection des t-uples : codemat = ‘MIAS2I5’
- Etape 5 : Projection sur les attributs nom et prénom
Sélectionnez la question n°3 dans l’interface Exercice et Question.
Etudiants (nom, prénom) qui ont eu une moyenne générale supérieur à 10. Ecrivez la requête suivante dans l’interface Requête SQL et cochez la case Mode pas à pas si pas conservée. Requête correcte avec un group by et une sélection sur les groupes.
Visualisez les différentes étapes de la requête comportant un regroupement et une sélection sur celui-ci.
📖 Partie 4 : aide de l'IA générative
Quelque soit le mode de manipulation, une aide via une IA est proposée à l’apprenant, que ce soit :
- Dans la compréhension de la requête correcte.
- Dans la résolution de sa requête syntaxiquement fausse
- Dans la correction de sa requête pour obtenir une table résultat correcte.
Reprenons la question n°3 dans l’interface Exercice et Question. Etudiants (nom, prénom) qui ont eu une moyenne générale supérieur à 10. Décochez la case mode Pas à Pas et sélectionnez désormais uniquement Aide de l’IA. Etudiez les retours de l’IA pour les différentes requêtes proposées suivantes.
R1 - requête correcte : explication détaillée par l’IA de la requête proposée
R2 - requête syntaxiquement fausse : aide par l’IA pour corriger la requête
R3 - requête correcte syntaxiquement, mais ne répond pas à l’intention (pas la bonne table résultat) : aide de l’IA pour comprendre les erreurs.
📖 Partie 5 : exercice complémentaire
Nous vous proposons maintenant de manipuler l’outil avec les modes souhaitées (pas à pas et/ou aide de l’IA) pour en mesurer les fonctionnalités proposées soit :
- Via la manipulation libre à travers des requêtes que vous souhaitez tester
- Via les autres questions de l’exercice Didapro11 où nous vous donnons l’intention et la requête correcte.
- à utiliser le mode Pas à Pas pour comprendre une requête.
- à provoquer des erreurs dans la requête SQL que ce soit syntaxiquement ou non pour tester le mode Aide à l’IA
Sélectionner la question n°4 - Tri de la table résultat "Nom et Prénom des étudiants qui ont un nom qui commence par un D, trié par ordre alphabétique sur le nom et prénom."
Sélectionnez la question n°5 - Plusieurs jointures. "Liste des étudiants (nom, prénom) inscrits en Deug MIAS"
Sélectionnez la question n°6 - Autojointure "Etudiants inscrits dans le module MIAS2I5 et le module MIAS2I6",
Sélectionnez la question n°7 - Jointure externe "Etudiants (nom, prénom) qui ne sont pas inscrits dans le module MIAS2I5"
Sélectionnez la question n°8 - À faire par vous-même. "La moyenne générale des étudiants en deuxième année de Deug MIAS, s’ils n’ont pas de notes dans un module, ils ont 0 à ce module. Même chose pour les notes (noteex et notecc)."
ANNEXE - Base de données cours.db
Cette base de données permet de stocker les notes obtenuss par les étudiants dans chaque matière où ils sont inscrits pour les différentes formations proposées dans mon établissement. La moyenne de chaque matière correspond à la moyenne de la note de contrôle continu et de la note d’examen. Chaque matière a le même poids, donc la moyenne générale correspond à la moyenne générale de toutes les moyennes obtenues de chaque matière.
- Etudiants (_noetu_ varchar(6), nom varchar(10), prénom varchar(10)) qui stockent les étudiants de l’établissement. Chaque étudiant est identifié par un numéro noetu et caractérisé par un nom et prénom.
- Matieres (_codemat_ varchar(8), titre varchar(10), responsable varchar(4), diplome varchar(20)) qui stockent les matières enseignées dans les formations proposées par l’établissement. Chaque matière est identifiée par un numéro codemat et caractérisé par un titre, le responsable de la matière, le diplôme auquel est rattaché la matière.
- Notes (_#noetu_ varchar(6), _#codemat_ varchar(8), noteex numeric, notecc numeric) stockent les notes obtenues par les étudiants inscrits dans les différentes matières. Chaque ensemble de notes est identifié par le numéro de l’étudiant et le code de la matière dans lequel il est inscrit et caractérisé par la note d’examen et la note de contrôle continu obtenues.