令和7年度 秋期 午前Ⅱ 問15
トランザクション処理
隔離性水準に関する問題
トランザクションT1,T2を同時実行した際に,次の異状を防ぐことができるトランザクションの隔離性水準のうち,最も水準の低いものはどれか。
〔異状〕
T1が同じデータを複数回読み込んでいる途中で,T2がそのデータを更新してコミットしたことによって,T1が更新していないのにもかかわらずT1が読み込むデータが変わってしまう。
- アREAD COMMITTED
- イREAD UNCOMMITTED
- ウREPEATABLE READ
- エSERIALIZABLE
答えと解説を見る
✓ これが正解ウREPEATABLE READ
解説
反復不可能な読込みを防ぐ最も低い水準は REPEATABLE READ です。
この異状は、T1 が同じデータを読み直したときに、その間に T2 が更新してコミットしたために値が変わってしまう、反復不可能な読込み(ノンリピータブルリード)です。READ COMMITTED では、コミット済みのデータしか読みませんが、読み終えたデータに対する他のトランザクションの更新は防がないので、この異状は起こり得ます。REPEATABLE READ では、読んだデータをトランザクションの終わりまで他から更新させないなどの方法で、同じデータを何度読んでも同じ値になることを保証します。SERIALIZABLE でも防げますが、より高い水準です。見分ける軸は、四つの水準をダーティリード、反復不可能な読込み、ファントムの三つの異状と対応させることです。
ほかの選択肢はなぜ違うのか
- アREAD COMMITTED:READ COMMITTED で保証されるのは、未確定の値を読まないことまでです。T1 が一度読んだ行でも、その後 T2 が書き換えて確定させれば、T1 の2回目の読込みでは新しい値が見えてしまうので、この異状は残ります。
- イREAD UNCOMMITTED:READ UNCOMMITTED は最も低い水準で、コミットされていないデータを読むことさえ許します。読み直したときに値が変わる異状も当然防げないので、この異状を防ぐ水準には当たりません。
- エSERIALIZABLE:SERIALIZABLE は最も高い水準で、この異状も防げますが、最も低い水準を問われているので答えになりません。この異状は、一つ下の水準でもう防げるからです。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問15
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問16(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問14:べき等に関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問12:ロールフォワードに関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)