Еще менее стабильным, чем уровень изолированности REPEATABLE READ, является уровень изолированности READ COMMITTED. На этом уровне транзакция может видеть не только новые записи, добавленные другими транзакциями, но и изменения, произведенные этими транзакциями. Другими словами, это означает, что операторы SELECT на протяжении одной и той же транзакции возвращают различные результаты, если в этот момент соответствующие таблицы были изменены другими транзакциями. Это видно на рис. 12.6.
Пусть задан уровень изолированности READ COMMITTED, вторая транзакция "увидит" на счету маклера A 1000 акций, пока первая транзакция еще находится на стадии выполнения. Однако после завершения первой транзакции, вторая "увидит" 600 акций на счету маклера A и 1400 акций на счету B несмотря на то, что первая транзакция все еще находится на стадии выполнения.
read committed
 Это очевидная проблема - когда вторая транзакция "видит" два различных резуль­тирующих набора и поэтому непонятно, какому из них можно доверять. Экстраполируя эту ситуацию, предположим, что вместо одной транзакции одновременно работает много транзакций, которые выполняют обновления данных в базе данных. В результате каждый запрос, выполненный транзакцией, приводит к другому результирующему набору (отсюда и термин неповторимое чтение),
read uncommitted
Уровень изолированности READ UNCOMMITTED обеспечивает минимальную степень изолированности транзакций. Кроме того, что для него характерно ложное и неповтори­мое чтение, транзакция такого уровня изолированности имеет возможность считывания данных, обработка которых еще не закончена другими транзакциями. Если такая тран­закция использует невыполненные изменения, вызванные другими транзакциями, для своих собственных вычислений и по этим изменениям потом будет произведен откат, это может закончиться полным разрушением данных.
Рассмотрим пример, представленный на рис. 12.7. Предположим, что вторая транзак­ция работает с уровнем изолированности READ UNCOMMITTED, это приведет к возмож­ности просмотра изменений первой транзакции, пока она выполняется, а значит, "увидеть" 600 акций на балансе маклера A еще до того, как эта транзакция будет завер­шена. Но если транзакция между маклерами A и B впоследствии отменяется командой ROLLBACK, вторая транзакция будет продолжать работать с ошибочными данными (отсюда применение для обозначения ошибок такого типа термина грязное чтение).
read committed