Isolierung

Definition - Was bedeutet Isolation?

Die Isolation gibt im Kontext von Datenbanken an, wann und wie die in einer Operation implementierten Änderungen für andere parallele Operationen sichtbar werden. Die Transaktionsisolation ist ein wichtiger Bestandteil jedes Transaktionssystems. Es befasst sich mit der Konsistenz und Vollständigkeit von Daten, die durch Abfragen abgerufen werden, die die Benutzerdaten durch andere Benutzeraktionen nicht beeinflussen. Eine Datenbank erfasst Sperren für Daten, um ein hohes Maß an Isolation aufrechtzuerhalten.

Technische.me erklärt Isolation

Eine Anzahl von Isolationsstufen wird definiert, um den Grad der Datensperrung zu steuern. Ein hohes Maß an Isolation kann dazu führen, dass der Overhead für das System gesperrt wird und Deadlocks entstehen. Die vier Hauptisolationsstufen sind: Read Uncommitted: Diese Stufe behandelt Dirty Reads, bei denen die gelesenen Daten nicht mit anderen Teilen der Tabelle oder Abfrage übereinstimmen und nicht festgeschrieben sind. Hier werden Daten ohne Überprüfung, Validierung und Verarbeitung direkt aus Tabellenblöcken gelesen. Daher sind die Daten so schmutzig wie möglich. Read Committed: In diesem Fall sind Zeilen, die von einer Abfrage zurückgegeben werden, Zeilen, die bereits beim Start der Abfrage festgeschrieben wurden. Da das Festschreiben vor dem Start der Abfrage abgeschlossen ist, wird das Ergebnis nicht in der Abfrageausgabe angezeigt. Wiederholtes Lesen: Die von einer Abfrage in diesem Fall zurückgegebenen Zeilen werden beim Start der Transaktion festgeschrieben. Die vorgenommenen Änderungen sind in der Transaktion nicht vorhanden und werden daher nicht im Abfrageergebnis angezeigt. Serialisierbar: Auf dieser Ebene erfolgen Transaktionen vollständig isoliert, seriell nacheinander. Datenbanken wie Oracle und Postgre SQL garantieren manchmal keine serielle Reihenfolge von Transaktionen, unterstützen jedoch die Snapshot-Isolation, bei der alle Lesevorgänge in einer Transaktion konsistente Snapshots der Datenbank sind und Transaktionen nur dann festgeschrieben werden, wenn keine Updates Konflikte mit anderen gleichzeitigen Updates seit dem Snapshot hervorrufen. Durch Snapshot-Isolationen zulässige Anomalien können zu einer Verletzung der Datenkonsistenz führen, indem Transaktionen verschachtelt werden, die die Konsistenz gewährleisten. Diese Anomalien können durch Einführen von Aktualisierungskonflikten oder künstliches Sperren beseitigt werden. In allen Datenbanken können Benutzer ihre Standardisolationsstufen festlegen. Die gewählten perfekten Isolationsstufen verhindern, dass Anwendungen Fehler wie Dirty Reads, wiederholbare Reads und Phantom Reads verursachen. Wenn die erste Transaktion nicht festgeschriebene Änderungen liest, die von der zweiten Transaktion vorgenommen wurden, führt dies zu fehlerhaften Lesevorgängen. Wenn ein gelesener Datenwert gleich bleibt, wenn er während derselben Transaktion erneut gelesen wird, handelt es sich um einen wiederholbaren Lesevorgang. Phantom-Lesevorgänge treten auf, wenn Transaktionen vor dem Einfügen auf neu hinzugefügte Datensätze hingewiesen werden. Die verschiedenen Isolationsstufen für Datenbanksperren sind: Lesesperren: Lesesperren verhindern, dass während einer Transaktion gelesene Daten geändert werden, bis die Transaktion endet, wodurch Fälle wiederholbarer Lesevorgänge beseitigt werden. Andere Transaktionen können diese Daten lesen, es wird jedoch kein Schreib- oder Änderungszugriff bereitgestellt. Schreibsperren: Schreibsperren verhindern, dass andere Transaktionen Daten ändern, bis die Transaktion endet. Exklusive Schreibsperren: Die exklusive Schreibsperre verhindert, dass andere Transaktionen Daten lesen oder ändern, bis die aktuelle Transaktion endet. Schnappschüsse: Ein Schnappschuss ist eine eingefrorene Ansicht der Daten, wenn die Transaktion beginnt. Es verhindert Dirty Reads, nicht wiederholbare Lesevorgänge und Phantom Reads. Diese Definition wurde im Kontext von Datenbanken geschrieben