An
isolation level defines how
concurrent transactions accessing a RDBMS are isolated from one another for read purposes.
The following
isolation levels are generally supported in any RDBMS. These levels are defined in the ANSI SQL92 standard in terms of three possible occurrences that must be prevented between
concurrent transactions.
- Dirty reads: A transaction reads a row in a database table containing uncommitted changes from another transaction.
- Nonrepeatable reads: A transaction reads a row in a database table, a second transaction changes the same row and the first transaction re-reads the row and gets a different value.
- Phantom reads: A transaction re-executes a query, returning a set of rows that satisfies a search condition and finds that another committed transaction has inserted additional rows that satisfy the condition.
The table below lists the 5 isolation levels followed with a corresponding description .