Definitions from the books by Korth et. al. and Elmasri et al.:
Cascadeless schedule
A cascadeless schedule is one where, for each pair of transactions Ti and Tj such that Tj reads a data item previously written by Ti , the commit operation of Ti appears before the read operation of Tj .
Strict schedule
If in the given schedule, each transaction Tj neither reads nor writes
any data item ‘x’ until the last transaction Ti that has written ‘X’ is
committed or aborted then it is strict.
Notice:
- Definition of cascadeless schedule only puts restriction on where in the schedule the reads of transaction Tj can appear.
- Definition of strict schedule only puts restriction on where in the schedule the reads and write of transaction Tj can appear.
Thus following schedule is allowed under cascadelessness definition but not under definition of strict schedule:
| T1 | T2 |
|----------|----------|
| write(x) | |
| | write(x) |
| | commit |
| read(x) | |
as write(x)
of T1
appears before commit
of T2
. Evidently cascadeless schedule can contain blind writes !!!