Isolationsgrad (Isolation Level)
Der Isolationsgrad, auch bekannt als Isolation Level, einer Datenbanktransaktion legt fest, wie sich eine Transaktion beim Auftreten von Problemen im Mehrbenutzerbetrieb verhalten soll.
Die Einhaltung des ACID Prinzips ist eine der wichtigsten Anforderungen an ein Datenbankmanagementsystem (DBMS), um parallele Transaktionen und den Mehrbenutzerbetrieb auf einer Datenbank (DB) zu ermöglichen.Die strenge Einhaltung von ACID führt in der Praxis jedoch zu Verzögerungen und langen Transaktionslaufzeiten und ist daher nicht praktikabel. Um den praktischen Anforderungen gerecht zu werden, wurde im Standard SQL die Forderung nach der Einhaltung des ACID Prinzips abgemildert. Daher weisen freie und auch viele kommerzielle DBMS Anbieter verschiedene Isolationsarten auf.
Mittels mehrstufiger Isolationsebenen sollen Transaktionen schneller verarbeitet werden können. Im Gegenzug kommt es dadurch zwangsläufig zu Anomalien im Mehrbenutzerbetrieb. Diese Anomalien wirken sich auf die Konsistenz der Datenbank aus. Man unterscheidet zwischen Dirty Read, Lost Update, Unrepeatable Read und dem Phantom Problem. Je nach Isolationsebene können mehrere Anomalien in Erscheinung treten.
Isolationsgrad | Dirty Read | Lost Update | Unrepeatable Read | Phantom Problem |
Read Uncommitted | x | x | x | x |
Read Committed | - | x | x | x |
Repeatable Read | - | - | - | x |
Serializable | - | - | - | - |
Isolationsgrade im Detail (Isolation Levels)
In den nachfolgenden Artikeln werden die vier Isolationsstufen beschrieben und anhand von Beispielen die Vor- und Nachteile sowie deren Wirkung verdeutlicht.