Transaktionsmanagement im DBMS: Was sind ACID-Eigenschaften?

Was ist eine Datenbanktransaktion?

A Datenbanktransaktion ist eine logische Verarbeitungseinheit in einem DBMS, die entails eine oder mehrere Datenbankzugriffsoperationen. Kurz gesagt, Datenbanktransaktionen stellen reale Ereignisse eines jeden Unternehmens dar.

Alle Arten von Datenbankzugriffsvorgängen, die zwischen den Anfangs- und Endtransaktionsanweisungen stattfinden, werden im DBMS als eine einzige logische Transaktion betrachtet. Während der Transaktion ist die Datenbank inkonsistent. Erst wenn die Datenbank festgeschrieben ist, wird der Zustand von einem konsistenten Zustand in einen anderen geändert.

Datenbanktransaktion
Datenbanktransaktion

Fakten zu 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 diese Art von Transaktion als schreibgeschützte Transaktion bezeichnet.
  • Eine erfolgreiche Transaktion kann die Datenbank von einem KONSISTENTEN ZUSTAND in einen anderen ändern
  • DBMS-Transaktionen müssen sein atomic, konsistent, isoliert und langlebig
  • 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 benötigen Sie Parallelität in Transaktionen?

Eine Datenbank ist eine gemeinsam genutzte Ressource, auf die zugegriffen wird. Es wird von vielen Benutzern und Prozessen gleichzeitig verwendet. Zum Beispiel das Bankensystem, Bahn- und Flugreservierungssysteme, Börsenüberwachung, Supermarktbestände und Kassen usw.

Wenn der gleichzeitige Zugriff nicht verwaltet wird, kann dies zu Problemen wie den folgenden führen:

  • Hardwarefehler und Systemabstürze
  • Gleichzeitige Ausführung derselben Transaktion, deadlockoder langsame Leistung

Status von Transaktionen

Nachfolgend sind die verschiedenen Zustände eines Transaktionskonzepts im DBMS aufgeführt:

Bundesstaat Transaktionstypen
Aktiver Zustand Eine Transaktion geht in einen aktiven Zustand über, wenn der Ausführungsprozess beginnt. In diesem Zustand können Lese- oder Schreibvorgänge durchgeführt werden.
Teilweise engagiert Eine Transaktion geht nach dem Ende einer Transaktion in den teilweise festgeschriebenen Zustand über.
Engagierter Staat Wenn die Transaktion in den Status übernommen wird, hat sie ihre Ausführung bereits erfolgreich abgeschlossen. Darüber hinaus werden alle Änderungen dauerhaft in der Datenbank aufgezeichnet.
Status fehlgeschlagen Eine Transaktion gilt als fehlgeschlagen, wenn eine der Prüfungen fehlschlägt oder wenn die Transaktion abgebrochen wird, während sie sich im aktiven Zustand befindet.
Beendeter Zustand Der Status einer Transaktion erreicht den Status „Beendet“, wenn bestimmte Transaktionen, die das System verlassen, nicht neu gestartet werden können.
Zustandsübergangsdiagramm
Zustandsübergangsdiagramm für eine Datenbanktransaktion

Lasst uns a studieren Zustandsübergangsdiagramm Dies verdeutlicht, wie sich eine Transaktion zwischen diesen verschiedenen Zuständen bewegt.

  1. Sobald eine Transaktion ausgeführt wird, wird sie aktiv. Es kann eine READ- oder WRITE-Operation ausführen.
  2. Sobald die Lese- und Schreibvorgänge abgeschlossen sind, werden die Transaktionen in den teilweise festgeschriebenen Zustand versetzt.
  3. Als nächstes müssen einige Wiederherstellungsprotokolle sicherstellen, dass ein Systemausfall nicht dazu führt, dass Änderungen in der Transaktion nicht dauerhaft aufgezeichnet werden können. Wenn diese Prüfung erfolgreich ist, wird die Transaktion festgeschrieben und geht in den festgeschriebenen Zustand über.
  4. Wenn die Prüfung fehlschlägt, geht die Transaktion in den Status „Fehlgeschlagen“ über.
  5. Wenn die Transaktion im aktiven Zustand abgebrochen wird, wechselt sie in den fehlgeschlagenen Zustand. Die Transaktion sollte zurückgesetzt werden, um die Auswirkungen ihrer Schreibvorgänge auf die Datenbank rückgängig zu machen.
  6. Der beendete Zustand bezieht sich auf die Transaktion, die das System verlässt.

Was sind ACID-Eigenschaften?

