serialisierbarer Schedule
Ein Schedule heißt serialisierbar, wenn er "äquivalent" zu einem seriellen Schedule S ist.
Konflikte in einem Schedule
Zwei Operationen stehen in Konflikt miteinander, wenn beide zu verschiedenen Transaktionen gehören wenn beide auf das selbe Datenelement zugreifen wenn mindestens eine von beiden eine Schreiboperation ist
konflikt-äquivalenter Schedule
Zwei Schedules heißen konflik-äquivalent, wenn alle Operationen, die in Konflikt stehen, in beiden Schedules in der selben Reihenfolge auftreten.
konflikt-serialisierbarer Schedule
Ein Schedule heißt konflikt-serialisierbar, wenn er konflikt-äquivalent zu irgendeinem seriellen Schedule S ist.
Konfliktgraph eines Schedules
S ist konflikt-serialisierbar, wenn der Konfliktgraph azyklisch ist.
Konstruktion eines Konfliktgraphen
falls Tj in S eine READ(X)-Operation nach einer WRITE(X)-Operation von Ti ausführt=> Kante(Tj,Ti) falls Tj in S eine WRITE(X)-Operation nach einer READ(X)-Operation von Ti ausführt=> Kante(Tj, Ti) falls Tj in S eine WRITE(X)-Operation nach einer WRITE(X)-Operation von Ti ausführt=> Kante(Tj, Ti)
Was verhindert ein konflikt-serialisierbarer Schedule und was nicht?
Verhindert das "Lost-Update" und das "Inconsistent Analysis" Problem. Verhindert kein Dirty Read.
recoverable Schedule
Ein Schedule S heißt rücksetzbar (recoverable), wenn keine Transaktion T in S erfolgreich beendet (COMMIT-Punkt), bevor alle die Transaktionen erfolgreich beendet wurden, die ein Elemet X geschrieben haben, das von T gelesen wurde. Es werden nur read(x) betrachtet, die nach einem write(x) auftreten! => kein "Dirty Read" Problem: Kaskardierendes ABORT
cascadeless Schedule
Ein Schedule vermeidet kaskardierende ABORTS, wenn jede Transaktion in S nur Datenelemente ließt, die nur von bereits erfolgreich abgeschlossenen Transaktionen geschrieben wurde. Es werden nur read(x) betrachtet, die nach einem write(x) vorkommen. Problem: Setzen auf "befor-IMAGE" beim ABORT führt zu Fehler
strict Schedule
Ein Schedule heißt strikt, wenn alle Transaktionen aus S ein Datenelement X solange weder lesen noch schreiben dürfen, bis alle Transaktionen, die X zuvor geschrieben haben, erfolgreich beendet sind. Es werden nur read(x)/write(x) betrachtet, die nach einem write(x) auftreten!
korrekter Schedule
Ein Schedule heißt korrekt, wenn er rücksetzbar (recoverable) und konflikt-serialisierbar ist.