Транзакции. Параллельное исполнение. Блокировки

Материал из Викиконспекты
Версия от 17:55, 14 января 2016; Nauru (обсуждение | вклад) (3 проблемы)
Перейти к: навигация, поиск

3 проблемы

  • Проблема потерянного обновления.

2.jpg

  • Проблема зависимости от незафиксированных результатов.

3.jpg

  • Проблема анализа несовместимости.

4.jpg

Транзакция А подсчитывает остатки на счетах, а транзакция В переводит сумму 10 со счета 3 на счет 1. Очевидно, что результат, вырабо- танный транзакцией А, — 110, является неправильным; если бы в ходе своего дальней- шего выполнения транзакция А снова записала этот результат в базу данных, то фактически оставила бы базу данных в противоречивом состоянии 1 . По сути, транзакция А обнару- жила несовместимое состояние базы данных и поэтому выполнила анализ несовмести- мости. Обратите внимание на различие между этим примером и предыдущим: в данном случае не возникает проблема зависимости транзакции А от незафиксированного изме- нения, поскольку в зафиксировала все свои обновления еще до того, как А прочитала значение АСС 3.