Serializability
Operations may be interleaved, but execution must be equivalent to some sequential order of all transactions.
Overhead, reduces concurrency
Weaker Isolation Levels (lower overhead, more concurrency, lower concurrency guarantees)
Read Uncommitted
Read Committed
Repeatable Read
Isolation level is per transaction
“In the eye of the beholder”
Dirty Reads
“Dirty” data item: written by an uncommitted transaction
Read Uncommitted
A transaction may perform dirty reads
Read Committed
A transaction may NOT perform dirty reads
Still does not guarantee global serializability
Repeatable Read
A transaction may NOT perform dirty reads
An item read multiple times cannot change value
Still does not guarantee global serializability
But a relation can change: “phantom tuples”