Некоторые аномалии, которые могут возникнуть при параллельном выполнении транзакций:
- Потерянное обновление. 23 Когда разные транзакции одновременно изменяют одни и те же данные, то после фиксации изменений может оказаться, что одна транзакция перезаписала данные, обновлённые и зафиксированные другой транзакцией. 2
- «Грязное» чтение. 23 Транзакция читает данные, изменённые параллельной транзакцией, которая ещё не завершилась. 2 Если эта параллельная транзакция в итоге будет отменена, тогда окажется, что первая транзакция прочитала данные, которых нет в системе. 2
- Неповторяющееся чтение. 23 При повторном чтении тех же самых данных в рамках одной транзакции оказывается, что другая транзакция успела изменить и зафиксировать эти данные. 2 В результате тот же самый запрос выдаёт другой результат. 2
- Фантомное чтение. 23 Транзакция выполняет повторную выборку множества строк в соответствии с одним и тем же критерием. 2 В интервале времени между выполнением этих выборок другая транзакция добавляет новые строки и успешно фиксирует изменения. 2 В результате при выполнении повторной выборки в первой транзакции может быть получено другое множество строк. 2
- Аномалия сериализации. 2 Результат успешной фиксации группы транзакций, выполняющихся параллельно, не совпадает с результатом ни одного из возможных вариантов упорядочения этих транзакций, если бы они выполнялись последовательно. 2