ACID-Transaktionen
ACID-Transaktionen garantieren, dass eine Gruppe von Datenbankoperationen sich als eine einzige, zuverlässige Einheit verhält, die atomar, konsistenzerhaltend, von anderen Transaktionen isoliert und nach dem Commit dauerhaft ist.
Definition
Eine Transaktion ist eine Arbeitseinheit, die aus einer oder mehreren Datenbankoperationen besteht, die das System mit den ACID-Garantien ausführt: Atomarität, Konsistenz, Isolation und Dauerhaftigkeit; sie endet entweder durch Commit (ihre Effekte werden dauerhaft gemacht) oder durch Abbruch (alle ihre Effekte werden rückgängig gemacht).
Scope
Dieses Thema behandelt die Transaktionsabstraktion und die vier ACID-Eigenschaften im Detail: Atomarität (Alles-oder-Nichts-Commit oder -Abbruch), Konsistenz (jede Transaktion überführt die Datenbank von einem gültigen Zustand in einen anderen), Isolation (gleichzeitige Transaktionen beeinflussen sich nicht beobachtbar) und Dauerhaftigkeit (festgeschriebene Effekte bleiben bei Fehlern erhalten). Es behandelt die Semantik von Commit und Abbruch und wie die Eigenschaften mit der Parallelitätskontrolle und der Wiederherstellung zusammenhängen. Spezifische Protokolle, die Isolation und Dauerhaftigkeit implementieren, werden ausgeschlossen, da sie angrenzende Themen sind.
Core questions
- Was garantiert jede der ACID-Eigenschaften?
- Wie definieren Commit und Abbruch das Alles-oder-Nichts-Verhalten einer Transaktion?
- Wie hängt Isolation mit Serialisierbarkeit und Parallelitätskontrolle zusammen?
- Wie wird Dauerhaftigkeit trotz Systemabstürzen erreicht?
- Was sind die Grenzen des Transaktionsmodells für langlaufende oder verteilte Arbeiten?
Key concepts
- Transaktion als Arbeitseinheit
- Atomarität
- Konsistenz
- Isolation
- Dauerhaftigkeit
- Commit und Abbruch
- Rollback
- Transaktionszustandsmodell
Key theories
- Atomarität und Dauerhaftigkeit
- Atomarität stellt sicher, dass die Effekte einer Transaktion vollständig oder gar nicht angewendet werden, selbst bei Fehlern, und Dauerhaftigkeit stellt sicher, dass einmal festgeschriebene Änderungen einen Absturz überleben; beides wird durch Protokollierung und Wiederherstellung implementiert.
- Konsistenz und Isolation
- Konsistenz erfordert, dass jede festgeschriebene Transaktion die Integritätsbedingungen der Datenbank bewahrt, und Isolation erfordert, dass gleichzeitige Transaktionen Ergebnisse liefern, die einer seriellen Reihenfolge entsprechen, wobei Zwischenzustände voreinander verborgen bleiben.
- Das Transaktionskonzept und seine Grenzen
- Die Transaktionsabstraktion vereinfacht die Argumentation über Fehler und Parallelität, aber Gray bemerkte Einschränkungen für langlebige Aktivitäten und über Systemgrenzen hinweg, was spätere Arbeiten zu Sagas und verteilten Transaktionen motivierte.
Clinical relevance
ACID-Transaktionen sind der Grund, warum Datenbanken bei kritischen Operationen vertrauenswürdig sind: Eine Geldüberweisung, eine Bestandsreduzierung oder eine Reservierung wird entweder vollständig abgeschlossen oder gar nicht und überlebt Abstürze, weshalb transaktionale Datenbanken das Rückgrat von Bank-, Handels- und Aufzeichnungssystemen bilden.
History
Jim Gray formulierte 1981 das Transaktionskonzept und seine Vorzüge und Grenzen; Härder und Reuter prägten 1983 in ihrer Übersicht über transaktionsorientierte Wiederherstellung das Akronym ACID. Diese Ideen, die um IBMs System R entwickelt wurden, wurden zum Standardmodell zuverlässiger Datenverarbeitung und prägten jedes nachfolgende Datenbanksystem.
Key figures
- Jim Gray
- Andreas Reuter
- Theo Härder
Related topics
Seminal works
- gray1981
- haerder1983
- gray1992
Frequently asked questions
- Was ist der Unterschied zwischen Konsistenz in ACID und der Konsistenz im CAP-Theorem?
- Es handelt sich um unterschiedliche Konzepte. ACID-Konsistenz bedeutet, dass eine Transaktion die Integritätsbedingungen der Datenbank bewahrt und sie zwischen gültigen Zuständen überführt. CAP-Konsistenz bezieht sich darauf, dass alle Replikate in einem verteilten System sich auf den neuesten Wert einigen. Ein System kann das eine ohne das andere erfüllen, sodass dasselbe Wort in den beiden Kontexten unterschiedliche Eigenschaften bezeichnet.
- Sind ACID-Eigenschaften voneinander unabhängig?
- Sie sind konzeptionell unterschiedliche Garantien, werden aber durch überlappende Mechanismen implementiert. Atomarität und Dauerhaftigkeit ergeben sich aus Protokollierung und Wiederherstellung; Isolation ergibt sich aus der Parallelitätskontrolle; und Konsistenz wird gemeinsam durch die Transaktionslogik der Anwendung und die Durchsetzung der anderen drei Eigenschaften durch das System gewahrt.