To determine the correctness of the statements \(P\) and \(Q\), we need to analyze the schedule given for the operations of transactions \(T_1, T_2, T_3\).
The schedule provided is:
\(R_2(Y), R_1(X), R_3(Z), R_1(Y), W_1(X), R_2(Z), W_2(Y), R_3(X), W_3(Z)\)
For a schedule to be conflict-serializable, it must be possible to transform the schedule into a serial schedule by swapping non-conflicting operations.
Operations conflict if they are from different transactions, involve the same data item, and at least one of these operations is a write.
Let's analyze the conflicts:
| From | To |
|---|---|
| \(T_3\) | \(T_1\) |
| \(T_2\) | \(T_3\) |
Since the conflict graph has no cycles, the schedule is conflict-serializable. So, statement \(P\) is true.
For a schedule to be recoverable, no transaction should commit before another transaction from which it has read data (and that data has been modified).
Let's analyze the condition given:
If \(T_3\) commits before \(T_1\) finishes:
This makes the schedule non-recoverable if \(T_3\) commits before \(T_1\) finishes. Thus, statement \(Q\) is false.
Therefore, the correct answer is that \(P\) is true and \(Q\) is false.