SQL 解説書

付録 I. 分離レベルの比較

次の表は、分離レベルで説明している分離レベルについて要約しています。
UR CS RS RR
アプリケーションは、 他のアプリケーション・プロセスによって行われた未コミットの変更を見ることができるか ? Yes No No No
アプリケーションは、 他のアプリケーション・プロセスによって行われた未コミットの変更を更新できるか ? No No No No
ステートメントをもう一度実行した場合、 他のアプリケーション・プロセスによる影響があるか ? 下記の現象 P3 (幻像) を参照。 Yes Yes Yes No
「更新された」行を他のアプリケーション・プロセスで更新することができるか ? No No No No
「更新された」行を、UR 以外の分離レベルの他のアプリケーション・プロセスで読み取れるか ? No No No No
「更新された」行を UR の分離レベルの他のアプリケーション・プロセスで読み取れるか ? Yes Yes Yes Yes
「アクセスされた」行を、他のアプリケーション・プロセスによって更新することが可能か ? 下記の現象 P2 (反復不能読み取り) を参照。 Yes Yes No No
「アクセスされた」行を他のアプリケーション・プロセスが読み取ることができるか ? Yes Yes Yes Yes
「現在」行を、他のアプリケーション・プロセスによって更新または削除することが可能か ? 下記の現象 P1 (ダーティー読み取り) を参照。 下記の注を参照 下記の注を参照 No No

注:

  1. カーソルが更新可能でない場合、CS では、 現在行を他のアプリケーション・プロセスによって更新または削除できる場合もあります。

現象の例:

P1
ダーティー読み取り。 作業単位 UW1 が行を変更するとします。 UW1 が COMMIT を実行する前に、作業単位 UW2 がその行を読み取るとします。 次に UW1 が ROLLBACK を実行したとすると、 UW2 は実行しない行を読み取ったことになります。

P2
反復不能読み取り。 作業単位 UW1 が行を読み取るとします。 作業単位 UW2 がその行を変更してから、COMMIT を実行するとします。 UW1 がもう一度その行を読み取ると、値が修正されていることがあります。

P3
幻像。 作業単位 UW1 が、 ある探索条件を満たしている n 個の行を読み取るとします。 次に作業単位 UW2 が、その探索条件を満たしている 1 つまたは複数の行を挿入するとします。 UW1 が同じ探索条件でもう一度最初の読み取りを実行すると、 元の行のほかに挿入された行が追加されていることになります。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]