Grundlagen der Datenbanken

Es gibt die Transaktionen T1 bis T5, und vor einem Ausfall wurde einmal ein Checkpoint gesetzt. T1 begann und wurde vor dem Checkpoint festgeschrieben. T2 und T3 begannen vor dem Checkpoint; T2 wurde nach dem Checkpoint, aber vor dem Ausfall festgeschrieben, T3 war zum Zeitpunkt des Ausfalls nicht festgeschrieben. T4 und T5 begannen nach dem Checkpoint; T4 wurde vor dem Ausfall festgeschrieben, T5 nicht. Für welche Transaktionen ist bei der Wiederherstellung nach dem Ausfall ein Rollforward anhand des Protokolls nötig?

  1. AT3 und T5
  2. BT1, T2 und T4
  3. CT2 und T4
Antwort und Erläuterung anzeigen

Antwort: C. T2 und T4

Bei einem Checkpoint werden die bis dahin im Arbeitsspeicher geänderten Datenbankseiten auf den Speicher geschrieben, und dies wird im Protokoll vermerkt. Die Änderungen von T1, die vor dem Checkpoint festgeschrieben wurde, sind daher bereits in der Datenbank enthalten und brauchen keine Wiederherstellung. T2 und T4, die nach dem Checkpoint, aber vor dem Ausfall festgeschrieben wurden, haben ihren Commit abgeschlossen, doch ein Teil ihrer Änderungen ist möglicherweise noch nicht in die Datenbank geschrieben; sie werden daher mit den Nachher-Werten im Protokoll wiederholt (Rollforward). Bei T3 und T5, die zum Zeitpunkt des Ausfalls nicht festgeschrieben waren, werden etwaige bereits in die Datenbank geschriebene Teiländerungen mit den Vorher-Werten im Protokoll rückgängig gemacht (Rollback). Auch eine vor dem Checkpoint begonnene Transaktion wie T3 wird rückgängig gemacht, wenn sie nicht festgeschrieben war. Checkpoints verkürzen die Wiederherstellung, weil das Protokoll nicht von Anfang an durchlaufen werden muss.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Datenbanken

  1. Auf der Spalte MitgliedsNr einer Mitgliedertabelle mit 1 Million Zeilen wurde ein B+-Baum-Index angelegt. Welche Kombination aus allgemein zu erwartender Wirkung und deren Preis ist richtig?
  2. Für eine Mitgliedertabelle mit 1 Million Zeilen wird erwogen, auf den Spalten MitgliedsNr (alle verschieden), Präfektur (47 Werte) und Geschlecht (2 Werte, etwa je zur Hälfte) jeweils einen B+-Baum-Index anzulegen. Bei welcher Spalte ist ein Index bei einer Suche, die in der WHERE-Klausel einen Wert für eine Spalte angibt, voraussichtlich am wenigsten wirksam?
  3. Welche Aussage beschreibt unter den als NoSQL bezeichneten Datenbanken die Eigenschaften eines Key-Value-Stores im Allgemeinen richtig?
  4. Welche Beschreibung des CAP-Theorems für eine verteilte Datenbank, die Kopien der Daten auf mehreren Servern hält, ist zutreffend?
  5. Welcher Begriff der relationalen Datenbanken bezeichnet eine Zeile einer Tabelle (Relation)?