Grundlagen der Datenbanken

Welche Antwort nennt richtig die Phänomene, die unter dem im SQL-Standard definierten Isolationslevel READ COMMITTED auftreten können?

  1. AWeder Dirty Reads noch Non-repeatable Reads noch Phantom Reads können auftreten
  2. BDirty Reads können nicht auftreten, Non-repeatable Reads und Phantom Reads aber schon
  3. CDirty Reads und Non-repeatable Reads können nicht auftreten, Phantom Reads aber schon
Antwort und Erläuterung anzeigen

Antwort: B. Dirty Reads können nicht auftreten, Non-repeatable Reads und Phantom Reads aber schon

Der SQL-Standard definiert vier Isolationslevel, geordnet danach, wie wenige Phänomene sie verhindern: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ und SERIALIZABLE. Unter READ UNCOMMITTED können alle drei Phänomene auftreten. READ COMMITTED liest nur festgeschriebene Daten und verhindert so Dirty Reads, doch da jedes Lesen den in diesem Moment festgeschriebenen Wert sieht, können Non-repeatable Reads und Phantom Reads auftreten. REPEATABLE READ verhindert zusätzlich Non-repeatable Reads, Phantom Reads können aber weiterhin auftreten. SERIALIZABLE verhindert alle drei und garantiert dasselbe Ergebnis wie die Ausführung der Transaktionen nacheinander in irgendeiner Reihenfolge. Je höher das Isolationslevel, desto mehr Wartezeiten auf Sperren und Wiederholungen gibt es und desto weniger kann gleichzeitig verarbeitet werden; das Level wird daher passend zur Anwendung gewählt. In realen DBMS können das Standard-Isolationslevel und die auf jedem Level tatsächlich verhinderten Phänomene stärker sein als die Mindestanforderungen des Standards.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Datenbanken

  1. Transaktion T1 hält eine gemeinsame Sperre (Shared Lock) auf einer Zeile und liest sie. T2 fordert eine gemeinsame Sperre und T3 eine exklusive Sperre (Exclusive Lock) auf dieselbe Zeile an. Was gilt für den Zeitraum, bis T1 ihre Sperre freigibt?
  2. Welche Aussage beschreibt das für die Nebenläufigkeitskontrolle von Transaktionen verwendete Zwei-Phasen-Sperrprotokoll (2PL) richtig?
  3. Transaktion T1 setzte eine exklusive Sperre auf Zeile A und forderte dann eine Sperre auf Zeile B an, während T2 eine exklusive Sperre auf Zeile B setzte und dann eine Sperre auf Zeile A anforderte, sodass keine von beiden weiterkommt. Was tut ein DBMS üblicherweise, wenn es diese Situation erkennt?
  4. Viele DBMS zeichnen bei einer Datenänderung die Änderung in einem Protokoll (Journal, Log) auf und schreiben dieses Protokoll vor der eigentlichen Datenbank auf nichtflüchtigen Speicher (WAL: Write-Ahead Logging). Was ist der Hauptgrund für dieses Vorgehen?
  5. 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?