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 ajoute une nouvelle colonne à une table existante ?
AUPDATE TABLE
BINSERT COLUMN
CCREATE COLUMN
DALTER TABLE
2.Facile
Qu'est-ce qu'une clé candidate ?
AUne colonne en attente de devenir une clé étrangère
BToute colonne contenant des valeurs NULL
CUn ensemble minimal de colonnes qui identifie de manière unique chaque ligne
DUn ensemble de colonnes partagé entre deux tables pour relier leurs lignes
3.Facile
Des instructions comme CREATE, ALTER et DROP appartiennent à quelle partie de SQL ?
ALe langage de manipulation de données (DML)
BLe langage de définition de données (DDL)
CLe langage de contrôle de données (DCL)
DLe langage de contrôle des transactions (TCL)
4.Moyen
Des étudiants peuvent suivre plusieurs cours et chaque cours a plusieurs étudiants. Comment modélise-t-on cela en tables ?
AEn fusionnant étudiants et cours dans une seule table
BAvec une colonne de clé étrangère course_id dans la table des étudiants qui pointe vers les cours
CAvec une liste d'identifiants de cours stockée dans une seule colonne
DAvec une table d'association contenant des clés étrangères vers les étudiants et vers les cours
5.Moyen
Quelle requête liste les clients qui n'ont jamais passé de commande ?
ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
CSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
6.Moyen
Qu'est-ce qu'une lecture sale (dirty read) ?
ALa lecture de données sur un disque corrompu
BLa lecture d'une même ligne deux fois avec la même valeur
CLa lecture de données écrites par une autre transaction qui n'a pas encore été validée
DLa lecture de données sans clause WHERE
7.Difficile
Le verrouillage à deux phases (2PL) garantit :
ADes ordonnancements sérialisables par conflits
BQue les transactions n'attendent jamais
CQu'aucun verrou n'est nécessaire
DQue les interblocages (deadlocks) ne peuvent jamais se produire
8.Difficile
Pourquoi de nombreux SGBD utilisent-ils le verrouillage à deux phases strict, en gardant les verrous exclusifs jusqu'à la validation ?
AIl empêche les annulations en cascade, car personne ne peut lire des écritures non validées
BIl supprime le besoin d'un journal des transactions
CIl permet aux transactions de lire des données sales sans risque
DIl rend les interblocages impossibles
Corrigé
1. D · ALTER TABLE
2. C · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
3. B · Le langage de définition de données (DDL)
4. D · Avec une table d'association contenant des clés étrangères vers les étudiants et vers les cours
5. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
6. C · La lecture de données écrites par une autre transaction qui n'a pas encore été validée
7. A · Des ordonnancements sérialisables par conflits
8. A · Il empêche les annulations en cascade, car personne ne peut lire des écritures non validées
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.