Transaktionen (Datenbankmodul)
Eine Transaktion ist eine Folge von Operationen, die als einzelne logische Arbeitseinheit ausgeführt wird. Eine logische Arbeitseinheit muss vier Eigenschaften aufweisen, die als ACID-Eigenschaften (Atomicity, Consistency, Isolation und Durability; Unteilbarkeit, Konsistenz, Isolation und Beständigkeit) bezeichnet werden, um als Transaktion zu gelten.
Unteilbarkeit
Eine Transaktion muss eine unteilbare Arbeitseinheit sein; entweder werden alle durch sie vorgesehenen Datenänderungen oder keine der Änderungen ausgeführt.
Konsistenz
Am Ende einer Transaktion müssen sich alle Daten in einem konsistenten Status befinden. In einer relationalen Datenbank müssen alle Regeln auf die Änderungen der Transaktion angewendet werden, um die Integrität aller Daten zu erhalten. Alle internen Datenstrukturen, wie B-Struktur-Indizes oder doppelt verknüpfte Listen, müssen am Ende der Transaktion richtig sein.
Isolation
Änderungen, die von gleichzeitigen Transaktionen ausgeführt werden, müssen von allen Änderungen, die von anderen gleichzeitigen Transaktionen ausgeführt werden, isoliert sein. Einer Transaktion stehen Daten entweder in dem Status zur Verfügung, in dem sie sich vor der Änderung durch eine andere gleichzeitige Transaktion befanden, oder in dem Status nach Beenden der zweiten Transaktion, jedoch nicht in einem Zwischenstatus. Dies wird als Serialisierbarkeit bezeichnet, da sich daraus die Fähigkeit ableitet, die Ausgangsdaten erneut zu laden und eine Reihe von Transaktionen erneut durchzuführen, um schließlich die Daten in dem Status zu erhalten, der vorlag, nachdem die ursprünglichen Transaktionen ausgeführt wurden.
Beständigkeit
Nach Abschluss einer Transaktion sind ihre Auswirkungen im System dauerhaft. Die Änderungen bleiben auch bei einem Systemfehler erhalten.
Angeben und Erzwingen von Transaktionen
SQL-Programmierer sind dafür verantwortlich, Transaktionen an Punkten zu starten und zu beenden, die die logische Konsistenz der Daten erzwingen. Der Programmierer muss die Sequenz der Datenänderungen so definieren, dass die Daten hinsichtlich der Geschäftsregeln der Organisation in konsistentem Status bleiben. Daraufhin schließt der Programmierer diese Änderungsanweisungen in eine einzelne Transaktion ein, sodass SQL Server 2005-Datenbankmodul die physikalische Integrität der Transaktion erzwingen kann.
Es ist die Aufgabe eines Unternehmensdatenbank-Systems, wie z. B. einer Instanz von Datenbankmodul, Mechanismen bereitzustellen, durch die die physikalische Integrität aller Transaktionen sichergestellt wird. Datenbankmodul stellt Folgendes bereit:
- Sperrvorrichtungen, durch die die Isolation jeder Transaktion erhalten bleibt.
- Protokolliervorrichtungen, durch die die Beständigkeit von Transaktionen sichergestellt wird. Sogar bei einem Fehler der Serverhardware, des Betriebssystems oder der Instanz von Datenbankmodul selbst verwendet die Instanz nach dem Neustart die Transaktionsprotokolle, um automatisch einen Rollback für alle nicht beendeten Transaktionen auszuführen, der sie auf ihren Status vor dem Systemfehler zurücksetzt.
- Features der Transaktionsverwaltung, die die Unteilbarkeit und Konsistenz der Transaktionen erzwingen. Nach Beginn einer Transaktion muss die Transaktion erfolgreich beendet werden, da die Instanz von Datenbankmodul sonst alle Datenänderungen rückgängig macht, die seit Beginn der Transaktion ausgeführt wurden.
Siehe auch
Konzepte
Steuern von Transaktionen (Datenbankmodul)
Explizite Transaktionen
Autocommit-Transaktionen
Implizite Transaktionen
Verteilte Transaktionen (Datenbankmodul)
Erweiterte Themen zu Transaktionen