П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие


Download 1.32 Mb.
Pdf ko'rish
bet77/94
Sana15.06.2023
Hajmi1.32 Mb.
#1487605
1   ...   73   74   75   76   77   78   79   80   ...   94
Bog'liq
Базы данных

6.2.4. Вставка строк­призраков 
Разновидностью неповторяющегося чтения является вставка 
строк-призраков (phantom insert). 
Момент времени 
Задача 1 
Задача 2 

SELECT SUM(a1) FROM t1 

INSERT INTO t1 …

SELECT SUM(a1) FROM t1 
Здесь также в разные моменты времени один и тот же запрос 
в задаче 2 дает разные результаты, создавая впечатление с точки 
зрения этой задачи, что новая строка в таблице t1 появилась 
«ниоткуда». В отличие от предыдущего примера приведенная 
проблема может иметь меньший эффект, поскольку если выборка 
строк ведется по первичному ключу и статистические функции 
не используются, то задача 2 просто «не увидит» новую строку. 
6.3. Свойства транзакций 
Сформулируем теперь условия, предъявляемые к транзак-
циям, которые позволят исключить или скомпенсировать описан-
ные в предыдущем пункте нежелательные эффекты. Обычно их 
обозначают аббревиатурой ACID – Atomicity, Consistency
Isolation, Durability (неделимость, согласованность, изолирован-
ность, устойчивость). Означают они следующее. 
 Atomicity – действие транзакции по принципу «все или ни-
чего»: либо база данных переходит в новое состояние, соот-
ветствующее выполненным в ходе транзакции модифика-
циям базы данных, либо, если в ходе выполнения возникли 
критические ошибки или пользователь решил прервать вы-
полнение транзакции, – возврат базы данных к состоянию 
на момент начала транзакции. 
 Consistency – перевод из одного целостного (согласованного) 
состояния в другое. При этом в ходе выполнения отдельных 
команд транзакции согласованность данных может нару-
шаться (например, хранимое значение суммы каких-либо дан-
ных может не соответствовать реальной сумме этих данных), 
однако по ее окончании все данные, относящиеся к этой 
транзакции, должны соответствовать друг другу. Внутренние 
структуры данных, поддерживающие согласованность дан-


127 
ных, например индексы или связи «родитель-потомок», также 
должны быть правильными в конце транзакции. 
 Isolation (изолированность) – недоступность промежуточ-
ных результатов другим пользователям. У пользователя 
должна создаваться иллюзия, что только он работает с базой 
данных. Единственным эффектом от присутствия других 
пользователей может быть лишь замедление работы систе-
мы (иногда весьма значительное). Это свойство называют 
также упорядочиваемостью, поскольку при параллельном 
выполнении транзакций оно дает тот же самый результат, 
что и при их последовательном выполнении в некотором 
порядке. 
 Durability (устойчивость) – сохранение зафиксированных 
данных. Это означает, что в конце транзакции ее результаты 
должны быть переписаны из буферов оперативной памяти 
на диски, чтобы дальнейшие события, происходящие в про-
цессе функционирования базы данных, не могли изменить 
результаты этой транзакции. Разумеется, данные, с которы-
ми оперировала транзакция, впоследствии могут быть изме-
нены, но при откате на момент окончания транзакции они 
должны быть теми же, что получились в результате ее 
фиксации. 

Download 1.32 Mb.

Do'stlaringiz bilan baham:
1   ...   73   74   75   76   77   78   79   80   ...   94




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling