Bases des bases de données

On considère les transactions T1 à T5 ; un point de contrôle (checkpoint) a été pris une fois avant qu'une panne ne survienne. T1 a démarré et a été validée avant le point de contrôle. T2 et T3 ont démarré avant le point de contrôle ; T2 a été validée après le point de contrôle mais avant la panne, et T3 n'était pas validée au moment de la panne. T4 et T5 ont démarré après le point de contrôle ; T4 a été validée avant la panne, et T5 ne l'était pas. Lors de la reprise après la panne, quelles transactions faut-il rejouer (rollforward) à l'aide du journal ?

  1. AT3 et T5
  2. BT1, T2 et T4
  3. CT2 et T4
Afficher la réponse et l'explication

Réponse : C. T2 et T4

Lors d'un point de contrôle, les pages de la base de données mises à jour en mémoire jusqu'à cet instant sont écrites sur le support de stockage, et ce fait est enregistré dans le journal. Les mises à jour de T1, validée avant le point de contrôle, sont donc déjà reflétées dans la base de données et ne nécessitent aucune reprise. T2 et T4, validées après le point de contrôle mais avant la panne, ont terminé leur validation, mais une partie de leurs mises à jour peut ne pas avoir été écrite dans la base ; elles sont donc rejouées à l'aide des valeurs après mise à jour du journal (rollforward). Pour T3 et T5, qui n'étaient pas validées au moment de la panne, les mises à jour partielles éventuellement écrites dans la base sont annulées à l'aide des valeurs avant mise à jour du journal (rollback). Une transaction qui a démarré avant le point de contrôle, comme T3, est elle aussi annulée si elle n'était pas validée. Prendre des points de contrôle raccourcit la reprise, car il n'est plus nécessaire de parcourir le journal depuis le tout début.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases des bases de données

  1. On a créé un index en arbre B+ sur la colonne NumMembre d'une table Membre de 1 million de lignes. Quelle combinaison associe correctement l'effet que l'on peut généralement attendre et son coût ?
  2. Pour une table Membre de 1 million de lignes, on envisage de créer un index en arbre B+ sur chacune des colonnes NumMembre (toutes différentes), Prefecture (47 valeurs) et Sexe (2 valeurs, réparties à peu près à moitié). Lors d'une recherche qui précise dans la clause WHERE la valeur d'une seule colonne, sur quelle colonne un index sera-t-il probablement le moins efficace ?
  3. Parmi les bases de données dites NoSQL, quelle description des caractéristiques d'une base clé-valeur est généralement correcte ?
  4. Quelle description du théorème CAP est appropriée pour une base de données distribuée qui conserve des copies des données sur plusieurs serveurs ?
  5. Dans la terminologie des bases de données relationnelles, quel terme correspond à une ligne d'une table (relation) ?