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 ?

  1. AUPDATE TABLE
  2. BINSERT COLUMN
  3. CCREATE COLUMN
  4. DALTER TABLE
2.Facile

Qu'est-ce qu'une clé candidate ?

  1. AUne colonne en attente de devenir une clé étrangère
  2. BToute colonne contenant des valeurs NULL
  3. CUn ensemble minimal de colonnes qui identifie de manière unique chaque ligne
  4. 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 ?

  1. ALe langage de manipulation de données (DML)
  2. BLe langage de définition de données (DDL)
  3. CLe langage de contrôle de données (DCL)
  4. 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 ?

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

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  3. CSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  4. 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) ?

  1. ALa lecture de données sur un disque corrompu
  2. BLa lecture d'une même ligne deux fois avec la même valeur
  3. CLa lecture de données écrites par une autre transaction qui n'a pas encore été validée
  4. DLa lecture de données sans clause WHERE
7.Difficile

Le verrouillage à deux phases (2PL) garantit :

  1. ADes ordonnancements sérialisables par conflits
  2. BQue les transactions n'attendent jamais
  3. CQu'aucun verrou n'est nécessaire
  4. 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 ?

  1. AIl empêche les annulations en cascade, car personne ne peut lire des écritures non validées
  2. BIl supprime le besoin d'un journal des transactions
  3. CIl permet aux transactions de lire des données sales sans risque
  4. DIl rend les interblocages impossibles

Corrigé

  1. 1. D · ALTER TABLE
  2. 2. C · Un ensemble minimal de colonnes qui identifie de manière unique chaque ligne
  3. 3. B · Le langage de définition de données (DDL)
  4. 4. D · Avec une table d'association contenant des clés étrangères vers les étudiants et vers les cours
  5. 5. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  6. 6. C · La lecture de données écrites par une autre transaction qui n'a pas encore été validée
  7. 7. A · Des ordonnancements sérialisables par conflits
  8. 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.