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) ?
AUne clé qui fait référence à une autre table
BUne clé utilisée uniquement dans les vues
CUn identifiant artificiel sans signification métier, comme un id auto-incrémenté
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 ?
ALes lignes dont le prix est supérieur à 10 et inférieur à 20, 10 et 20 exclus
BUniquement les lignes dont le prix est égal à 10 ou à 20
CLes lignes dont le prix va de 10 à 20, bornes 10 et 20 incluses
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 ?
ALIKE
BSIMILAR
CMATCH
DCONTAINS
4.Moyen
La deuxième forme normale (2NF) élimine :
AToutes les valeurs NULL
BLes dépendances transitives entre colonnes non clés via une autre colonne non clé
CLes dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
DLes clés étrangères
5.Moyen
Que signifie le « A » de ACID ?
AAggregation (agrégation)
BAtomicity (atomicité)
CAccuracy (exactitude)
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 ?
AWHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
BL'arithmétique n'est pas autorisée dans la liste du SELECT
CLes alias ne peuvent pas contenir de tiret bas
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 ?
ALa deuxième forme normale, car student_name ne dépend que de student_id
BUniquement la troisième forme normale, car grade dépend de student_name
CLa première forme normale, car la colonne grade ne contient pas de valeurs atomiques
DAucune, elle est en BCNF
8.Difficile
Pourquoi NATURAL JOIN est-il considéré comme risqué dans les requêtes de production ?
AIl joint sur toutes les colonnes de même nom, si bien qu'une nouvelle colonne peut modifier le résultat sans prévenir
BIl ignore les clés primaires et étrangères et ne garde que les lignes NULL
CIl n'est pris en charge par aucune base de données
DIl renvoie toujours un produit cartésien
Corrigé
1. C · Un identifiant artificiel sans signification métier, comme un id auto-incrémenté
2. C · Les lignes dont le prix va de 10 à 20, bornes 10 et 20 incluses
3. A · LIKE
4. C · Les dépendances partielles des colonnes non clés vis-à-vis d'une partie d'une clé composée
5. B · Atomicity (atomicité)
6. A · WHERE est évalué avant la liste du SELECT, donc l'alias n'existe pas encore
7. A · La deuxième forme normale, car student_name ne dépend que de student_id
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.