Fiche d’exercices de Bases de données et SQL avec corrigé
Fiche d’exercices de Bases de données et SQL gratuite et imprimable : 8 exercices, du niveau facile au niveau examen, avec corrigé. Imprimez-la ou enregistrez-la en PDF.
Pour les enseignants : gratuite à imprimer, copier et utiliser en classe. Chaque nouvelle fiche a de nouvelles valeurs et son propre corrigé. Un lien vers ExamProblems sur la page de votre cours est apprécié.
Nom: ____________________ Date: ____________
1.Facile
Quelle instruction supprime des lignes d'une table ?
ATRUNCATE COLUMN
BREMOVE
CDROP
DDELETE
2.Facile
Que fait une contrainte CHECK ?
AElle vérifie le mot de passe de l'utilisateur
BElle vérifie si une table existe avant qu'une requête lui soit appliquée
CElle rejette les lignes dont les valeurs ne satisfont pas une condition
DElle compte les lignes d'une table
3.Facile
Qu'est-ce qu'une clé composée (composite key) ?
AUne clé générée par la base de données
BUne clé formée de deux colonnes ou plus
CUne clé qui autorise les doublons
DUne clé stockée dans une table séparée
4.Moyen
Des étudiants peuvent suivre plusieurs cours et chaque cours a plusieurs étudiants. Comment modélise-t-on cela en tables ?
AAvec une liste d'identifiants de cours stockée dans une seule colonne
BEn fusionnant étudiants et cours dans une seule table
CAvec une colonne de clé étrangère course_id dans la table des étudiants qui pointe vers les cours
DAvec une table d'association contenant des clés étrangères vers les étudiants et vers les cours
5.Moyen
Quelle propriété ACID garantit que les modifications validées survivent à une panne du système ?
ALa durabilité
BL'isolation
CL'atomicité
DLa cohérence
6.Moyen
Quelle requête renvoie le nombre de commandes par client ?
ASELECT DISTINCT COUNT(*) FROM orders
BSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
CSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
DSELECT customer_id FROM orders WHERE COUNT(*) > 0
7.Difficile
La table enrolment(student_id, course_id, student_name, grade) a pour clé (student_id, course_id). Quelle forme normale viole-t-elle ?
AAucune, elle est en BCNF
BLa première forme normale, car la colonne grade ne contient pas de valeurs atomiques
CLa deuxième forme normale, car student_name ne dépend que de student_id
DUniquement la troisième forme normale, car grade dépend de student_name
8.Difficile
Deux transactions lisent toutes deux stock = 10, retirent chacune 1 et écrivent le résultat, ce qui donne 9 au lieu de 8. De quelle anomalie s'agit-il ?
AUne mise à jour perdue (lost update)
BUne lecture sale
CUne anomalie de suppression
DUne lecture fantôme
Corrigé
1. D · DELETE
2. C · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
3. B · Une clé formée de deux colonnes ou plus
4. D · Avec une table d'association contenant des clés étrangères vers les étudiants et vers les cours
5. A · La durabilité
6. C · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
7. C · La deuxième forme normale, car student_name ne dépend que de student_id
8. A · Une mise à jour perdue (lost update)
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.