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 ?

  1. ATRUNCATE COLUMN
  2. BREMOVE
  3. CDROP
  4. DDELETE
2.Facile

Que fait une contrainte CHECK ?

  1. AElle vérifie le mot de passe de l'utilisateur
  2. BElle vérifie si une table existe avant qu'une requête lui soit appliquée
  3. CElle rejette les lignes dont les valeurs ne satisfont pas une condition
  4. DElle compte les lignes d'une table
3.Facile

Qu'est-ce qu'une clé composée (composite key) ?

  1. AUne clé générée par la base de données
  2. BUne clé formée de deux colonnes ou plus
  3. CUne clé qui autorise les doublons
  4. 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 ?

  1. AAvec une liste d'identifiants de cours stockée dans une seule colonne
  2. BEn fusionnant étudiants et cours dans une seule table
  3. CAvec une colonne de clé étrangère course_id dans la table des étudiants qui pointe vers les cours
  4. 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 ?

  1. ALa durabilité
  2. BL'isolation
  3. CL'atomicité
  4. DLa cohérence
6.Moyen

Quelle requête renvoie le nombre de commandes par client ?

  1. ASELECT DISTINCT COUNT(*) FROM orders
  2. BSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  3. CSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  4. 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 ?

  1. AAucune, elle est en BCNF
  2. BLa première forme normale, car la colonne grade ne contient pas de valeurs atomiques
  3. CLa deuxième forme normale, car student_name ne dépend que de student_id
  4. 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 ?

  1. AUne mise à jour perdue (lost update)
  2. BUne lecture sale
  3. CUne anomalie de suppression
  4. DUne lecture fantôme

Corrigé

  1. 1. D · DELETE
  2. 2. C · Elle rejette les lignes dont les valeurs ne satisfont pas une condition
  3. 3. B · Une clé formée de deux colonnes ou plus
  4. 4. D · Avec une table d'association contenant des clés étrangères vers les étudiants et vers les cours
  5. 5. A · La durabilité
  6. 6. C · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  7. 7. C · La deuxième forme normale, car student_name ne dépend que de student_id
  8. 8. A · Une mise à jour perdue (lost update)

Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.