

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Definition von Isolationsstufen
<a name="transactions-isolation-levels"></a>

Das „I“ in `ACID` steht für *Isolation*. Der Grad der Isolation einer Transaktion bestimmt, wie stark sich andere gleichzeitige Transaktionen auf die Daten auswirken können, auf denen sie ausgeführt wird.

Der [SQL:1992-Standard](http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt) hat ein Vokabular für die Beschreibung der Isolationsstufen erstellt. Er definiert drei Arten von Interaktionen (als *Phänomene* bezeichnet), die zwischen zwei gleichzeitigen Transaktionen auftreten können, `Tx1` und `Tx2`:
+ `Dirty read` – Dies tritt auf, wenn `Tx1` ein Element ändert und `Tx2` dieses Element liest, bevor `Tx1` ein Commit für die Änderung ausgeführt hat. Wenn die `Tx1` kein Commit für die Änderung erfolgreich durchführen kann oder sie zurückabwickelt, hat `Tx2` einen Wert gelesen, der nie in die Datenbank gelangt ist.
+ `Non-repeatable read` – Dies tritt auf, wenn `Tx1` ein Element liest, `Tx2` dieses Element ändert oder löscht und ein Commit für die Änderung ausführt und `Tx1` versucht, das Element erneut zu lesen. `Tx1` liest jetzt einen anderen Wert als zuvor oder stellt fest, dass das Element nicht mehr vorhanden ist.
+ `Phantom read` – Dies tritt auf, `Tx1` einen Satz von Elementen liest, die ein Suchkriterium erfüllen, `Tx2` ein neues Element hinzufügt, das dem Suchkriterium entspricht, und `Tx1` die Suche wiederholt. `Tx1` erhält jetzt einen anderen Satz von Elementen als zuvor.

Jede dieser drei Interaktionsarten kann zu Inkonsistenzen in den resultierenden Daten in einer Datenbank führen.

Der SQL:1992-Standard definiert vier Isolationsstufen mit unterschiedlichen Garantien in Bezug auf die drei Arten von Interaktionen und die Inkonsistenzen, die dadurch entstehen können. Auf allen vier Stufen kann garantiert werden, dass eine Transaktion vollständig oder gar nicht ausgeführt wird:
+ `READ UNCOMMITTED` –  Unterstützt alle drei Interaktionsarten (d. h. „Dirty“-Lesevorgänge, nicht wiederholbare Lesevorgänge und „Phantomlesevorgänge“).
+ `READ COMMITTED` –  „Dirty“-Lesevorgänge sind nicht möglich, nicht wiederholbare und Phantomlesevorgänge sind jedoch möglich.
+ `REPEATABLE READ` – Weder „Dirty“-Lesevorgänge noch nicht wiederholbare Lesevorgänge sind möglich, Phantomlesevorgänge sind jedoch möglich.
+ `SERIALIZABLE` – Keine der drei Interaktionsarten ist möglich.

Multiversion Concurrency Control (MVCC) ermöglicht eine andere Art von Isolation, nämlich die *SNAPSHOT*-Isolation. Auf diese Weise wird sichergestellt, dass eine Transaktion mit einem Snapshot der Daten arbeitet, der beim Start der Transaktion vorhanden ist, und dass keine andere Transaktion diesen Snapshot ändern kann.