IPA公式正解:エ トランザクションの競合直列可能性が保証される。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【エ】です。2相ロック方式(2PL)は、ロックを獲得するフェーズ(拡大相)と解放するフェーズ(縮退相)を分けることで、並行実行されるトランザクションの競合直列可能性(シリアライザビリティ)を保証します。
【詳細解説】■ 本問の核心・解法のポイント
2相ロック方式(Two-Phase Locking: 2PL)は、同時実行制御においてトランザクションの競合直列可能性(直列化可能性:スケジュールが何らかの直列実行と同等であること)を保証するための規則です。
2PLでは、各トランザクションの処理期間を次の2相に分割します:
・成長相(拡大相 / Growing phase):必要なロックを獲得するのみで、一切ロックを解放(アンロック)してはならないフェーズ。
・縮退相(収縮相 / Shrinking phase):保持しているロックを解放するのみで、新たなロックを獲得してはならないフェーズ。
一度でもアンロックを行ったら、そのトランザクション内で再びロックを獲得することは禁止されます。
・各選択肢の徹底解説:
・ア:2相ロック方式を用いても、複数のトランザクションが互いに相手の保持する資源を要求し合うデッドロックは依然として発生します。
・イ:2相ロック方式の規則により、一度縮退相に入ってアンロックを行った後は、同一トランザクション内であっても新たにロックを行うことはできません。
・ウ:読み取りのための共有ロック(Sロック)と、更新のための専有ロック(Xロック)の双方が利用されます。
・エ:【選択肢エ★】2相ロック方式を遵守するトランザクション群の並行実行スケジュールは、数学的に競合直列可能性(シリアライザビリティ)が常に保証されます。
よって正解はエです。