隔離性水準とは?かくりせいすいじゅん
隔離性水準とは、同時実行時にどの異常現象までを許すかを段階で指定する設定で、低いほうからREAD UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLEの4段階が標準で定められている。段階が上がるほどダーティリード、反復不能読取り、ファントムリードの順に異常が禁じられ、その代わり同時実行性が下がる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
隔離性を常に完全に保つと、ロックを長く持ち続けることになり、参照が多いオンライン業務では待ち行列が延びて実用にならない。一方で、月次の集計のように多少古い値を読んでも結論が変わらない処理まで厳密に守らせるのは過剰である。そこで「どこまでの異常なら業務として許せるか」を処理ごとに選べるよう、緩め方を4段階に標準化したのが隔離性水準である。試験では水準と異常現象の対応表が定番の出題になる。
具体例
PostgreSQLの既定はREAD COMMITTEDで、同じ問合せを2回実行するあいだに他者がコミットすれば値が変わる。SET TRANSACTION ISOLATION LEVEL REPEATABLE READ を指定すれば、そのトランザクションの中では2回目も1回目と同じ値が返る。
試験での引っ掛け
水準を上げると整合性は高まるがロックの保持が長くなり、スループットは下がる。反復不能読取りを防ぐのに必要な最低水準はREPEATABLE READ、ファントムリードまで防ぐにはSERIALIZABLEが要る。ダーティリードだけを防ぐのはREAD COMMITTEDである。
関連用語
出た過去問
出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問17(IPA)
図は、ある探索条件を使って数学模試の平均点を算出している間、当該探索条件に合致するA君の結果を“数学模試成績”表に登録したときの様子を示している。平均点を求める…
正解:ファントムリード
要点:再検索で新たな行が出現する現象がファントムリード
同じ検索条件で読み直したときに、他のトランザクションの挿入によって前回は無かった行が現れる現象をファントムリードという。ここでは合計点の算出後に新しい成績行が追加・コミットされ、受験者数を数え直した際に件数が増えたため、合計と件数の対象がずれてしまった。
出典:平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14(IPA)
厳格な2相ロッキングプロトコルと表ロックを適用して、同時実行している他のトランザクションの処理結果に影響を与えないようにする。実現されるトランザクションの隔離性…
正解:SERIALIZABLE
要点:厳格2相ロック+表ロックはSERIALIZABLEを実現する
厳格な2相ロッキングでは獲得したロックをコミットまで解放せず、さらに表単位でロックをかければ、他のトランザクションはその表に一切手を出せなくなる。行の追加による現象まで含めてあらゆる干渉が排除されるため、最も高い隔離性水準であるSERIALIZABLEが実現される。
出典:平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問17(IPA)
トランザクションの隔離性水準を高めたとき、不整合なデータを読み込むトランザクション数と、単位時間に処理できるトランザクション数の傾向として、適切な組合せはどれか…
正解:不整合データ読込数: 減る/処理できるトランザクション数: 減る
要点:隔離性水準の向上は整合性と引き換えにスループットを下げる
隔離性水準を高めるほどロックの範囲や保持期間が広がり、他のトランザクションの干渉による不整合な読込みは減る。その一方で待ち合わせが増えて並行度が下がるため、単位時間に処理できるトランザクション数は減る。整合性とスループットはトレードオフの関係にある。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問9(IPA)
トランザクションの隔離性水準のうち、次の(1), (2)に該当するSQLの指定はどれか。 (1) 対象の表のダーティリードは回避できる。 (2) 一つのトランザ…
正解:READ COMMITTED
要点:READ COMMITTEDはダーティリードのみ防ぎ再読込みは保証しない
READ COMMITTEDはコミット済みのデータしか読まないためダーティリードは起こらないが、読み終えた行を他のトランザクションが更新・コミットすると、同じ行を読み直したときに値が変わり得る。この現象がアンリピータブルリードであり、防ぐにはREPEATABLE READ以上が必要になる。
出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問7(IPA)
次の(1),(2)に該当するトランザクションの隔離性水準はどれか。 (1)対象の表のダーティリードは回避できる。 (2)一つのトランザクション中で、対象の表のあ…
正解:READ COMMITTED
要点:READ COMMITTEDはダーティリードのみ防ぐ隔離性水準
ダーティリード(未コミットの値の読取り)は防げるが、同じ行を読み直すと他トランザクションのコミット済み更新が見えてしまい値が変わり得る、という状態は反復不能読取りが起きる水準である。これに当たるのがREAD COMMITTEDである。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの3 技術要素 > 4. トランザクション処理 > (1) 同時実行制御(排他制御)に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。