令和3年度 秋期 午前Ⅱ 問7
トランザクション処理
隔離性水準に関する問題
次の (1),(2) に該当するトランザクションの隔離性水準はどれか。
(1) 対象の表のダーティリードは回避できる。
(2) 一つのトランザクション中で,対象の表のある行を 2 回以上参照する場合,1 回目の読込みの列値と 2 回目以降の読込みの列値が同じであることが保証されない。
- アREAD COMMITTED
- イREAD UNCOMMITTED
- ウREPEATABLE READ
- エSERIALIZABLE
答えと解説を見る
✓ これが正解アREAD COMMITTED
解説
ダーティリードは防ぎ、読み直しの値は保証しない水準です。
隔離性水準は低い順に READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE と並び、上がるほど防げる現象が増えます。条件の一つ目は、コミットされていない他のトランザクションの更新を読んでしまうダーティリードを防げることです。これで最も低い READ UNCOMMITTED が外れます。二つ目は、同じ行を2回読んだときに値が同じである保証が無いこと、つまり他のトランザクションがその間に更新してコミットすると値が変わり得ることです。この現象まで防ぐのは REPEATABLE READ 以上なので、それより一段低い READ COMMITTED が当てはまります。四つの水準を低い順に並べ、それぞれで新たに防げる現象を一つずつ対応させて覚えると判断が速くなります。
ほかの選択肢はなぜ違うのか
- イREAD UNCOMMITTED:READ UNCOMMITTED は最も低い水準で、他のトランザクションがコミットする前の値を読むことも許します。条件の一つ目にあるダーティリードの回避ができないので、該当しません。
- ウREPEATABLE READ:REPEATABLE READ は、一度読んだ行を同じトランザクションの中で読み直したとき、同じ値が返ることを保証する水準です。条件の二つ目は、その保証が無いことを求めているので合いません。
- エSERIALIZABLE:SERIALIZABLE は最も高い水準で、並行に実行しても一つずつ順に実行した場合と同じ結果になることを求めます。同じ行の読み直しで値が変わることも防ぐため、保証が無いとする条件の二つ目と食い違います。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問7
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問16(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問14:べき等に関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問12:ロールフォワードに関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)