Consider the following classes of schedules: conflict-serializable(a), recoverable(b), and avoids-cascading-aborts (c). For each of the following schedules, state which of the preceding classes it belongs to. If you cannot decide whether a schedule belongs in a certain class based on the listed actions, explain briefly.
The actions are listed in the order they are scheduled and prefixed with the transaction name. If a commit or abort is not shown, the schedule is incomplete; assume that abort or commit must follow all the listed actions.
For simplicity, you should answer the questions in the following way. For example, you say a schedule is conflict-serializable(a), but not recoverable(b), and cannot decide avoids-cascading-aborts (c),
Your answer is: YNU, where Y is Yes, N is No, U is unknown.
T1:R(X), T2:R(X), T1:W(X), T2:W(X)
T1:W(X), T2:R(Y), T1:R(Y), T2:R(X)
T1:R(X), T2:R(Y), T3:W(X), T2:R(X), T1:R(Y)
T1:R(X), T1:R(Y), T1:W(X), T2:R(Y), T3:W(Y), T1:W(X), T2:R(Y)
T1:R(X), T2:W(X), T1:W(X), T2:Abort, T1:Commit
T1:R(X), T2:W(X), T1:W(X), T2:Commit, T1:Commit
T1:W(X), T2:R(X), T1:W(X), T2:Abort, T1:Commit
T1:W(X), T2:R(X), T1:W(X), T2:Commit, T1:Commit
T1:W(X), T2:R(X), T1:W(X), T2:Commit, T1:Abort
T2: R(X), T3:W(X), T3:Commit, T1:W(Y), T1:Commit, T2:R(Y), T2:W(Z), T2:Commit
T1:R(X), T2:W(X), T2:Commit, T1:W(X), T1:Commit, T3:R(X), T3:Commit
T1:R(X), T2:W(X), T1:W(X), T3:R(X), T1:Commit, T2:Commit, T3:Commit