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