令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問12
テクノロジ/データベース2 相ロック方式を用いたトランザクションの同時実行制御に関する記述のうち,適切なものはどれか。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問12
- ア全てのトランザクションが直列に制御され,デッドロックが発生することはない。
- イトランザクションのコミット順序は,トランザクション開始の時刻順となるように制御される。
- ウトランザクションは,自身が獲得したロックを全て解除した後にだけ,コミット操作を実行できる。
- エトランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。
正解:エ
解説
2 相ロック方式は,トランザクションの実行を,ロックを獲得していく成長相(第 1 相)と,ロックを解除していく縮退相(第 2 相)に分ける方式です。いったんロックを解除した後は新たなロックを獲得できないため,必要な全てのロックを獲得し終えてからでなければロックの解除を始められません。この規則によって直列化可能性が保証されますが,デッドロックの発生自体は防げません。
選択肢ごとの解説
- ア誤り。2 相ロック方式は直列化可能性を保証しますが,複数トランザクションが互いのロック解放を待ち合うデッドロックは発生し得ます。
- イ誤り。2 相ロック方式はコミット順序をトランザクション開始時刻順に制御するものではありません。
- ウ誤り。ロックを全て解除した後にコミットするのではなく,一般にはコミット時点までロックを保持します(厳格 2 相ロック)。
- エ正しい。必要な全てのロックを獲得し終えた後(成長相の終了後)にだけ,ロックの解除を始められます。