令和5年度 秋期 午前Ⅱ 問12
トランザクション処理
同時実行制御に関する記述
2相ロック方式を用いたトランザクションの同時実行制御に関する記述のうち,適切なものはどれか。
- ア全てのトランザクションが直列に制御され,デッドロックが発生することはない。
- イトランザクションのコミット順序は,トランザクション開始の時刻順となるように制御される。
- ウトランザクションは,自身が獲得したロックを全て解除した後にだけ,コミット操作を実行できる。
- エトランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。
答えと解説を見る
✓ これが正解エトランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。
解説
2相ロックでは、必要なロックを全部取ってからでないと解除できません。
2相ロック方式は、トランザクションのロック操作を二つの段階に分けます。前半はロックを獲得するだけでまだ一つも解除しない段階、後半はロックを解除するだけで新しいロックを獲得しない段階です。つまり、必要なロックを全部獲得し終えてから初めて解除に移れます。この規則を全トランザクションが守ると、並行に動かしても結果が直列に実行した場合と等しくなる、つまり直列化可能性が保証されます。見分ける軸は、ロックの獲得と解除の順序についての規則かどうかです。獲得の相と解除の相がはっきり分かれる、と覚えておくと、時刻順やデッドロックの有無を述べた説明と区別できます。
ほかの選択肢はなぜ違うのか
- ア全てのトランザクションが直列に制御され,…:2相ロック方式でも、トランザクションは並行に動き、互いのロックを待ち合ううちにデッドロックが起こり得ます。直列化可能な結果を保証する方式ではありますが、全トランザクションを直列に動かすわけではありません。
- イトランザクションのコミット順序は,トラン…:コミットの順序を開始時刻順にそろえるという考え方は、時刻印を使う同時実行制御の発想に近いものです。2相ロック方式はロックの獲得と解除の順序を決める規則であり、コミットの順番までは決めません。
- ウトランザクションは,自身が獲得したロック…:ロックを全部解除してからコミットするという順序では、コミット前の更新を他のトランザクションが読めてしまいます。実際の運用では、コミットまで排他ロックを持ち続けて、そのあとで解除する形がとられます。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問12
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問16(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問15:隔離性水準に関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問14:べき等に関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)