ACID-Eigenschaften werden zur Aufrechterhaltung der Datenbankintegrität während der Transaktionsverarbeitung verwendet. ACID steht in DBMS für ATomizität, CBeständigkeit, IEinsamkeit und DHaltbarkeit.

  • AtomEis: Eine Transaktion ist eine einzelne Operationseinheit. Sie führen es entweder vollständig aus oder führen es überhaupt nicht aus. 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.
  • Isolierung: Die Transaktion sollte isoliert von anderen Transaktionen ausgeführt werden (keine Sperren). Während der gleichzeitigen Transaktionsausführung entstehen durch die gleichzeitige Ausführung ZwischentransaktionenneoNormalerweise ausgeführte Transaktionen sollten einander nicht zugänglich gemacht werden. (Stufe 0,1,2,3)
  • Haltbarkeit:· Nach erfolgreichem Abschluss einer Transaktion sollten die Änderungen in der Datenbank bestehen bleiben. Auch bei Systemausfällen.

ACID-Eigenschaft in DBMS mit Beispiel

Unten finden Sie ein Beispiel für die ACID-Eigenschaft im 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.

Wenn beide Transaktionen zusammen eingereicht werden, gibt es keine Garantie dafür, dass Transaktion 1 vor Transaktion 2 ausgeführt wird oder umgekehrt. Unabhängig von der Reihenfolge muss das Ergebnis so sein, als ob die Transaktionen seriell nacheinander stattfinden würden.

Arten von Transaktionen

Basierend auf Anwendungsbereichen

  • Nicht verteilt vs. verteilt
  • Kompensationstransaktionen
  • Transaktionszeitpunkt
  • Online vs. Batch

Basierend auf Aktionen

  • Zwei Schritte
  • Beschränkt
  • Aktionsmodell

Basierend auf Struktur

  • Flache oder einfache Transaktionen: Sie 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 Zeitplan ist ein Prozess, der eine einzelne Gruppe mehrerer paralleler Transaktionen erstellt und diese nacheinander ausführt. Es sollte die Reihenfolge beibehalten, in der die Anweisungen in jeder Transaktion erscheinen. Wenn zwei Transaktionen gleichzeitig ausgeführt werden, kann das Ergebnis einer Transaktion die Ausgabe einer anderen Transaktion 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.

Eine parallele Ausführung in einer Datenbank ist unumgänglich. Eine parallele Ausführung ist jedoch zulässig, wenn zwischen den Simulta eine Äquivalenzbeziehung bestehtneoNormalerweise werden Transaktionen ausgeführt. Es gibt drei Arten dieser Äquivalenz.

ERGEBNISÄQUIVALENZ:

Wenn zwei Zeitpläne nach der Ausführung das gleiche Ergebnis anzeigen, spricht man von einem ergebnisäquivalenten Zeitplan. Sie können für einen bestimmten Wert das gleiche Ergebnis und für einen anderen Wertesatz unterschiedliche Ergebnisse liefern. Beispielsweise aktualisiert eine Transaktion die Produktmenge, während eine andere die Kundennummer aktualisierttails.

Äquivalenz anzeigen

Ansichtsäquivalenz tritt auf, wenn die Transaktion in beiden Zeitplänen eine ähnliche Aktion ausführt. Beispiel: Eine Transaktion fügt das Produkt de eintails in der Produkttabelle, während eine andere Transaktion das Produkt de einfügttails der archive Tisch. Die Transaktion ist die gleiche, aber die Tabellen sind unterschiedlich.

Konfliktäquivalenz

In diesem Fall aktualisieren/anzeigen zwei Transaktionen denselben Datensatz. Es liegt ein Konflikt zwischen der Transaktion vor, da sich die Ausführungsreihenfolge auf die Ausgabe auswirkt.

Was ist Serialisierbarkeit?

Serialisierbarkeit ist der Prozess der Suche nach einem gleichzeitigen Zeitplan, dessen Ausgabe einem seriellen Zeitplan entspricht, bei dem Transaktionen nacheinander ausgeführt werden. Abhängig von der Art der Zeitpläne gibt es zwei Arten der Serialisierbarkeit:

  • Konflikt
  • Anzeigen

Zusammenfassung

  • Das Transaktionsmanagement ist eine logische Verarbeitungseinheit in einem DBMS, die entails eine oder mehrere Datenbankzugriffsoperationen
  • Bei einer Transaktion handelt es sich um eine Programmeinheit, deren Ausführung den Inhalt einer Datenbank ändern kann oder nicht.
  • Wenn der gleichzeitige Zugriff nicht verwaltet wird, kann dies zu Problemen wie Hardwarefehlern und Systemabstürzen führen.
  • Aktiv, teilweise festgeschrieben, festgeschrieben, fehlgeschlagen und beendet sind wichtige Transaktionszustände.
  • Die vollständige Form von ACID Properties in DBMS is AtomEisigkeit, Konsistenz, Isolation und Haltbarkeit
  • Drei DBMS-Transaktionstypen sind „Basierend auf Anwendungsbereichen“, „Aktion“ und „Struktur“.
  • Ein Zeitplan ist ein Prozess, der eine einzelne Gruppe mehrerer paralleler Transaktionen erstellt und diese nacheinander ausführt.
  • Serialisierbarkeit ist der Prozess der Suche nach einem gleichzeitigen Zeitplan, dessen Ausgabe einem seriellen Zeitplan entspricht, in dem Transaktionen eine nach der anderen ausgeführt werden.