IPA公式正解:エ トランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【エ】です。2相ロック(2PL)では、ロックを獲得する成長相と、ロックを解放する縮小相の2段階に分かれます。一度ロックを解除し始めると新たなロックを獲得できないため、必要なすべてのロックを獲得した後にだけロック解除を行うことができます。
【詳細解説】■ 本問の核心・解法のポイント
2相ロッキングプロトコル(Two-Phase Locking: 2PL)の規則を正しく理解しているかを問う問題です。2PLはトランザクションの直列可能性を保証するための手法であり、トランザクションの動作期間を次の2つのフェーズに分けます。
1. 成長相(Growing phase):ロックの獲得のみが行え、いかなるロックの解除も行えない期間。
2. 縮小相(Shrinking phase):ロックの解除のみが行え、新たなロックの獲得は一切行えない期間。
したがって、ロックを1つでも解放し始めた後は新しいロックを取得できないため、「必要なすべてのロックを獲得した後にだけ、ロックを解除できる」ことになります。
・各選択肢の徹底解説:
・ア:2相ロックは直列可能性を保証しますが、複数のトランザクションがお互いの保持する資源を待ち合うデッドロックは発生する可能性があります。
・イ:コミット順序をトランザクション開始時刻順にする制御はタイムスタンプ順序付け方式などの特徴であり、2相ロックの規則ではありません。
・ウ:コミット時点でロックが保持されていることが一般的(特に厳密2相ロックではコミット完了までロックを保持する)であり、全ロック解除後にコミットするわけではありません。
・エ:【選択肢エ★】2相ロックの基本原則(ロック獲得フェーズが終了してからロック解除フェーズに移行する)を正しく説明しています。
よって正解はエです。