Isolationsgrad

Der Isolationsgrad (isolation level) einer Transaktion legt fest, wie sich eine Transaktion beim Auftreten eines der Multiuser-Probleme (Dirty-Read, Non-Repeatable-Read oder Phantom) verhalten soll.

Der 'Isolationsgrad' hat unter SQL folgende Werte:

  1. read uncommitted
    • Eine Transaktion kann Daten lesen, die von einer anderen, noch nicht abgeschlossenen Transaktion geschrieben wurden.
  2. read committed
    • Eine Transaktion kann nur Daten lesen, die von einer anderen Transaktionen mit commit bestätigt wurden.
  3. repeatable read
    • Unbeabsichtigtes, nichtwiederholbares Lesen wird verhindert
  4. serializable
    • Mehrere Transaktionen verhalten sich so, als ob sie nacheinander statt gleichzeitig ausgeführt worden wären.

Charakterisierung des Isolationsgrades nach drei Problemen:

IsolationsgradDirty-ReadNon-Repeatable-ReadPhantom
read uncommittedjajaja
read committedneinjaja
repeatable readneinneinja
serializableneinneinnein

Der Isolationsgrad wird mit der SET-TRANSACTION -Anweisung festgelegt.

Die Datenbankhersteller fahren hier unterschiedliche Strategien. So sind unter Oracle und Postgres (siehe http://www.postgresql.org/files/documentation/books/pghandbuch/html/transaction-iso.html) nur der Isolationsgrade serializable und read committed möglich.

KategorieTransaktionen, SQL, I