トランザクションの隔離レベルについて

SQLの規格では、トランザクションにおいて発生するべきでないとする3つの現象について定義している。

  1. ダーティリード
  2. 反復不能読み取り
  3. ファントムリード

ダーティリードとは、あるトランザクションがデータを更新してコミットする前のデータを、他のトランザクションが読み込んでしまう状態。

反復不能読み取りとは、あるトランザクションがデータを読み込んだ後、他のトランザクションがデータを更新&コミットを行った結果、再度データを読み込んだ際に前回読みこんだデータと異なる状態のこと。

ファントムリードとは、あるトランザクションがデータを読み込んだ後、他のトランザクションがデータを更新&コミットを行った結果、再度データを読み込んだ際に前回読みこんだデータと異なる状態のこと。
反復不能読み取りと異なるのは、検索条件に行の集合を使った場合にかかわる話だということ。(これ以上はよくわからない。。orz)

これらに対応するために、トランザクションの隔離レベル4つがある。
・・・