DDBMS - Transaktionsverarbeitungssysteme
In diesem Kapitel werden die verschiedenen Aspekte der Transaktionsverarbeitung erläutert. Wir werden auch die in einer Transaktion enthaltenen Aufgaben auf niedriger Ebene, die Transaktionszustände und Eigenschaften einer Transaktion untersuchen. Im letzten Teil werden wir uns mit Zeitplänen und der Serialisierbarkeit von Zeitplänen befassen.
Transaktionen
Eine Transaktion ist ein Programm mit einer Sammlung von Datenbankoperationen, die als logische Einheit der Datenverarbeitung ausgeführt werden. Die in einer Transaktion ausgeführten Vorgänge umfassen einen oder mehrere Datenbankvorgänge wie das Einfügen, Löschen, Aktualisieren oder Abrufen von Daten. Es ist ein atomarer Prozess, der entweder vollständig oder gar nicht ausgeführt wird. Eine Transaktion, bei der nur Daten ohne Datenaktualisierung abgerufen werden, wird als schreibgeschützte Transaktion bezeichnet.
Jede Operation auf hoher Ebene kann in eine Reihe von Aufgaben oder Operationen auf niedriger Ebene unterteilt werden. Beispielsweise kann eine Datenaktualisierungsoperation in drei Aufgaben unterteilt werden:
read_item() - Liest das Datenelement aus dem Speicher in den Hauptspeicher.
modify_item() - Wert des Elements im Hauptspeicher ändern.
write_item() - Schreiben Sie den geänderten Wert aus dem Hauptspeicher in den Speicher.
Der Datenbankzugriff ist auf die Operationen read_item () und write_item () beschränkt. Ebenso bilden Lese- und Schreibvorgänge für alle Transaktionen die grundlegenden Datenbankoperationen.
Transaktionsvorgänge
Die in einer Transaktion ausgeführten Operationen auf niedriger Ebene sind -
begin_transaction - Eine Markierung, die den Beginn der Transaktionsausführung angibt.
read_item or write_item - Datenbankoperationen, die als Teil der Transaktion mit Hauptspeicheroperationen verschachtelt werden können.
end_transaction - Eine Markierung, die das Ende der Transaktion angibt.
commit - Ein Signal zur Angabe, dass die Transaktion vollständig abgeschlossen wurde und nicht rückgängig gemacht wird.
rollback- Ein Signal, das angibt, dass die Transaktion nicht erfolgreich war und daher alle temporären Änderungen in der Datenbank rückgängig gemacht werden. Eine festgeschriebene Transaktion kann nicht zurückgesetzt werden.
Transaktionszustände
Eine Transaktion kann eine Teilmenge von fünf Zuständen durchlaufen, die aktiv, teilweise festgeschrieben, festgeschrieben, fehlgeschlagen und abgebrochen sind.
Active- Der Ausgangszustand, in den die Transaktion eintritt, ist der aktive Zustand. Die Transaktion bleibt in diesem Zustand, während Lese-, Schreib- oder andere Vorgänge ausgeführt werden.
Partially Committed - Die Transaktion tritt in diesen Zustand ein, nachdem die letzte Anweisung der Transaktion ausgeführt wurde.
Committed - Die Transaktion tritt nach erfolgreichem Abschluss der Transaktion in diesen Status ein und die Systemprüfungen haben ein Festschreibungssignal ausgegeben.
Failed - Die Transaktion wechselt vom teilweise festgeschriebenen oder aktiven Status in den Status "Fehlgeschlagen", wenn festgestellt wird, dass die normale Ausführung nicht mehr fortgesetzt werden kann oder Systemprüfungen fehlschlagen.
Aborted - Dies ist der Status, nachdem die Transaktion nach einem Fehler zurückgesetzt und die Datenbank auf den Status vor Beginn der Transaktion zurückgesetzt wurde.
Das folgende Zustandsübergangsdiagramm zeigt die Zustände in der Transaktion und die Transaktionsoperationen auf niedriger Ebene, die eine Änderung der Zustände verursachen.
Wünschenswerte Eigenschaften von Transaktionen
Jede Transaktion muss die ACID-Eigenschaften beibehalten, d. H. Atomizität, Konsistenz, Isolation und Haltbarkeit.
Atomicity- Diese Eigenschaft besagt, dass eine Transaktion eine atomare Verarbeitungseinheit ist, dh entweder vollständig oder gar nicht ausgeführt wird. Es sollte keine teilweise Aktualisierung vorhanden sein.
Consistency- Eine Transaktion sollte die Datenbank von einem konsistenten Zustand in einen anderen konsistenten Zustand versetzen. Es sollte kein Datenelement in der Datenbank nachteilig beeinflussen.
Isolation- Eine Transaktion sollte so ausgeführt werden, als wäre sie die einzige im System. Es sollte keine Störung durch die anderen gleichzeitigen Transaktionen geben, die gleichzeitig ausgeführt werden.
Durability - Wenn eine festgeschriebene Transaktion eine Änderung bewirkt, sollte diese Änderung in der Datenbank dauerhaft sein und im Falle eines Fehlers nicht verloren gehen.
Zeitpläne und Konflikte
In einem System mit mehreren gleichzeitigen Transaktionen kann a scheduleist die Gesamtreihenfolge der Ausführung von Operationen. Bei einem Zeitplan S, der n Transaktionen umfasst, sagen wir T1, T2, T3 ……… ..Tn; Für jede Transaktion Ti müssen die Operationen in Ti wie im Zeitplan S festgelegt ausgeführt werden.
Arten von Zeitplänen
Es gibt zwei Arten von Zeitplänen:
Serial Schedules- In einem seriellen Zeitplan ist zu jedem Zeitpunkt nur eine Transaktion aktiv, dh es gibt keine Überlappung von Transaktionen. Dies ist in der folgenden Grafik dargestellt -
Parallel Schedules- In parallelen Zeitplänen sind mehrere Transaktionen gleichzeitig aktiv, dh die Transaktionen enthalten Vorgänge, die sich zu einem bestimmten Zeitpunkt überschneiden. Dies ist in der folgenden Grafik dargestellt -
Konflikte in Zeitplänen
In einem Zeitplan, der mehrere Transaktionen umfasst, a conflicttritt auf, wenn zwei aktive Transaktionen nicht kompatible Vorgänge ausführen. Zwei Operationen sollen in Konflikt stehen, wenn alle folgenden drei Bedingungen gleichzeitig vorliegen -
Die beiden Operationen sind Teile verschiedener Transaktionen.
Beide Operationen greifen auf dasselbe Datenelement zu.
Mindestens eine der Operationen ist eine write_item () -Operation, dh sie versucht, das Datenelement zu ändern.
Serialisierbarkeit
EIN serializable schedulevon 'n' Transaktionen ist ein paralleler Zeitplan, der einem seriellen Zeitplan entspricht, der aus denselben 'n' Transaktionen besteht. Ein serialisierbarer Zeitplan enthält die Richtigkeit des seriellen Zeitplans und stellt gleichzeitig eine bessere CPU-Auslastung des parallelen Zeitplans sicher.
Gleichwertigkeit von Zeitplänen
Die Äquivalenz von zwei Zeitplänen kann wie folgt sein:
Result equivalence - Zwei Zeitpläne mit identischen Ergebnissen gelten als ergebnisäquivalent.
View equivalence - Zwei Zeitpläne, die ähnliche Aktionen auf ähnliche Weise ausführen, werden als Ansichtsäquivalent bezeichnet.
Conflict equivalence - Zwei Zeitpläne gelten als konfliktäquivalent, wenn beide denselben Satz von Transaktionen enthalten und dieselbe Reihenfolge widersprüchlicher Operationspaare aufweisen.