Definition von Isolationsstufen - Amazon Neptune

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

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.

Mit dem SQLStandard:1992 wurde ein Vokabular zur Beschreibung von Isolationsstufen geschaffen. 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.

In der SQL Standard:1992 wurden vier Isolationsstufen definiert, für die unterschiedliche Garantien in Bezug auf die drei Arten von Interaktionen und die daraus resultierenden Inkonsistenzen gelten. 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-Parallelitätskontrolle (MVCC) ermöglicht eine weitere Art der Isolierung, nämlich die Isolierung. SNAPSHOT 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.