読取り異状(ダーティリード・反復不能読取り・ファントムリード)とは?よみとりいじょう
読取り異状(ダーティリード・反復不能読取り・ファントムリード)とは、同時に走るトランザクションの分離が不十分なときに現れる三つの読取り不整合。未確定の値を読んでしまうのがダーティリード、同じ行を読み直すと値が変わっているのが反復不能読取り、同じ条件で検索し直すと該当行が増減するのがファントムリード。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
一件ずつ順番に処理すれば不整合は起きないが、それでは処理性能が出ない。並列に走らせたい要求と矛盾を避けたい要求は正面から衝突するため、どの異状までを許すかを段階で決める隔離性水準が定義された。READ COMMITTED・REPEATABLE READ・SERIALIZABLE の違いは「どの読取り異状を防ぐか」の違いであり、性能との取引として選ぶ設計判断になる。
具体例
在庫引当が確定前の在庫数を読み、その更新が後でロールバックされると、実在しない在庫を売ったことになる(ダーティリード)。PostgreSQL や Oracle Database は既定で READ COMMITTED を採り、この一つだけは起きないようにしている。
試験での引っ掛け
反復不能読取りは既存行の更新・削除が原因、ファントムリードは行の挿入が原因、という切り分けが要点。行ロックだけではファントムを止められず、範囲(ギャップ)ロックや述語ロックが必要になるため、隔離性水準に段差が生まれる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。