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