Was bedeutet es, wenn eine Datenbank ACID-konform ist?
What does it mean if a database is ACID compliant?
ACID is an acronym that stands for Atomicity, Consistency, Isolation, and Durability.
Atomicity means that actions occur either entirely or not at all; there is no partial write or situation where only part of an action was completed. For a database, this means that if data was written in a single transaction, that transaction either completes entirely or fails completely with no data left behind in a partial or corrupt state.
Consistency means that transactions take the state from one valid state to another valid state, with no way to enter an invalid state.
Isolation means that multiple readers/writers to the same database do not interfere with each other and can proceed without worrying about the effects of another action occurring.
Durability means that state is preserved across failures and shutdowns, e.g. that state is persisted to permanent storage.
ACID ist ein Akronym, das für Atomizität, Konsistenz, Isolation und Dauerhaftigkeit steht.
Atomarität bedeutet, dass Aktionen entweder ganz oder gar nicht stattfinden; es gibt keine partiellen Schreibvorgänge oder Situationen, in denen nur ein Teil einer Aktion abgeschlossen wurde. Für eine Datenbank bedeutet das: Wenn Daten in einer einzigen Transaktion geschrieben wurden, wird diese Transaktion entweder vollständig abgeschlossen oder schlägt vollständig fehl, ohne dass Daten in einem teilweisen oder beschädigten Zustand zurückbleiben.
Konsistenz bedeutet, dass Transaktionen den Zustand von einem gültigen Zustand in einen anderen gültigen Zustand überführen, ohne dass es eine Möglichkeit gibt, in einen ungültigen Zustand zu gelangen.
Isolation bedeutet, dass sich mehrere Leser/Schreiber derselben Datenbank nicht gegenseitig stören und dass sie fortfahren können, ohne sich Gedanken über die Auswirkungen einer anderen Aktion zu machen.
Dauerhaftigkeit bedeutet, dass der Zustand über Ausfälle und Abschaltungen hinweg erhalten bleibt, d.h. dass der Zustand in einem permanenten Speicher abgelegt wird.
summarization
In der Informatik ist ACID (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit) eine Reihe von Eigenschaften von Datenbanktransaktionen, die die Gültigkeit der Daten trotz Fehlern, Stromausfällen und anderen Missgeschicken garantieren sollen. Im Zusammenhang mit Datenbanken wird eine Abfolge von Datenbankoperationen, die die ACID-Eigenschaften erfüllen (die als eine einzige logische Operation an den Daten aufgefasst werden kann), als Transaktion bezeichnet. So ist zum Beispiel eine Überweisung von einem Bankkonto auf ein anderes, auch wenn dabei mehrere Änderungen vorgenommen werden, wie die Belastung eines Kontos und die Gutschrift auf einem anderen, eine einzige Transaktion.

1983 prägten Andreas Reuter und Theo Härder das Akronym ACID und knüpften damit an frühere Arbeiten von Jim Gray an, der bei der Beschreibung des Transaktionskonzepts Atomarität, Konsistenz und Dauerhaftigkeit, nicht aber Isolation, nannte. Diese vier Eigenschaften sind die wichtigsten Garantien des Transaktionsparadigmas, das viele Aspekte der Entwicklung von Datenbanksystemen beeinflusst hat.

Laut Gray und Reuter unterstützte das IBM Information Management System bereits 1973 ACID-Transaktionen (obwohl das Akronym erst später geschaffen wurde).

Atomarität
Hauptartikel: Atomarität (Datenbanksysteme)
Transaktionen setzen sich oft aus mehreren Anweisungen zusammen. Atomarität garantiert, dass jede Transaktion als eine einzige "Einheit" behandelt wird, die entweder vollständig erfolgreich ist oder vollständig fehlschlägt: Wenn eine der Anweisungen, aus denen eine Transaktion besteht, nicht abgeschlossen werden kann, schlägt die gesamte Transaktion fehl und die Datenbank bleibt unverändert. Ein atomares System muss die Atomarität in jeder Situation garantieren, auch bei Stromausfällen, Fehlern und Abstürzen. Eine Atomaritätsgarantie verhindert, dass Aktualisierungen der Datenbank nur teilweise durchgeführt werden, was zu größeren Problemen führen kann, als die gesamte Serie zu verwerfen. Die Folge ist, dass die Transaktion nicht von einem anderen Datenbank-Client beobachtet werden kann. Zu einem Zeitpunkt ist sie noch nicht erfolgt, und zum nächsten Zeitpunkt ist sie bereits vollständig erfolgt (oder es ist nichts passiert, wenn die Transaktion abgebrochen wurde).

Konsistenz
Hauptartikel: Konsistenz (Datenbanksysteme)
Konsistenz stellt sicher, dass eine Transaktion die Datenbank nur von einem konsistenten Zustand in einen anderen bringen kann, wobei die Datenbankinvarianten erhalten bleiben: Alle Daten, die in die Datenbank geschrieben werden, müssen nach allen definierten Regeln gültig sein, einschließlich Constraints, Kaskaden, Triggern und jeder Kombination davon. Dies verhindert eine Beschädigung der Datenbank durch eine illegale Transaktion. Referentielle Integrität garantiert die Primärschlüssel-Fremdschlüssel-Beziehung.

Isolation
Hauptartikel: Isolation (Datenbanksysteme)
Transaktionen werden oft gleichzeitig ausgeführt (z. B. mehrere Transaktionen, die gleichzeitig auf eine Tabelle zugreifen und in sie schreiben). Die Isolierung stellt sicher, dass die Datenbank bei der gleichzeitigen Ausführung von Transaktionen denselben Zustand erhält, der bei einer sequentiellen Ausführung der Transaktionen erreicht worden wäre. Die Isolierung ist das Hauptziel der Gleichzeitigkeitskontrolle; je nach dem verwendeten Isolierungsgrad sind die Auswirkungen einer unvollständigen Transaktion für andere Transaktionen möglicherweise nicht sichtbar.

Dauerhaftigkeit
Hauptartikel: Dauerhaftigkeit (Datenbanksysteme)
Die Dauerhaftigkeit garantiert, dass eine Transaktion, die einmal festgeschrieben wurde, auch bei einem Systemausfall (z. B. bei einem Stromausfall oder Absturz) festgeschrieben bleibt. Das bedeutet in der Regel, dass abgeschlossene Transaktionen (oder ihre Auswirkungen) im nichtflüchtigen Speicher aufgezeichnet werden.
de