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

Qu'est-ce qu'une clé de substitution (surrogate key) ?

  1. AUne clé qui fait référence à une autre table
  2. BUne clé utilisée uniquement dans les vues
  3. CUn identifiant artificiel sans signification métier, comme un id auto-incrémenté
  4. DUne clé tirée de données réelles, comme une adresse e-mail
2.Facile

Quelles lignes WHERE price BETWEEN 10 AND 20 sélectionne-t-il ?

  1. ALes lignes dont le prix est supérieur à 10 et inférieur à 20, 10 et 20 exclus
  2. BUniquement les lignes dont le prix est égal à 10 ou à 20
  3. CLes lignes dont le prix va de 10 à 20, bornes 10 et 20 incluses
  4. DLes lignes dont le prix est en dehors de l'intervalle de 10 à 20
3.Facile

Quel opérateur sert à une recherche simple par motif de texte dans une clause WHERE ?

  1. ALIKE
  2. BSIMILAR
  3. CMATCH
  4. DCONTAINS
4.Moyen

La deuxième forme normale (2NF) élimine :

  1. AToutes les valeurs NULL
  2. BLes dépendances transitives entre colonnes non clés via une autre colonne non clé
  3. CLes dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
  4. DLes clés étrangères
5.Moyen

Que signifie le « A » de ACID ?

  1. AAggregation (agrégation)
  2. BAtomicity (atomicité)
  3. CAccuracy (exactitude)
  4. DAvailability (disponibilité)
6.Moyen

Pourquoi SELECT price * 2 AS double_price FROM t WHERE double_price > 10 échoue-t-il dans la plupart des bases de données ?

  1. AWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
  2. BL'arithmétique n'est pas autorisée dans la liste du SELECT
  3. CLes alias ne peuvent pas contenir de tiret bas
  4. DWHERE ne peut comparer que des colonnes de texte
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. ALa deuxième forme normale, car student_name ne dépend que de student_id
  2. BUniquement la troisième forme normale, car grade dépend de student_name
  3. CLa première forme normale, car la colonne grade ne contient pas de valeurs atomiques
  4. DAucune, elle est en BCNF
8.Difficile

Pourquoi NATURAL JOIN est-il considéré comme risqué dans les requêtes de production ?

  1. AIl joint sur toutes les colonnes de même nom, si bien qu'une nouvelle colonne peut modifier le résultat sans prévenir
  2. BIl ignore les clés primaires et étrangères et ne garde que les lignes NULL
  3. CIl n'est pris en charge par aucune base de données
  4. DIl renvoie toujours un produit cartésien

Corrigé

  1. 1. C · Un identifiant artificiel sans signification métier, comme un id auto-incrémenté
  2. 2. C · Les lignes dont le prix va de 10 à 20, bornes 10 et 20 incluses
  3. 3. A · LIKE
  4. 4. C · Les dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
  5. 5. B · Atomicity (atomicité)
  6. 6. A · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
  7. 7. A · La deuxième forme normale, car student_name ne dépend que de student_id
  8. 8. A · Il joint sur toutes les colonnes de même nom, si bien qu'une nouvelle colonne peut modifier le résultat sans prévenir

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