Freigeben über


ACID-Eigenschaften

Der Ausdruck ACID vermittelt den Stellenwert, den Transaktionen in erfolgsentscheidenden Anwendungen einnehmen. Der Ausdruck ACID, wie er bereits von den ersten Entwicklern der Transaktionsverarbeitung geprägt wurde, steht für Atomicity, Consistency, Isolation und Durability (Unteilbarkeit, Konsistenz, Isolation und Dauerhaftigkeit).

Diese Eigenschaften gewährleisten ein berechenbares Verhalten und verdeutlichen das bei Transaktionen verfolgte alles-oder-nichts-Prinzip, das den Verwaltungsaufwand verringert, wenn eine Vielzahl von Variablen zu berücksichtigen ist.

Unteilbarkeit

Eine Transaktion stellt eine Verarbeitungseinheit dar, die zwischen den Anweisungen BEGIN TRANSACTION und END TRANSACTION in einer Anwendung mehrere aufeinander folgende Vorgänge zusammenfasst. Eine Transaktion wird genau einmal ausgeführt und ist unteilbar. Es wird entweder die gesamte Transaktion abgeschlossen oder keiner der Schritte ausgeführt.

Die in einer Transaktion zusammengefassten Vorgänge dienen i. d. R. einem gemeinsamen Zweck und hängen voneinander ab. Ein Erfüllen des Gesamtzwecks der Transaktion kann nicht mehr gewährleistet werden, wenn das System nur einen Teil dieser Vorgänge ausführt. Durch die Unteilbarkeit wird die Möglichkeit einer teilweise Verarbeitung der eingebundenen Vorgänge ausgeschlossen.

Konsistenz

Eine Transaktionseinheit gewährleistet die Integrität, da die Konsistenz der Daten erhalten bleibt und diese von einem konsistenten Zustand in einen neuen konsistenten Zustand überführt werden.

Konsistenz setzt voraus, dass die in einer Transaktion gebundenen Daten semantisch erhalten bleiben. Zu einem bestimmten Teil ist der Anwendungsentwickler dafür verantwortlich, dass die Konsistenz gewährleistet ist, da dieser sicherstellen muss, dass alle bekannten Integritätseinschränkungen innerhalb der Anwendung eingehalten werden. Bei der Entwicklung einer Anwendung für den Zahlungsverkehr sollte ein Entwickler z. B. vermeiden, dass Dezimalstellen während eines Transfers verschoben werden.

Isolation

Eine Transaktion bildet eine isolierte Einheit. Jede Transaktion kann bei gleichzeitigem Ausführen mehrerer Transaktionen so behandelt werden, als würde es sich um die einzige derzeit im System ausgeführte Transaktion handeln.

Isolation verlangt, dass jede Transaktion Änderungen am Datenspeicher vornehmen kann, als ob sie die einzige Transaktion wäre, auch wenn andere Transaktionen zur gleichen Zeit ausgeführt werden. Für eine Transaktion dürfen die Zwischenschritte einer anderen Transaktion nicht sichtbar sein.

Eine größtmögliche Isolation wird bei Transaktionen erreicht, die serialisiert werden können. Auf dieser Ebene sind die Ergebnisse, die mehrere gleichzeitig ausgeführte Transaktionen liefern, identisch mit den Ergebnissen einer aufeinander folgenden Verarbeitung der einzelnen Transaktionen. Da ein hoher Isolationsgrad u. U. die Zahl der Transaktionen verringert, die gleichzeitig ausgeführt werden können, verwenden einige Anwendungen eine niedrigere Isolationsstufe, um einen höheren Durchsatz zu erzielen.

Dauerhaftigkeit

Eine Transaktion bildet außerdem eine Wiederherstellungseinheit. Bei einer erfolgreichen Transaktion garantiert das System, dass alle Aktualisierungen dauerhaft sind, selbst wenn der Computer unmittelbar nach einem Commit abstürzen sollte. Eine spezielle Protokollierung ermöglicht den Abschluss nicht beendeter Vorgänge während des Neustarts des Systems und damit den dauerhaften Abschluss einer Transaktion.

Siehe auch

Grundlagen der Transaktionsverarbeitung