2相ロック方式による直列化可能性の保証

2相ロック方式(Two-Phase Locking: 2PL)は、トランザクションのロック処理を「成長相(ロック獲得のみ行い、解放は行わない)」と「縮小相(ロック解放のみ行い、新たな獲得は行わない)」の2段階に厳格に分ける制御方式です。トランザクションは必要なすべてのロックを獲得した後にだけロックの解放を開始でき、これにより実行結果の直列化可能性(Serializability)が保証されます。 2相ロック方式は直列化可能性を保証しますが、デッドロックの発生を防止することはできません(デッドロック対策にはタイムスタンプ法やデッドロック検出・解消が必要です)。 トランザクションのコミット順序はロックの解放・完了順序に依存し、開始時刻順に制御されるわけではありません(開始時刻順に制御するのはタイムスタンプ順序付け法です)。 厳密な2相ロック(Strict 2PL)等ではコミット時に一括解放しますが、一般的な2相ロックでは縮小相で一部のロックを解除しながら処理を進めることができ、全てのロック解除後にだけコミットできるという制約ではありません。

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

出典令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問12
ア
全てのトランザクションが直列に制御され,デッドロックが発生することはない。
イ
トランザクションのコミット順序は,トランザクション開始の時刻順となるように制御される。
ウ
トランザクションは,自身が獲得したロックを全て解除した後にだけ,コミット操作を実行できる。
エ
トランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。