Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

ACID

ACID, deutsch auch AKID, ist eine Abkürzung in der Informatik. Es beschreibt häufig erwünschte Eigenschaften von Transaktionen in …

Inhalt4 Abschnitte
  1. 1. Bedeutung von ACID
  2. 2. Atomarität und Konsistenz
  3. 3. Isolation bei gleichzeitigen Zugriffen
  4. 4. Dauerhafte Speicherung und Grenzen

Bedeutung von ACID

ACID (deutsch auch AKID) bezeichnet vier häufig erwünschte Eigenschaften von Transaktionen in Datenbankmanagementsystemen (DBMS) und verteilten Systemen: Atomicity, Consistency, Isolation und Durability, also Atomarität, Konsistenz, Isolation und Dauerhaftigkeit. Sie gelten als Voraussetzung für die Verlässlichkeit solcher Systeme.

Eine Transaktion ist eine Folge von Datenbank-Operationen. Das ACID-Modell beschreibt, wie diese Folge zuverlässig abgeschlossen wird, auch wenn Fehler auftreten oder mehrere Transaktionen gleichzeitig arbeiten. Das Akronym ACID zur Charakterisierung von Transaktionen prägten Theo Härder und Andreas Reuter 1983.

Atomarität und Konsistenz

Atomarität ist die Alles-oder-nichts-Eigenschaft: Eine Transaktion wird entweder vollständig oder gar nicht ausgeführt. Zwar werden ihre einzelnen Datenbankanweisungen in der Praxis nacheinander ausgeführt. Global gelten sie aber erst als gültig und wirksam, wenn die gesamte Transaktion erfolgreich abgeschlossen ist.

Kann eine Transaktion nicht vollständig abgeschlossen werden, bleibt der ursprüngliche Bereich gültig. Dann erfolgt ein Rollback, also das Rückgängigmachen der bis dahin ausgeführten Anweisungen, soweit dies nötig ist. Alternativ kann der für Änderungen zwischengenutzte Speicherbereich freigegeben werden.

Konsistenz bedeutet, dass eine Transaktion nach ihrem Ende einen konsistenten Datenbankzustand hinterlässt, sofern die Datenbank vorher konsistent war. Vor dem Abschluss müssen deshalb alle im Datenbankschema festgelegten Integritätsbedingungen überprüft werden. Integritätsbedingungen sind Regeln, die für gültige Daten gelten. Ist ihre Prüfung nicht möglich oder tritt ein Fehler auf, wird die gesamte Transaktion rückgängig gemacht.

Isolation bei gleichzeitigen Zugriffen

Isolation verhindert oder begrenzt, dass sich gleichzeitig laufende, also nebenläufige Transaktionen gegenseitig beeinflussen. Üblicherweise wird dies durch Sperrverfahren umgesetzt: Vor einem Datenzugriff werden die benötigten Daten für andere Transaktionen gesperrt.

Solche Sperren verringern jedoch die Nebenläufigkeit und können zu Blockierungen führen. Daher lässt sich das Isolationsverfahren in vielen Datenbanksystemen konfigurieren. Um mehr Nebenläufigkeit zu erreichen, können dabei bestimmte eigentlich unerwünschte Beeinflussungen zugelassen werden. Der transaktionale Isolationsgrad legt fest, welche Arten der Beeinflussung erlaubt sind. Verbreitete Einstellungen sind READ COMMITTED, REPEATABLE READ und SERIALIZABLE.

Dauerhafte Speicherung und Grenzen

Dauerhaftigkeit bedeutet, dass Daten nach dem erfolgreichen Abschluss einer Transaktion garantiert dauerhaft in der Datenbank gespeichert sind. Diese Speicherung muss auch bei einem Systemfehler erhalten bleiben, etwa bei einem Software-Fehler oder Hardware-Ausfall. Insbesondere darf der Ausfall des Hauptspeichers nicht zu Datenverlust führen.

Dauerhaftigkeit kann durch ein Transaktionslog gesichert werden. Dieses Protokoll ermöglicht es, nach einem Systemausfall noch fehlende Schreib-Operationen in der Datenbank auszuführen.

In verteilten Datenbanken entstehen Schwierigkeiten, wenn sämtliche ACID-Eigenschaften erfüllt und zugleich eine hohe Verfügbarkeit erreicht werden sollen. Das CAP-Theorem von Brewer formuliert diese Probleme. Im Umfeld von NoSQL-Datenbanken wird deshalb häufig das BASE-Prinzip verfolgt: Basically Available, Soft state, Eventual consistency.

Weiterlesen