2相ロック方式 (2PL) の規則

正解の理由 2相ロック方式(Two-Phase Locking: 2PL)は、トランザクションの同時実行制御において直列化可能性(Serializability)を保証するためのプロトコルです。トランザクションのロック処理を次の2つのフェーズに明確に分離します。 成長相(Growing Phase): 新たなロックを獲得するフェーズ。ロックの解除は行えない。 縮小相(Shrinking Phase): 獲得済みのロックを解除するフェーズ。新たなロックの獲得は一切行えない。 この規則により、「一度でもロックを解除し始めたら、新たなロックは獲得できない」ことになります。すなわち、トランザクションは「必要なすべてのロックを獲得し終えた後にのみ、ロックの解除を開始できる」ことになります。したがって、エが正解です。 各選択肢の解説 2相ロック方式は直列化可能性を保証しますが、デッドロックの発生を防止することはできません。 コミット順序はトランザクション開始時刻順とは限らず、ロック獲得のタイミングや実行進行順序に依存します。 厳密2相ロック(Strict 2PL)ではコミット完了まで排他ロックを保持し続けます。また、基本の2相ロックでもロック解除の後にコミット処理が行われるため、「全て解除した後にだけコミットできる」という制約はありません。 正しい記述です。成長相ですべてのロックを獲得した後に縮小相へ移行してロックを解除します。

2 相ロック方式を用いたトランザクションの同時実行制御に関する記述のうち,適切なものはどれか。

出典2021r03a_db_am2_問13
ア
全てのトランザクションが直列に制御され,デッドロックが発生することはない。
イ
トランザクションのコミット順序は,トランザクション開始の時刻順となるように制御される。
ウ
トランザクションは,自分が獲得したロックを全て解除した後にだけ,コミット操作を実行できる。
エ
トランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。