Snapshot isolation
実際にはsnapshot isolationはデータの世代を管理するMultiVersion Concurrency Control (MVCC) の一種として実装される。MVCC は、データベース中のオブジェクトが更新されるたびに新しいバージョンを作成し、並行して実行されているトランザクションのリード操作が他の操作をブロックしないようにすることで、並列性と性能をともに向上させるよく知られた方法である。Snapshot isolation は ANSI SQL-92標準が規定する分離レベルを批判する論文で使用された (snapshot isolation は SQL-92標準が規定する "異常" を一切持たないにもかかわらず、serializable ではない)。
Oracle は snapshot isolation のことを "serializable" と呼んでいる。
PostgreSQL は以前は snapshot isolation のことを "serializable" と呼んでいたが、version 9.1 から "repeatable read" と呼ぶよう変更した。
どちらの判断が正しいかは議論があるが、いずれにせよユーザは両者の違いをよく理解してデータ一貫性を失わないように注意する必要がある。