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.