平成27年度 春期 データベーススペシャリスト試験 午前II 問13
【問題13】
2相ロック方式を用いたトランザクションの同時実行制御に関する記述のうち、適切なものはどれか。
全てのトランザクションが直列に制御され、デッドロックが発生することはない。
トランザクションのコミット順序は、トランザクション開始の時刻順となるように制御される。
トランザクションは、自分が獲得したロックを全て解除した後にだけ、コミット操作を実行できる。
トランザクションは、必要なロック獲得命令を全て実行した後にだけ、ロック解除命令を実行できる。
【解説】
2相ロック方式の特徴
2相ロック方式(Two-Phase Locking, 2PL)は、データベースの同時実行制御で用いられる手法です。この方式では以下のようなルールが適用されます:
- 成長フェーズ(ロック取得フェーズ)
トランザクションはロックを取得できるが、解除はできない。
- 縮小フェーズ(ロック解除フェーズ)
トランザクションはロックを解除できるが、新たなロックを取得することはできない。
この方式では、トランザクションの実行順序が直列化可能であることが保証されますが、デッドロックが発生する可能性は残ります。
ア: 全てのトランザクションが直列に制御され、デッドロックが発生することはない。
誤り。2相ロック方式は直列化可能性を保証しますが、デッドロックが発生する可能性を完全には排除しません。
イ: トランザクションのコミット順序は、トランザクション開始の時刻順となるように制御される。
誤り。2相ロック方式では、トランザクションの実行順序が直列化可能であることを保証しますが、コミット順序が開始時刻順になるとは限りません。
ウ: トランザクションは、自分が獲得したロックを全て解除した後にだけ、コミット操作を実行できる。
誤り。ロックの解除はコミット操作の前提ではありません。トランザクションの成長・縮小フェーズの制約が重要です。
エ: トランザクションは、必要なロック獲得命令を全て実行した後にだけ、ロック解除命令を実行できる。
正しい。2相ロック方式では、トランザクションは全てのロックを取得した後にのみ、ロックを解除する縮小フェーズに移行できます。
【答え】
エ: トランザクションは、必要なロック獲得命令を全て実行した後にだけ、ロック解除命令を実行できる。
出典:平成27年度 春期 データベーススペシャリスト試験 午前II 問13