Snapshot isolation
Snapshot isolation の下で実行されるトランザクションは、そのトランザクションの開始時に撮ったスナップショットの上で動作しているように見える。トランザクションが終了すると、そのトランザクションによって行われた更新が、スナップショットを撮った後で発生した他のトランザクションによる更新と衝突しない場合に限って、コミットが成功する。ライト対ライト (write vs write) の衝突が発生すると、トランザクションはアボートする。
ライトスキュー異常 (write skew anomaly) は、2つのトランザクション (T1 と T2) が同時並行的に重複したデータ集合 (V1 と V2 の両方) を読み、それぞれが異なる更新を行い (T1 が V1 を更新し、T2 が V2 を更新)、最後にコミットを行った時に発生する。その際、T1とT2は互いの更新を知ることはないまま、snapshot isolation のシステムではコミットは成功してしまう。しかし serializable isolation のシステムにおいては、T1 と T2 のどちらかが先に実行されたとみなすことができなければならない (一方の更新は他方から見えなければならない) ので、これらはゆるされない。