反復不能読取りとは?
反復不能読取りとは、同一トランザクション内で同じ行を2回読んだとき、間に他のトランザクションが更新・削除したために値が変わってしまう現象。
データベーススペシャリスト試験の過去問では3回出題されています(2021年度〜2025年度)。
はんぷくふのうよみとり
反復不能読取りの意味
同一トランザクション内で同じ行を2回読んだとき、間に他のトランザクションが更新・削除したために値が変わってしまう現象。
反復不能読取りの具体例
集計の途中で単価が書き換わり、前半と後半で違う単価を使ってしまう。
反復不能読取りは試験でどう引っ掛けられる?
これを防ぐ最低の隔離性水準はREPEATABLE READ。READ COMMITTEDでは防げない。
反復不能読取りと関連する用語
反復不能読取りが出た過去問
次の(1),(2)に該当するトランザクションの隔離性水準はどれか。 (1)対象の表のダーティリードは回避できる。 (2)一つのトランザクション中で、対象の表のあ…
正解:READ COMMITTED
要点:READ COMMITTEDはダーティリードのみ防ぐ隔離性水準
ダーティリード(未コミットの値の読取り)は防げるが、同じ行を読み直すと他トランザクションのコミット済み更新が見えてしまい値が変わり得る、という状態は反復不能読取りが起きる水準である。これに当たるのがREAD COMMITTEDである。
出典:令和3年度 秋期 データベーススペシャリスト試験 am2 問7(IPA)トランザクションT1がある行Xを読んだ後、別のトランザクションT2が行Xの値を更新してコミットし、再びT1が行Xを読むと、以前読んだ値と異なる値が得られた。この…
正解:REPEATABLE READ
要点:反復不能読取りを防ぐ最低水準はREPEATABLE READ
同じ行を読み直したときに値が変わってしまう現象は反復不能読取りと呼ばれる。これを防ぐ隔離性水準はREPEATABLE READとSERIALIZABLEだが、問われているのは回避できる最も低い水準なのでREPEATABLE READが答えになる。
出典:令和4年度 秋期 データベーススペシャリスト試験 am2 問14(IPA)トランザクションT1, T2を同時実行した際に、次の異状を防ぐことができるトランザクションの隔離性水準のうち、最も水準の低いものはどれか。 〔異状〕 T1が同じ…
正解:REPEATABLE READ
要点:反復不能読取りを防ぐ最低水準はREPEATABLE READ
同じ行を読み直したら他のトランザクションの更新で値が変わっていた、という現象は反復不能読取り(ノンリピータブルリード)である。これを防ぐには、読み取った行に対する一貫性を取引の終了まで保証する水準が必要で、その最も低いものがREPEATABLE READにあたる。より上位のSERIALIZABLEでも防げるが、設問は最低水準を問うている。
出典:令和7年度 秋期 データベーススペシャリスト試験 am2 問15(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。