Das ACID-Prinzip in Datenbanktransaktionen beschreibt sinnvolle Regeln zum effektiven und effizienten Umgang mit Datenbanktransaktionen in einem relationalen Datenbanksystem.
Eine Datenbanktransaktion ist eine Sequenz von Teil-Operationen, die atomar, konsistent, isoliert und dauerhaft sein muss.
Das ACID-Prinzip gehört zu den Datenbank-Grundlagen und sollte verinnerlicht und stets befolgt werden.
In diesem Artikel stellen wir die Grundlagen zum ACID-Prinzip vor, erklären die Regeln anhand eines Beispiels und zeigen auf, worauf man beim ACID-Prinzip in Datenbanktransaktionen achten muss.
Die Theorie hinter dem ACID-Prinzip
Das Theorie hinter dem ACID-Prinzip setzt sich aus den folgenden Bausteinen zusammen:
- Das A (atomacy) in ACID: Man spricht dann von atomaren (atomacy) Operationen, wenn eine Sequenz von Datei-Operationen entweder ganz oder gar nicht ausgeführt wird.
- Das C (consistency) in ACID: Man spricht von einer vorhandenen Datenkonsistenz (consistency), wenn nach einer Sequenz von Datei-Operationen der Datenzustand in einem konsistenten Zustand hinterlassen wird.
- Das I (isolation) in ACID: Die Isolation (isolation) verhindert, dass sich parallele Ausführungen auf befindliche Datei-Operationen gegenseitig beeinflussen können.
- Das D (durability) in ACID: Die Dauerhaftigkeit (durability) gewährleistet, dass die Datei-Operationen dauerhaft auf einem Datenträger gesichert sind.
Ein ACID-Prinzip Beispiel aus der Praxis
Um das ACID-Prinzip an einem praxisnahen Beispiel zu erläutern, werden wir den Verlauf einer Banküberweisung zwischen zwei Kreditinstituten beschreiben. Für diesen Vorgang sind zwei Vorgänge und drei Parteien nötig:
- Kreditinstitut A werden 100 Euro abgebucht.
- Kreditinstitut B werden 100 Euro gutgeschrieben.
- Kreditinstitut C
Das A (atomacy) in ACID
Würde das Geld von Kreditinstitut A zwar abgebucht werden, aber Kreditinstitut B in irgendeiner Form nicht erreichen, dann würde eine Verletzung der Atomarität vorliegen. Wird die Banküberweisung an irgendeiner Stellte gestoppt, wird der Vorgang rückgängig gemacht und die Überweisung wird zurückgewiesen.
Das C (consistency) in ACID
Wenn zwar die Überweisung von A nach B erfolgreich verlaufen ist, aber die Zuordnung zwischen Sender und Empfänger nicht der Wahrheit entspricht, z. B. A und C , so liegt eine Verletzung der Konsistenz vor. Nach jeder Transaktion muss die Integritätsprüfung erfolgen, damit die Gültigkeit der Daten in der Datenbank gewährleistet ist.
Das I (isolation) in ACID
Eine Überweisung darf nur als eine Transaktion erfolgen. Es dürfen keine parallelen Transaktionen zum Zeitpunkt der Überweisung von A nach B stattfinden. Sollen mehrere Banküberweisungen erfolgen, so wird die Transaktion in einer Warteschlange gespeichert und Schritt für Schritt abgearbeitet. Würde hier eine Parallelität stattfinden, so würde eine Verletzung der Isolation vorliegen.
Das D (durability) in ACID
Die Überweisung von A nach B muss auch noch nach Jahren oder beliebig vielen Systemabstürzen nachvollziehbar und dauerhaft gespeichert sein. Wird diese Regel nicht befolgt, so liegt eine Verletzung der Dauerhaftigkeit vor.
Fazit zum ACID-Prinzip in Datenbanktransaktionen
Jeder, der eine Datenbank selber erstellt oder daran mitwirkt, sollte diese Regeln verinnerlichen und stets befolgen. Sind die Daten erst einmal in einem redundanten Zustand oder einige Fremdschlüssel beschädigt, ist eine Reparatur nur schwer möglich bzw. aussichtslos.