Frank Jonas: was sind transaktionen? wofür gut?

Beitrag lesen

Hallo,

in der Online-Hilfe zu SQL-Server steht:

Transaktionen
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 Zustand 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-Baum-Indizes oder doppelt verknüpfte Listen, müssen am Ende der Transaktion korrekt 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 Zustand zur Verfügung, in dem sie sich vor der Änderung durch eine andere gleichzeitige Transaktion befanden, oder in dem Zustand nach Beenden der zweiten Transaktion, jedoch nicht in einem Zwischenzustand. 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 Zustand 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.
Festlegen 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 Zustand bleiben. Daraufhin schließt der Programmierer diese Änderungsanweisungen in eine einzelne Transaktion ein, so dass Microsoft® SQL Server™ die physische Integrität der Transaktion erzwingen kann.

Es ist die Aufgabe eines Unternehmensdatenbanksystems, wie SQL Server, Mechanismen bereitzustellen, durch die die physische Integrität aller Transaktionen sichergestellt wird. SQL Server stellt Folgendes zur Verfügung:

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 von SQL Server selbst verwendet SQL Server nach dem Neustart die Transaktionsprotokolle, um automatisch einen Rollback für alle nicht beendeten Transaktionen auszuführen, der sie auf ihren Zustand vor dem Systemfehler zurücksetzt.
Funktionen der Transaktionsverwaltung, die die Unteilbarkeit und Konsistenz der Transaktionen erzwingen. Nach Beginn einer Transaktion muss die Transaktion erfolgreich beendet werden, da SQL Server sonst alle Datenänderungen rückgängig macht, die seit Beginn der Transaktion ausgeführt wurden.

HTH
Gruß Frank