ВВЕДЕНИЕ В СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ




Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное считывание)


Транзакция B изменяет данные в строке. После этого транзакция A читает измененные данные и работает с ними. Транзакция B откатывается и восстанавливает старые данные.

Транзакция A

Время

Транзакция B

Работа с "грязными" данными

---
Чтение
---
Запись
Чтение
---
Работа с прочитанными данными
---
---
Откат транзакции
Фиксация транзакции
---
   

С чем же работала транзакция A?

Результат. Транзакция A в своей работе использовала данные, которых нет в базе данных. Более того, транзакция A использовала данные, которых нет, и не было в базе данных! Действительно, после отката транзакции B, должна восстановиться ситуация, как если бы транзакция B вообще никогда не выполнялась. Таким образом, результаты работы транзакции A некорректны, т.к. она работала с данными, отсутствовавшими в базе данных.




Содержание  Назад  Вперед