令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問13
テクノロジ/データベース2 相ロック方式を用いたトランザクションの同時実行制御に関する記述のうち,適切なものはどれか。
出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問13
- ア全てのトランザクションが直列に制御され,デッドロックが発生することはない。
- イトランザクションのコミット順序は,トランザクション開始の時刻順となるように制御される。
- ウトランザクションは,自分が獲得したロックを全て解除した後にだけ,コミット操作を実行できる。
- エトランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。
正解:エ
解説
2相ロック方式は,トランザクションがロックを獲得するだけの拡張フェーズと,解放するだけの縮小フェーズの二つに分かれ,一度ロックを解放し始めたら新たなロックを獲得してはならないという規則です。すなわち,トランザクションは必要な全てのロックを獲得し終えるまでは,いかなるロックも解放できません。
選択肢ごとの解説
- ア誤り。2相ロック方式はスケジュールの直列可能性を保証する方式ですが,ロック待ちに伴うデッドロックの発生自体を防ぐものではなく,デッドロックは依然として発生し得ます。
- イ誤り。2相ロック方式が保証するのはスケジュールの直列可能性であり,実際のコミット順序がトランザクション開始の時刻順になることまでは規定していません。
- ウ誤り。ロックを全て解除した後でなければコミットできないという規則はなく,2相ロック方式では通常,ロックの解除はコミット時又はコミット後に行われます。
- エ正しい。2相ロック方式では,トランザクションは必要な全てのロックを獲得し終える(拡張フェーズが終わる)までは,いかなるロックも解放してはならないという規則があります。