Transaktionsmanagement in DBMS: Zustände, Typen & ACID
⚡ Intelligente Zusammenfassung
Das Datenbank-Transaktionsmanagement behandelt eine oder mehrere Datenbankoperationen als eine einzige logische Einheit, die die Datenbank von einem konsistenten Zustand in einen anderen überführt. Es nutzt ACID-Eigenschaften, definierte Transaktionszustände und Zeitpläne, um korrekte gleichzeitige Zugriffe zu gewährleisten.

Was ist eine Datenbanktransaktion?
A Datenbanktransaktion Eine Datenbanktransaktion ist eine logische Verarbeitungseinheit in einem DBMS, die einen oder mehrere Datenbankzugriffe umfasst. Kurz gesagt, Datenbanktransaktionen repräsentieren reale Ereignisse in einem Unternehmen.
Alle Datenbankzugriffsoperationen, die zwischen dem Beginn und dem Ende einer Transaktion ausgeführt werden, bilden in einem DBMS eine einzige logische Transaktion. Während der Transaktion ist die Datenbank inkonsistent. Erst mit dem Commit der Transaktion wird der Zustand von einem konsistenten Zustand in einen anderen geändert.

Fakten über Datenbanktransaktionen
- Eine Transaktion ist eine Programmeinheit, deren Ausführung den Inhalt einer Datenbank ändern kann oder nicht.
- Das Transaktionskonzept im DBMS wird als eine Einheit ausgeführt.
- Wenn die Datenbankoperationen die Datenbank nicht aktualisieren, sondern nur Daten abrufen, wird dieser Transaktionstyp als schreibgeschützte Transaktion bezeichnet.
- Eine erfolgreiche Transaktion kann den Zustand der Datenbank von einem KONSISTENTEN ZUSTAND in einen anderen ändern.
- DBMS-Transaktionen müssen atomar, konsistent, isoliert und dauerhaft sein.
- Wenn sich die Datenbank vor einer Transaktion in einem inkonsistenten Zustand befände, würde sie nach der Transaktion in diesem inkonsistenten Zustand verbleiben.
Warum ist Parallelität bei Transaktionen notwendig?
Eine Datenbank ist eine gemeinsam genutzte Ressource. Sie wird von vielen Benutzern und Prozessen gleichzeitig verwendet. Beispiele hierfür sind Bankensysteme, Reservierungssysteme für Bahn und Fluggesellschaften, Börsenüberwachungssysteme sowie Warenwirtschaftssysteme und Kassensysteme in Supermärkten.
Wenn der gleichzeitige Zugriff nicht verwaltet wird, kann dies zu Problemen wie den folgenden führen:
- Hardwareausfälle und Systemabstürze.
- Gleichzeitige Ausführung derselben Transaktion, Deadlockoder langsame Leistung.
Die Kontrolle dieses gemeinsamen Zugriffs ist die Aufgabe von ParallelitätskontrolleDabei werden Sperren und Zeitstempel verwendet, um Transaktionen sicher zu verschachteln. Zuvor ist es hilfreich, die Zustände zu kennen, die eine Transaktion durchläuft.
Status von Transaktionen
Nachfolgend sind die verschiedenen Zustände eines Transaktionskonzepts im DBMS aufgeführt:
| Staat | Beschreibung |
|---|---|
| Aktiver Zustand | Eine Transaktion tritt in den aktiven Zustand ein, sobald der Ausführungsprozess beginnt. Während dieses Zustands können Lese- oder Schreibvorgänge durchgeführt werden. |
| Teilweise engagiert | Eine Transaktion wechselt nach Abschluss in den Status „teilweise abgeschlossen“. |
| Engagierter Staat | Sobald die Transaktion den Status „festgeschrieben“ erreicht hat, wurde ihre Ausführung erfolgreich abgeschlossen und alle Änderungen werden dauerhaft in der Datenbank gespeichert. |
| Status fehlgeschlagen | Eine Transaktion gilt als fehlgeschlagen, wenn eine der Prüfungen fehlschlägt oder wenn die Transaktion im aktiven Zustand abgebrochen wird. |
| Beendeter Zustand | Der Status einer Transaktion erreicht den Status „abgeschlossen“, wenn die Transaktion das System verlässt und nicht neu gestartet werden kann. |
Lasst uns ein Studium beginnen Zustandsübergangsdiagramm Dies verdeutlicht, wie sich eine Transaktion zwischen diesen verschiedenen Zuständen bewegt.
- Sobald eine Transaktion zur Ausführung startet, wird sie aktiv. Sie kann eine Lese- oder Schreiboperation ausführen.
- Sobald die Lese- und Schreibvorgänge abgeschlossen sind, erreicht die Transaktion den Status „teilweise abgeschlossen“.
- Anschließend müssen Wiederherstellungsprotokolle sicherstellen, dass ein Systemausfall nicht dazu führt, dass die Änderungen der Transaktion nicht dauerhaft gespeichert werden können. Wenn diese Prüfung erfolgreich ist, wird die Transaktion ausgeführt und in den Status „festgeschrieben“ versetzt.
- Schlägt die Prüfung fehl, wechselt die Transaktion in den Status „fehlgeschlagen“.
- Wird die Transaktion im aktiven Zustand abgebrochen, wechselt sie in den Status „fehlgeschlagen“. Um die Auswirkungen ihrer Schreibvorgänge auf die Datenbank rückgängig zu machen, muss die Transaktion zurückgesetzt werden.
- Der beendete Zustand bezieht sich auf die Transaktion, die das System verlässt.
Was sind die Eigenschaften von Säuren?
ACID-Eigenschaften werden verwendet, um die Integrität der Datenbank während der Transaktionsverarbeitung zu gewährleisten. ACID steht in DBMS für ATomizität, CBeständigkeit, IEinsamkeit und DHaltbarkeit.
- AtomEis: Eine Transaktion ist eine einzelne Vorgangseinheit. Sie führen sie entweder vollständig aus oder überhaupt nicht. Eine teilweise Ausführung ist nicht möglich.
- Konsistenz: Sobald die Transaktion ausgeführt ist, sollte sie von einem konsistenten Zustand in einen anderen übergehen.
- Isolationswerte: Eine Transaktion sollte isoliert von anderen Transaktionen ausgeführt werden. Bei gleichzeitiger Ausführung dürfen Zwischenergebnisse von parallel ausgeführten Transaktionen nicht einander zugänglich gemacht werden.
- Haltbarkeit: Nach erfolgreichem Abschluss einer Transaktion sollten die Änderungen in der Datenbank auch im Falle von Systemausfällen erhalten bleiben.
ACID-Eigenschaften in DBMS mit Beispiel
Nachfolgend ein Beispiel für die ACID-Eigenschaften in einem DBMS:
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
Bei Transaktion 1 werden 50 $ von Konto X auf Konto Y übertragen.
Bei Transaktion 2 wird jedem Konto eine Zinszahlung in Höhe von 10 % gutgeschrieben.
Werden beide Transaktionen gleichzeitig eingereicht, gibt es keine Garantie dafür, dass Transaktion 1 vor Transaktion 2 oder umgekehrt ausgeführt wird. Unabhängig von der Reihenfolge muss das Ergebnis so sein, als würden die Transaktionen nacheinander ausgeführt.
Arten von Transaktionen
Basierend auf den Anwendungsbereichen:
- Nicht verteilt vs. verteilt.
- Kompensationstransaktionen.
- Transaktionszeitpunkt.
- Online vs. Stapelverarbeitung.
Basierend auf den Aktionen:
- Zweistufig.
- Eingeschränkt.
- Handlungsmodell.
Basierend auf der Struktur:
- Flache oder einfache Transaktionen: bestehen aus einer Folge primitiver Operationen, die zwischen einer Anfangs- und einer Endoperation ausgeführt werden.
- Verschachtelte Transaktionen: Eine Transaktion, die andere Transaktionen enthält.
- Arbeitsablauf.
Was ist ein Zeitplan?
Ein Ablaufplan ist ein Prozess, bei dem mehrere parallele Transaktionen zu einer Gruppe zusammengefasst und nacheinander ausgeführt werden. Dabei muss die Reihenfolge der Anweisungen innerhalb jeder Transaktion beibehalten werden. Werden zwei Transaktionen gleichzeitig ausgeführt, kann das Ergebnis der einen Transaktion das Ergebnis der anderen beeinflussen.
Beispiel
Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 2: Read Product Quantity
Wenn Transaktion 2 vor Transaktion 1 ausgeführt wird, werden veraltete Informationen zur Produktmenge ausgelesen. Daher sind Zeitpläne erforderlich.
Parallele Ausführung in einer Datenbank ist unvermeidlich. Sie ist jedoch nur zulässig, wenn zwischen den gleichzeitig ausgeführten Transaktionen eine Äquivalenzrelation besteht. Diese Äquivalenz lässt sich in drei Typen unterteilen.
Ergebnisäquivalenz: Wenn zwei Ablaufpläne nach ihrer Ausführung dasselbe Ergebnis liefern, spricht man von einem ergebnisäquivalenten Ablaufplan. Sie können für bestimmte Werte das gleiche Ergebnis liefern, für andere Werte jedoch unterschiedliche. Beispielsweise aktualisiert eine Transaktion die Produktmenge, während eine andere die Kundendaten aktualisiert.
Ansichtsäquivalenz: Sichtäquivalenz liegt vor, wenn die Transaktionen in beiden Abläufen eine ähnliche Aktion ausführen. Beispielsweise fügt eine Transaktion Produktdetails in die Produkttabelle ein, während eine andere Transaktion Produktdetails in die Archivtabelle einfügt. Die Transaktion ist dieselbe, aber die Tabellen sind unterschiedlich.
Konfliktäquivalenz: In diesem Fall aktualisieren oder betrachten zwei Transaktionen denselben Datensatz. Es besteht ein Konflikt zwischen den Transaktionen, da die Ausführungsreihenfolge das Ergebnis beeinflusst.
Was ist Serialisierbarkeit?
Serialisierbarkeit ist der Prozess der Suche nach einem parallelen Ablaufplan, dessen Ausgabe einem seriellen Ablaufplan entspricht, bei dem Transaktionen nacheinander ausgeführt werden. Abhängig vom Ablaufplantyp gibt es zwei Arten von Serialisierbarkeit:
- Konfliktserialisierbarkeit.
- Serialisierbarkeit anzeigen.
Die beiden Ansätze unterscheiden sich darin, wie streng sie die Äquivalenz beurteilen, wie nachfolgend zusammengefasst.
| Aspekt | Konfliktserialisierbarkeit | Serialisierbarkeit anzeigen |
|---|---|---|
| Verpflegung | Reihenfolge der sich widersprechenden Operationen | Lese- und Schreibbeziehungen |
| Test | Der Vorgangsgraph muss azyklisch sein. | Siehe Äquivalenz zu einem seriellen Zeitplan |
| Strenge | Strenger, eine Teilmenge | Umfassender, schließt auch blinde Autoren ein |
| Kosten für die Überprüfung | Effizient | Rechentechnisch schwierig |
Jeder konfliktserialisierbare Zeitplan ist auch viewserialisierbar, aber nicht umgekehrt. Deshalb ist die Konfliktserialisierbarkeit der praktische Test, den ein DBMS anwendet.

