Home

Transaktionsisolation

Transaktionsisolation bezeichnet in relationalen Datenbanksystemen den Teil der Transaktionsverarbeitung, der bestimmt, wie und wann Transaktionen die Änderungen anderer Transaktionen sehen. Sie sorgt dafür, dass Transaktionen in einer Weise ablaufen, die konsistente Ergebnisse liefert und Konflikte minimiert. Die Isolation ist ein zentraler Bestandteil der ACID-Eigenschaften, insbesondere der Konsistenz und der Unabhängigkeit von parallel ablaufenden Transaktionen.

Typische Anomalien, die Isolation beeinflussen kann, sind Dirty Reads (Auslesen unbestätigter Änderungen), Non-repeatable Reads (eine Abfrage

In der ANSI-SQL-Norm werden mehrere Isolationsstufen unterschieden: Read Uncommitted, Read Committed, Repeatable Read und Serializable. Read

Viele Systeme realisieren Isolation durch Multiversion Concurrency Control (MVCC) oder traditionelle Sperrmechanismen. MVCC ermöglicht das Lesen

Zusätzliche Konzepte wie Snapshot Isolation bieten konsistente Schnappschüsse der Datenbank zum Beginn einer Transaktion. Sie verhindern

liefert
bei
erneutem
Ausführen
unterschiedliche
Ergebnisse)
und
Phantom
Reads
(neue
Zeilen
erscheinen
in
der
Abfrage,
nachdem
andere
Transaktionen
Daten
eingefügt
haben).
Uncommitted
erlaubt
Dirty
Reads;
Read
Committed
verhindert
sie.
Repeatable
Read
sorgt
dafür,
dass
Leseergebnisse
einer
Transaktion
bei
wiederholter
Abfrage
gleich
bleiben,
Serializable
verhindert
Phantom
Reads.
Die
Stufen
bieten
unterschiedliche
Balance
zwischen
Konsistenz
und
Parallelität.
von
Daten
ohne
Sperren,
indem
frühere
Versionen
der
Daten
beibehalten
werden.
Dadurch
können
Leseoperationen
unabhängig
von
schreibenden
Transaktionen
erfolgen.
Beispiele
für
MVCC-basierte
Implementierungen
sind
gängige
relationale
Systeme
wie
solche
mit
InnoDB-
oder
MVCC-Architekturen.
Stärkere
Isolationen
wie
Serializable
erreichen
Kohärenz,
indem
sie
zusätzliche
Sperrsichtlinien
oder
Synchronisationsmechanismen
nutzen,
oft
zu
Lasten
der
Parallelität.
Dirty
Reads
und
oft
auch
Non-repeatable
Reads,
können
jedoch
Write
Skew
zulassen.
Nicht
alle
Systeme
bezeichnen
Snapshot
Isolation
als
eigenständige
SQL-Stufe;
häufig
wird
Serializable
als
strengste
Stufe
bevorzugt.
Bei
der
Praxis
gilt:
Die
passende
Isolationsstufe
hängt
von
den
Anforderungen
an
Konsistenz
und
Nebenläufigkeit
der
Anwendung
ab.