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