Schedules
Schedule Definition:
Ein Schedule 𝑆 ist eine Folge von Aktionen für eine Menge 𝑇 = {𝑇1, … 𝑇𝑛} von Transaktionen. Der Schedule 𝑆 entsteht durch das Mischen der Aktionen der einzelnen Transaktionen 𝑇𝑖, wobei die Reihenfolge der Aktionen innerhalb jeder Transaktion 𝑇𝑖 beibehalten wird.
Serieller Schedule
Ein Schedule ist seriell, wenn die einzelnen Transaktionen nicht verzahnt werden, sondern blockweise hintereinander ausgeführt werden.
Isolation ist gegeben, aber langsam, da nicht parallel
Serialisierbarer Schedule
Info
Ein serialisierbarer Schedule ist eine Anordnung von Transaktionen in einer Datenbank, bei der die Transaktionen zwar möglicherweise überlappend ausgeführt werden, aber das Ergebnis am End so ist, also ob die Transaktionen nacheinander (seriell) ausgeführt worden wären. Dies gewährleistet, dass keine Inkonsistenzen in den Daten entstehen, auch wenn die Transaktionen gleichzeitig laufen.
Ein Schedule 𝑆 von ist serialisierbar, wenn er die gleiche Wirkung hat wie ein beliebiger serieller Schedule von
Auch hier ist die Isolation nicht verletzt Bessere Performanz also bei seriellen Schedules
Nur serialisierbare Schedules dürfen zugelassen werden
Abhängigkeiten in Schedules
Abhängigkeit: unterschiedliche Transkationen, gleiches Object Sei ein Schedule:
-
Schreib-Lese Abhängigkeit von →
- Es gibt ein , so dass vor
-
Lese-Schreib Abhängigkeit von :
- Es gibt ein , so dass in vor kommt
-
Schreib-Schreib Abhängigkeit von :
- Es gibt ein , so dass in vor kommt
Serialisierungsgraph
-
Ein Serialisierungsgraph ist ein gerichteter Graph :
- Mit Knoten (beteiligten Transaktionen)
- Mit Kanten = Abhängigkeiten zwischen den Transaktionen
-
Wenn der Graph zyklenfrei ist serialisierbar
-
Wenn der Graph Zyklen enthält nicht serialisierbar
Serialisierung Graph - Beispiel
-
Abhängigkeiten: , , ,
-
Zyklenfrei → ist serialisierbar