過去問解きまくり研究所 ホーム

平成31年度 春期 午前Ⅱ 問9

トランザクション処理

隔離性水準に関する問題

トランザクションの隔離性水準のうち,次の(1),(2)に該当するSQLの指定はどれか。

(1) 対象の表のダーティリードは回避できる。
(2) 一つのトランザクション中で,対象の表のある行を2回以上参照する場合,1回目の読込みの列値と2回目以降の読込みの列値が同じであることが保証されない。

答えと解説を見る

✓ これが正解アREAD COMMITTED

解説

READ COMMITTEDはダーティリードを防ぎ、読み直しの値は保証しません。

隔離性水準は、防げる現象の範囲で並べると整理できます。(1)のダーティリードは、他のトランザクションがまだコミットしていない更新を読んでしまう現象です。(2)は、同じ行を2回読む間に他のトランザクションが更新してコミットすると値が変わり得る、という条件です。コミット済みのデータだけを読むREAD COMMITTEDは、ダーティリードを防ぎますが、1回目と2回目の読込みの間に他のトランザクションがコミットした更新は見えるので、同じ値である保証はありません。二つの条件にちょうど合うのはこの水準です。ダーティリードを許す、防ぐ、読み直しの値も守る、全てを逐次実行と同等にする、と一段ずつ強くなると覚えると判断しやすくなります。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問9

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)