Grundlegendes zur Isolationseigenschaft in einer Datenbank
Isolation ist das Datenbank-level-Eigenschaft, die steuert, wie und wann Änderungen vorgenommen werden und ob sie füreinander, Benutzer und Systeme sichtbar werden. Eines der Ziele der Isolation besteht darin, zuzulassen, dass mehrere Transaktionen gleichzeitig ausgeführt werden, ohne dass die Ausführung der einzelnen Transaktionen beeinträchtigt wird.
Die Isolation ist ein integraler Bestandteil der Transaktionseigenschaften von Datenbanken. Es ist die dritte Eigenschaft des SÄURE (Atomizität, Konsistenz, Isolation, Haltbarkeit) Standards, die sicherstellen, dass die Daten konsistent und genau bleiben.
So funktioniert Isolation
Wenn Joe a Datenbanktransaktion Zur gleichen Zeit, in der Mary eine andere Transaktion ausgibt, sollten beide Transaktionen in der Datenbank isoliert ausgeführt werden. Die Datenbank sollte entweder Joes gesamte Transaktion ausführen, bevor Marys Transaktion ausgeführt wird oder umgekehrt.
Diese Exklusivität verhindert, dass Joes Transaktion Zwischendaten liest, die als Nebeneffekt eines Teils von Marys Transaktion erzeugt wurden und die schließlich nicht in die Datenbank übernommen werden.
Die Eigenschaft isolation stellt nicht sicher, dass eine bestimmte Transaktion zuerst ausgeführt wird, sondern dass sie sich nicht gegenseitig stören.
Isolationsstufen
Es gibt vier Isolationsstufen. Eine höhere Isolation schränkt die Möglichkeit von Benutzern ein, gleichzeitig auf dieselben Daten zuzugreifen. Je höher die Isolationsstufe, desto mehr Systemressourcen werden benötigt und desto wahrscheinlicher werden sich Datenbanktransaktionen gegenseitig blockieren.
- Serialisierbar ist die höchste Ebene, was bedeutet, dass eine Transaktion abgeschlossen sein muss, bevor eine andere Transaktion gestartet werden kann.
- Wiederholbarliest erlauben den Zugriff auf Transaktionen, sobald die Transaktion gestartet wurde, auch wenn sie noch nicht abgeschlossen ist. Diese Ebene ermöglicht Phantomlesevorgänge oder das Erkennen eingefügter oder gelöschter Zeilen, selbst wenn Änderungen an vorhandenen Zeilen nicht lesbar sind.
- Zugesagt lesen ermöglicht den Zugriff auf die Daten, nachdem die Daten an die Datenbank übergeben wurden, jedoch nicht vorher.
- Unverbindlich lesen ist die niedrigste Isolationsstufe und ermöglicht den Zugriff auf Daten, bevor die Änderungen vorgenommen wurden.
Je niedriger die Isolationsstufe ist, desto größer ist die Wahrscheinlichkeit, dass Benutzer auch auf Lesephänomene wie nicht festgeschriebene Abhängigkeiten stoßen bekannt als Dirty Reads, die dazu führen, dass Daten aus einer Zeile gelesen werden, die von einem anderen Benutzer geändert, aber noch nicht in die Datenbank übernommen wurde.