Suchen

Definition Was ist ACID?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Der Begriff ACID (Atomicity, Consistency, Isolation, Durability) beschreibt Regeln und Eigenschaften zur Durchführung von Transaktionen in Datenbankmanagementsystemen (DBMS). Hält die Transaktion das ACID-Prinzip ein, gelten die Informationen in den Datenbanksystemen als verlässlich und konsistent.

(Bild: © aga7ta - stock.adobe.com)

ACID steht für die vier englischen Einzelbegriffe Atomicity, Consistency, Isolation und Durability und ist eine gängige Abkürzung der Informationstechnik. Im Deutschen lauten die vier Begriffe Atomarität, Konsistenz, Isolation und Dauerhaftigkeit. Oft wird im deutschsprachigen Raum das Akronym AKID verwendet. Das ACID-Prinzip stellt Regeln auf, wie mit Transaktionen in Datenbankmanagementsystemen zu verfahren ist, um für verlässliche, konsistente Daten und Systeme zu sorgen.

Eine Transaktion besteht aus einer Folge verschiedener Vorgänge, die diese ACID-Regeln einzuhalten haben. Geprägt wurde das Akronym ACID bereits im Jahr 1983 von den beiden Informatikern Andreas Reuter und Theo Härder. In Normen wie ISO/IEC 10.026-1:1992 oder ISO/IEC 10.026-1:1998 Abschnitt 4 ist das ACID-Prinzip beschrieben. Zur Umsetzung des ACID-Prinzips kommen Transaktions-Manager und Logging-Mechanismen zum Einsatz.

Die vier ACID-Grundprinzipien

Das ACID-Konzept besteht aus vier einzelnen Grundprinzipien. Diese Grundprinzipien lauten:

  • Atomicity oder Atomarität: Ausführung aller oder keiner Informationsteile einer Transaktion
  • Consistency oder Konsistenz: Transaktionen erzeugen einen gültigen Zustand oder fallen in den alten Zustand zurück
  • Isolation oder Abgrenzung: Transaktionen verschiedener Anwender oder Prozesse bleiben voneinander isoliert
  • Durability oder Dauerhaftigkeit: Nach einer erfolgreichen Transaktion bleiben die Daten dauerhaft gespeichert

Atomicity oder Atomarität: Eine Transaktion besteht aus einer Sequenz einzelner Aktionen. Diese Sequenz muss so ablaufen, dass entweder alle Einzelschritte komplett oder gar nicht ausgeführt werden. Treten während einer Sequenz Fehler auf, hat das System dafür zu sorgen, dass sämtliche bereits durch die Transaktion erfolgten Änderungen zurückgenommen werden. Alle Informationen einer unterbrochenen Transaktion sind ohne Spuren aus der Datenbank zu entfernen. Die einzelnen Datenbank-Operationen einer Transaktion sind erst gültig, wenn sie alle abgeschlossen sind. Datenbanksysteme realisieren die Atomarität durch ausführliches Logging aller durchgeführten Aktionen.

Consistency oder Konsistenz: Ist eine Transaktion erfolgreich abgeschlossen, muss sie in der zuvor konsistenten Datenbank einen wieder konsistenten Zustand hinterlassen. Es sind vor dem Abschluss der Transaktion die in einer Datenbank definierten Bedingungen für die Integrität und logische Konsistenz der Daten zu prüfen. Solche Bedingungen können die Einhaltung bestimmter Wertebereiche, das Vorhandensein von Schlüsseleigenschaften oder die Eindeutigkeit von Beziehungen sein. Führt eine Transaktion zur Verletzung der Konsistenzbedingungen, wird sie zurückgewiesen und sämtliche Daten werden auf den Zustand vor der Transaktion zurückgesetzt. Die Konsistenz ist vor und nach einer Transaktion sicherzustellen. Während der Transaktion dürfen durchaus inkonsistente Zustände auftreten.

Isolation oder Abgrenzung: Mit einer Datenbank arbeiten mehrere Benutzer oder Prozesse gleichzeitig. Sie lesen oder schreiben parallel Daten. Die Isolation (Abgrenzung) stellt sicher, dass die Nutzung der Datenbank durch mehrere Anwender keine negativen Auswirkungen nach sich zieht. Ereignisse wie das gegenseitige Überschreiben oder Löschen einzelner Datensätze ist unter allen Umständen zu verhindern. Für jeden Benutzer erscheint das Datenbankmanagementsystem wie ein exklusiv genutztes System, in dem sich die Transaktionen gegenseitig nicht beeinflussen und parallele Zugriffe unsichtbar bleiben. Man spricht auch von der Integrität des Ablaufs. Datenbanksysteme realisieren die Isolation mithilfe von Sperrverfahren.

Durability oder Dauerhaftigkeit: Ist eine Transaktion ausgeführt und konsistent, sind ihre Informationen dauerhaft in der Datenbank gespeichert. Zukünftige Fehler, Speicherausfälle oder Systemabstürze dürfen nicht dazu führen, dass Daten gelöscht und nicht mehr hergestellt werden. Die Dauerhaftigkeit lässt sich in einem Datenbankmanagementsystem ähnlich wie die Atomarität durch Logging-Maßnahmen realisieren. Mit einem Transaktionslog sind die Informationen nach einem Systemausfall durch Ausführung der protokollierten Schreib-Operationen reproduzierbar.

Vorteile durch die Einhaltung der ACID-Prinzipien

Durch die Einhaltung der ACID-Prinzipien entstehen bei der Arbeit mit Datenbanken zahlreiche Vorteile. Sowohl Anwender als auch Entwickler können von einer fehlerfreien Umgebung und konsistenten Daten ausgehen. Ist eine Transaktion vollständig ausgeführt, ist die Verfügbarkeit und Dauerhaftigkeit der Daten sichergestellt. Fehler während Transaktionen führen nicht zu fehlerhaften oder inkonsistenten Informationen in der Datenbank. Aufwendige manuelle Recherche- und Änderungsarbeiten zur Bereinigung von Fehlern sind nicht notwendig. In Mehrbenutzersystemen verhindert das ACID-Prinzip die gegenseitige Beeinflussung der Anwender. Eine nachgelagerte Überwachung der Integrität der Daten in den weiterverarbeitenden Anwendungen ist meist überflüssig.

ACID in verteilten Systemen

In verteilt arbeitenden Datenbankmanagementsystemen kann die Einhaltung des ACID-Prinzips zu einem erhöhten Aufwand führen. Insbesondere die parallele Arbeitsweise und die Datenhaltung an verschiedenen Orten der verteilten Systeme kann für ACID kritisch sein. Es kommen Verfahren wie das Zwei-Phasen-Commit (2PC) zum Einsatz.

(ID:45605865)

Über den Autor