In database systems, isolation is one of the ACID transaction properties.It determines how transaction integrity(무결성) is visible to other users and systems. A lower isolation lever increases the ability of many users to access the same data at the same time, but also increases the number of concurrency effects.
There are three different read phenomena that can occur when a transaction retrieves data that another transaction might have updated.
A dirty ready occurs when a transaction retrieves a row that has been updated by another transaction that is not yet committed.
A non-repeatable read occurs when a transaction retrieves a row is updated by another transaction that is committed in between.
A phantom read occurs when a transaction retrieves a set of rows twice and new rows are inserted into or removed from that set by another transaction that is committed in between.
Serializability requires read and write locks to be released at the end of the transaction. Range-locks must be acquired when a SELECT query uses a ranged WHERE caluse, especially to avoid the phantom reads phenomenon.
Keeps read and write locks until the end of the transaction. However, range-locks are not managed, so phantom reads can occur.
Write skew(쓰기 왜곡) is possible in some systems.
Keeps write locks until the end of the transaction, but read locks are released as soon as the SELECT operation is performed, so non-repeatable reads phenomenon can occur. As in the previous level, range-locks are not managed.
In this level, dirty reads are allowed, so one transaction may see not-yet-committed changes made by other transactions.