平成30年度 春期 午前Ⅱ 問14
トランザクション処理
隔離性水準に関する問題
厳格な2相ロッキングプロトコルと表ロックを適用して,同時実行している他のトランザクションの処理結果に影響を与えないようにする。実現されるトランザクションの隔離性水準はどれか。
- アREAD UNCOMMITTED
- イREAD COMMITTED
- ウREPEATABLE READ
- エSERIALIZABLE
答えと解説を見る
✓ これが正解エSERIALIZABLE
解説
厳格な2相ロックと表ロックの組で、最も高いSERIALIZABLEになります。
見分ける軸は、どのような読取りの異状まで防げるかです。厳格な2相ロッキングプロトコルでは、獲得したロックをトランザクションの終了まで解放しません。そのため、他のトランザクションがまだコミットしていないデータを読むことも、一度読んだ行が途中で書き換えられることもありません。さらにロックの単位を表にしているので、読んだ表全体がロックされ、他のトランザクションが同じ条件に合う行を新たに登録することもできません。こうして、ダーティリード、アンリピータブルリード、ファントムリードのいずれも起こらず、隔離性水準で最も高いSERIALIZABLEが実現されます。ロックの単位が表なら新しい行の割込みも防げる、という点が決め手です。
ほかの選択肢はなぜ違うのか
- アREAD UNCOMMITTED:READ UNCOMMITTEDは、他のトランザクションがまだコミットしていないデータの読取りまで許す、最も低い隔離性水準です。ロックを終了まで保持する設問の方式では、そうした読取りは起こりません。
- イREAD COMMITTED:READ COMMITTEDは、コミット済みのデータだけを読みますが、読んだ行が途中で書き換えられることは防ぎません。ロックを終了まで持ち続ける設問の方式は、これより強い隔離を実現します。
- ウREPEATABLE READ:REPEATABLE READは、読んだ行の書換えは防ぎますが、同じ条件に合う行の新規登録までは防ぎません。設問の方式は表全体をロックするので、新しい行の登録も防ぎ、さらに上の水準になります。
この問題の用語
- プロトコル通信するときの、決まりごとや手順のまとまりのことをいいます。送る側と受ける側が同じものに従うことで、やり取りが成り立ちます。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(トランザクション)
- 令和6年度 秋期 午前Ⅱ 問14:多版同時実行制御に関する問題(プロトコル)
- 令和5年度 秋期 午前Ⅱ 問2(プロトコル)
- 平成31年度 春期 午前Ⅱ 問2:チェックポイントに関する問題(プロトコル)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)