Évaluations d'élèves par compétence⚓︎
D'après 2022, Centres étrangers, J2, Ex. 3
Rappel sur le langage SQL
Types de données
Type | Description |
---|---|
CHAR |
Chaine de caractères |
INT |
Nombre entier de \(-2^{31}\) à \(2^{31} - 1\) (signé) ou de \(0\) à \(2^{32} - 1\) (non signé) |
FLOAT |
Réel à virgule flottante (approximation) |
DATE |
Date format AAAA-MM-JJ |
DATETIME |
Date et heure format AAAA-MM-JJHH:MI:SS |
Quelques exemples de syntaxe SQL :
- Insérer des enregistrements :
INSERT INTO Table1 (attribut1, attribut2) VALUES (valeur1 , valeur2);
- Modifier des enregistrements :
UPDATE Table1 SET attribut1=valeur1, attribut2=valeur2 WHERE Selecteur;
- Supprimer des enregistrements :
DELETE FROM Table1 WHERE Selecteur;
- Sélectionner des enregistrements :
SELECT attributs FROM Table1 WHERE Selecteur;
- Effectuer une jointure :
SELECT attributs FROM Table1 JOIN Table2 ON Table1.cle1=Table2.cle2 WHERE Selecteur;
Les enseignants d'un établissement imaginaire proposent des parcours d'entrainement au numérique à leurs élèves en créant des séries d'exercices appelées Evaluations
. Les différentes informations sont stockées dans une base de données.
Les informations de chaque campagne créée sont stockées dans la table Evaluations
dont la structure est la suivante :
Attribut | Type |
---|---|
Code_evaluation |
CHAR |
Nom_evaluation |
CHAR |
Auteur |
CHAR |
Date_evaluation |
CHAR |
Code_competences |
INT |
Un extrait de la table Evaluations
est donné ci-dessous :
Tableau 1
Code_evaluation |
Nom_evaluation |
Auteur |
Date_evaluation |
Code_competences |
---|---|---|---|---|
'EXKVLX886' |
'Term7' |
'Peltier' |
'13/10/2021' |
1453 |
'AZVBYB689' |
'Groupe3' |
'Lacour' |
'07/10/2021' |
1276 |
'PRJUYR491' |
'Term5' |
'Peltier' |
'07/10/2021' |
1453 |
'RTKVLX656' |
'campagneSTMG' |
'Beley' |
'03/10/2021' |
476 |
'DZLYYR479' |
'Term5' |
'Serhani' |
'27/09/2021' |
1659 |
'XJVBTX585' |
'grNSI2' |
'Eisen' |
'24/09/2021' |
532 |
'CRLYYR439' |
'1ere6' |
'Caille' |
'13/09/2021' |
532 |
'AZVBYB789' |
'rentreeHGGSP' |
'Martin' |
'13/09/2021' |
386 |
'OBJUYR491' |
'Web_2nde' |
'Boucher' |
'07/09/2021' |
452 |
'AGTBYB689' |
'rechercheBTS' |
'Beley' |
'07/09/2021' |
1341 |
'DQVBTX905' |
'2nde2' |
'Nguyen' |
'07/09/2021' |
452 |
1.a. Dans la table Evaluations
, quel est le seul attribut pouvant servir de clé primaire ? Justifier votre réponse.
Réponse
Le seul attribut a avoir des valeurs unique est Code_evaluation
, tous les autres peuvent créer des ambigüités lors de la désignation d'une entrée.
La clé primaire doit donc être Code_evaluation
.
1.b. Écrire la requête SQL d'insertion qui a permis d'enregistrer la campagne Term7
dans la table Evaluations
. Les informations relatives à cette campagne sont données dans la première ligne du tableau 1 précédent.
Réponse
INSERT INTO Evaluations VALUES ('EXKVLX886', 'Term7', 'Peltier', '13/10/2021', 1453);
2. On suppose maintenant que la table Evaluations
contient uniquement les 11 enregistrements présents dans le tableau 1.
2.a. Combien de lignes s'affichent après l'exécution de la requête suivante ?
SELECT auteur FROM Evaluations;
Réponse
Les résultats ne sont pas regroupés par auteur donc tous les auteurs sont renvoyés y compris les doublons : il y a 11 lignes.
2.b. Recopier les lignes issues de la requête suivante :
SELECT Nom_evaluation, Date_evaluation FROM Evaluations WHERE auteur = 'Peltier';
Réponse
Nom_evaluation |
Date_evaluation |
---|---|
Term7 |
13/10/2021 |
Term5 |
07/10/2021 |
2.c. Rédiger une requête permettant de connaitre le nom des campagnes prévoyant un entrainement ciblé sur le web (Code_competences
\(452\)).
Réponse
SELECT Nom_evaluation
FROM Evaluations
WHERE Code_competences = 452;
3. Le système de gestion de bases de données dispose également d'une table Resultats
dont la structure est la suivante :
Attribut | Type |
---|---|
Code_evaluation |
CHAR |
Num_eleve |
INT |
Score |
INT |
Si l'élève s'est connecté à la campagne, mais n'a pas cliqué sur « envoyer les résultats », son score vaut -1.
3.a. Qu'imposerait le choix du couple (Code_evaluation, Num_eleve)
comme clé primaire pour la table Resultats
?
Réponse
On fait l'hypothèse que les Num_eleve
sont tous uniques (un par élève).
Une clé primaire ne doit être associée qu'à une entrée de la table. Choisir ce couple comme clé primaire imposerait que chaque élève ne fasse l'évaluation qu'une seule fois.
Un extrait de la relation est donné ci-dessous :
Code_evaluation |
Num_eleve |
Scores |
---|---|---|
'PRJUYR491' |
17 |
300 |
'CRLYYR439' |
654 |
-1 |
'PRJUYR491' |
1454 |
220 |
'RTKVLX656' |
554 |
255 |
'DZLYYR479' |
17 |
-1 |
'XJVBTX585' |
1664 |
12 |
'CRLYYR439' |
18703 |
0 |
'PRJUYR491' |
1565 |
422 |
'XJVBTX585' |
12 |
643 |
'CRLYYR439' |
168 |
19 |
'DZLYYR479' |
17 |
140 |
'XJVBTX585' |
1658 |
647 |
3.b. Écrire une requête permettant d'obtenir les numéros des élèves (Num_eleve
) qui ont travaillé la compétence 532
.
Réponse
SELECT Num_eleve
FROM Resultats
JOIN Evaluations ON Resultats.Code_evaluation = Evaluations.Code_evaluation
WHERE Evaluation.Code_competences = 532
4.a. Proposer la structure d'une table Eleves
permettant d'identifier les noms, prénoms et les classes des élèves.
Réponse
Là encore on fait l'hypothèse que chaque élève possède un Num_eleve
unique.
Attribut | Type |
---|---|
Num_eleve |
CHAR |
Nom |
CHAR |
Prenom |
CHAR |
Classe |
CHAR |
4.b. Proposer une clé primaire pour cette table.
Réponse
La clé primaire serait Num_eleve
.