隔離性とは?かくりせい
隔離性とは、複数のトランザクションを同時に実行しても、互いの途中結果に影響されず、1本ずつ順に実行したのと同じ結果が得られる性質。ACID特性のIにあたり、直列化可能性とも呼ぶ。完全に満たそうとすると同時実行性が落ちるため、実装では隔離性水準として段階的に緩められるようになっている。
最終更新:2026-10-06
この語が出る過去問を解く →背景
同時実行を一切許さなければ整合性は完璧だが、1件の処理が終わるまで全員が待つことになり、オンライン処理が成り立たない。かといって無制限に並べると、他のトランザクションが書きかけの値を読んで判断してしまう。この「速さ」と「正しさ」の対立を、直列実行と同じ結果になる範囲までなら並べてよい、という基準で調停するのが隔離性である。試験ではACIDの中で唯一、意図的に緩める対象として問われる。
具体例
PostgreSQLの既定はREAD COMMITTEDで、他のトランザクションがまだコミットしていない在庫数は見えない。SERIALIZABLEを指定すると、直列実行と同じ結果にならない組み合わせを検出し、後から来たほうをエラーで中断させる。
試験での引っ掛け
水準を緩めたときに何が犠牲になるかを取り違えやすい。落ちるのは隔離性だけで、READ COMMITTEDにしてもコミット済みの更新が失われたり、更新の一部だけが残ったりはしない——原子性と耐久性は水準の指定と無関係である。もう一つ狙われるのが直列化可能性の解釈で、SERIALIZABLEが保証するのは「どこかの直列順序と同じ結果になる」ことだけ。ロック方式ならデッドロック、スナップショット方式なら直列化異常の検出による中断が起こり得る。
関連用語
出た過去問
出典:平成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である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。