Snapshot isolation still leaves one named anomaly allowed in this pedagogical matrix.

highlighted = computed this step

Snapshot isolation

Snapshot isolation blocks another named anomaly in this toy matrix while still allowing one label. The allowed label is a matrix cell, not a vendor claim.

snapshot isolation row\text{snapshot isolation row}

One label remains allowed

The snapshot isolation row blocks 3 labels and allows 1 label in the pinned anomaly set.

blocked=3,allowed=1\text{blocked}=3,\quad \text{allowed}=1

isolation levels are rendered as a tiny pedagogical matrix over named anomalies only; ANSI completeness, vendor behavior, performance, and operational guarantees are out of scope.

Snapshot isolationleveldirty_readnon_repeatable_readlost_updatewrite_skewread_committedblockedallowedallowedallowedrepeatable_readblockedblockedallowedallowedsnapshot_isolationblockedblockedblockedallowedserializableblockedblockedblockedblocked blocked versus allowedlevelblockedCountblockedallowedCountallowedread_committed1dirty_read3non_repeatable_read, lost_update, write_skewrepeatable_read2dirty_read, non_repeatable_read2lost_update, write_skewsnapshot_isolation3dirty_read, non_repeatable_read, lost_update1write_skewserializable4dirty_read, non_repeatable_read, lost_update, write_skew0none stronger-than cover edgesstrongerweakerrepeatable_readread_committedsnapshot_isolationrepeatable_readserializablesnapshot_isolation

Summary

The row makes the contrast precise without generalizing to every implementation. Note: retry rules and write-conflict handling are not modeled.

one allowed label remains\text{one allowed label remains}