Eine , auch genannt
, für eine Menge von Transaktionen ist
eine Festlegung für die Reihenfolge sämtlicher relevanter
Datenbankoperationen. Ein Schedule heißt
, wenn alle Schritte einer
Transaktion unmittelbar hintereinander ablaufen. Wir unterscheiden nur noch
zwischen
- und
-Operationen.
Zum Beispiel transferiere einen bestimmten Betrag von A nach B und
transferiere einen Betrag von C nach A. Eine mögliche Historie zeigt Tabelle
13.4.
Schritt | ![]() |
![]() |
1. | BOT | |
2. | read(![]() |
|
3. | BOT | |
4. | read(![]() |
|
5. | write(![]() |
|
6. | write(![]() |
|
7. | read(![]() |
|
8. | write(![]() |
|
9. | commit | |
10. | read(![]() |
|
11. | write(![]() |
|
12. | commit |
Schritt | ![]() |
![]() |
1. | BOT | |
2. | read(![]() |
|
3. | write(![]() |
|
4. | read(![]() |
|
5. | write(![]() |
|
6. | commit | |
7. | BOT | |
8. | read(![]() |
|
9. | write(![]() |
|
10. | read(![]() |
|
11. | write(![]() |
|
12. | commit |
Tabelle 13.6 zeigt ein Schedule der Transaktionen und
, welches
nicht serialisierbar ist.
Schritt | ![]() |
![]() |
1. | BOT | |
2. | read(![]() |
|
3. | write(![]() |
|
4. | BOT | |
5. | read(![]() |
|
6. | write(![]() |
|
7. | read(![]() |
|
8. | write(![]() |
|
9. | commit | |
10. | read(![]() |
|
11. | write(![]() |
|
12. | commit |
Im Einzelfall kann die konkrete Anwendungssemantik zu einem äquivalenten seriellen Schedule führen, wie Tabelle 13.7 zeigt.
Schritt | ![]() |
![]() |
1. | BOT | |
2. | read(![]() |
|
3. |
![]() |
|
4. | write(![]() |
|
5. | BOT | |
6. | read(![]() |
|
7. |
![]() |
|
8. | write(![]() |
|
9. | read(![]() |
|
10. |
![]() |
|
11. | write(![]() |
|
12. | commit | |
13. | read(![]() |
|
14. |
![]() |
|
15. | write(![]() |
|
16. | commit |
Unter einer anderen Semantik würde einen Betrag von 50,- Euro
von A nach B
überweisen und Transaktion
würde beiden Konten jeweils 3 % Zinsen
gutschreiben. Tabelle 13.8 zeigt den Ablauf.
Schritt | ![]() |
![]() |
1. | BOT | |
2. | read(![]() |
|
3. |
![]() |
|
4. | write(![]() |
|
5. | BOT | |
6. | read(![]() |
|
7. |
![]() |
|
8. | write(![]() |
|
9. | read(![]() |
|
10. |
![]() |
|
11. | write(![]() |
|
12. | commit | |
13. | read(![]() |
|
14. |
![]() |
|
15. | write(![]() |
|
16. | commit |