Проверяемый текст
(Диссертация 2004)
[стр. 72]

ними.
Транзакция «В» откатывается и восстанавливает старые данные.
С чем же работала транзакция «А» (табл.
2.2)? Таблица 2.2 Транзакция А Время Транзакция В — ti Чтение Р=Р0 — t2 Запись Р—»Р Чтение P=Pt tj — Работа с прочитанными данными Р — tj Откат транзакции Ро—>Р Фиксация транзакции Работа с "грязными" данными t6 Результат.
Транзакция «А» в своей работе использовала данные, которых нет в базе данных.
Более того, транзакция
«А» использовала данные, которых нет, и не было в базе данных! Действительно, после отката транзакции «В», должна восстановиться ситуация, как если бы транзакция «В» вообще никогда не выполнялась.
Таким образом, результаты работы транзакции
А некорректны, т.к.
она работала с данными, отсутствовавшими в базе данных.
Проблема несовместимого анализа
включает несколько различных вариантов: • Неповторяемое считывание.
• Фиктивные элементы (фантомы).
Собственно несовместимый анализ.
Неповторяемое считывание.
Транзакция
«А» дважды читает одну и ту же строку.
Между этими чтениями вклинивается транзакция
«В», которая изменяет значения в строке.
Транзакция
«А» ничего не знает о существовании транзакции «В», и, т.к.
сама она не меняет значение в строке, то ожидает, что после повторного чтения значение будет тем же самым.
Результат.
Транзакция
«А» работает с данными, которые, с точки зрения транзакции «А», самопроизвольно изменяются (табл.
2.3).
72
[стр. 153]

Транзакция B изменяет данные в строке.
После этого транзакция A читает измененные данные и работает с ними.
Транзакция B откатывается и восстанавливает старые данные.
Транзакция A Время Транзакция B --Чтение --Запись Чтение --Работа с прочитанными данными ----Откат транзакции Фиксация транзакции --Работа с "грязными" данными С чем же работала транзакция A? Результат.
Транзакция A в своей работе использовала данные, которых нет в базе данных.
Более того, транзакция
A использовала данные, которых нет, и не было в базе данных! Действительно, после отката транзакции B, должна восстановиться ситуация, как если бы транзакция B вообще никогда не выполнялась.
Таким образом, результаты работы транзакции
A некорректны, т.к.
она работала с данными, отсутствовавшими в базе данных.
Проблема несовместимого анализа
Проблема несовместимого анализа включает несколько различных вариантов:  Неповторяемое считывание.
 Фиктивные элементы (фантомы).
Собственно несовместимый анализ.
Неповторяемое считывание Транзакция
A дважды читает одну и ту же строку.
Между этими чтениями вклинивается транзакция
B, которая изменяет значения в строке.
Транзакция
A Время Транзакция B Чтение ----Чтение --Запись --Фиксация транзакции Повторное чтение --Фиксация транзакции --Неповторяемое считывание

[стр.,154]

Транзакция A ничего не знает о существовании транзакции B, и, т.к.
сама она не меняет значение в строке, то ожидает, что после повторного чтения значение будет тем же самым.
Результат.
Транзакция
A работает с данными, которые, с точки зрения транзакции A, самопроизвольно изменяются.
Фиктивные элементы (фантомы) Эффект фиктивных элементов несколько отличается от предыдущих транзакций тем, что здесь за один шаг выполняется достаточно много операций чтение одновременно нескольких строк, удовлетворяющих некоторому условию.
Транзакция A дважды выполняет выборку строк с одним и тем же условием.
Между выборками вклинивается транзакция B, которая добавляет новую строку, удовлетворяющую условию отбора.
Транзакция A Время Транзакция B Выборка строк, удовлетворяющих условию .
(Отобрано n строк) ----Вставка новой строки, удовлетворяющей условию .
--Фиксация транзакции Выборка строк, удовлетворяющих условию .
(Отобрано n+1 строк) --Фиксация транзакции --Появились строки, которых раньше не было Транзакция A ничего не знает о существовании транзакции B, и, т.к.
сама она не меняет ничего в базе данных, то ожидает, что после повторного отбора будут отобраны те же самые строки.
Результат.
Транзакция A в двух одинаковых выборках строк получила разные результаты.
Собственно несовместимый анализ Эффект собственно несовместимого анализа также отличается от предыдущих примеров тем, что в смеси присутствуют две транзакции одна длинная, другая короткая.
Длинная транзакция выполняет некоторый анализ по всей таблице, например, подсчитывает общую сумму денег на счетах клиентов банка для главного бухгалтера.
Пусть на всех счетах находятся одинаковые суммы, например, по $100.
Короткая транзакция в этот момент выполняет перевод $50 с одного счета на другой так, что общая сумма по всем счетам не меняется.
Транзакция A Время Транзакция B Чтение счета и суммирование.
----Снятие денег со счета .

[Back]