正解は ウ
2相ロッキングプロトコルにおけるデッドロックの問題です。トランザクション A は read W(共有ロック)→ update X → update Y → update Z の順にロックを取得します。デッドロックは「A がロック p を保持して q を待ち、B が q を保持して p を待つ」という循環待ちで発生します。B の処理順序がウ(update X → read W → update Y → update Z)の場合を検証します。A と B はどちらも最初の専有ロック対象が X です(A は W の共有ロック後すぐ X)。X のロックを先に取れたトランザクションが処理を先行し、もう一方は X の解放を待つだけになります。W への read は両者とも共有ロックなので競合しません。例えば B が X を先に取れば、B は W・Y・Z と順に取得して完走し、その後 A が実行されます。A が先なら逆も同様です。どちらの順でも待ちは一方向にしかならず、循環待ちが発生しないため、ウが正解です。他の選択肢はいずれも、A が X を保持して Y を待ち、B が Y を保持して X を待つ(またはその変形の)相互待ちに陥る可能性があります。
デッドロック判定は「最初に競合する専有ロックの取得順序が全トランザクションで同じ向きか」を見る。順序が統一されていれば先に取った方が完走するだけで循環待ちは起きない。