Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры_БД.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

Объявление характеристик блокировки

Управление параллельной обработкой – предмет слож­ный; некоторые решения о типах и стратегиях блокировки должны делаться ме­тодом проб и ошибок. По этой и другим причинам прикладные программы базы данных обычно не налагают явных блокировок. Вместо этого они указывают рам­ки транзакций, а затем объявляют, какого рода поведение им требуется от СУБД. Таким образом, если поведение при блокировке нужно изменить, то нет необходи­мости переписывать приложение, чтобы налагать блокировки на других участках транзакции. Вместо этого просто меняется объявление характеристик блокировки. В листинге 3 изображена транзакция с карандашами, рамки которой обозна­чены с помощью операторов BEGIN TRANSACTION, COMMIT TRANSACTION и ROLLBACK TRANSACTION. Рамки транзакции – это та информация, которая жизненно необходима СУБД, чтобы реализовывать различные стратегии блокировки. Если разработчик объявит теперь (через системный параметр или каким-либо дру­гим способом), что ему нужна оптимистическая блокировка, СУБД неявным образом наложит блокировки, соответствующие этой стратегии, в правильном месте. Если после этого разработчик сменит тактику и запросит пессимистиче­скую блокировку, СУБД неявно наложит свои блокировки в другом месте.

Листинг 3. Указание рамок транзакции

BEGIN TRANSACTION:

SELECT ТОВАР.Название, ТОВАР.Количество

FROM ТОВАР

WHERE ТОВАР.Название='Карандаш'

СтароеКоличество = ТОВАР.Количество

Set НовоеКоличество = ТОВАР.Количество - 5

UPDATE ТОВАР

SET ТОВАР.Количество = НовоеКоличество

WHERE ТОВАР.Название - 'Карандаш'

{продолжение обработки транзакции}...

IF транзакция выполнена успешно THEN

COMMIT TRANSACTION

ELSE

ROLLBACK TRANSACTION

END IF

Далее выполняются другие действия, не входящие в эту транзакцию...

  1. СВОЙСТВА ТРАНЗАКЦИЙ: АТОМАРНОСТЬ, ДОЛГОВЕЧНОСТЬ, СОГЛАСОВАННОСТЬ.

Свойства транзакций

Транзакция - это неделимая, с точки зрения воздействия на СУБД, последовательность операций манипулирования данными, выполняющаяся по принципу "все или ничего", и переводящая базу данных из одного целостного состояния в другое целостное состояние.

Транзакция обладает четырьмя важными свойствами, известными как свойства ACID (atomicity, consistency, isolation, durability):

  1. Атомарность.

  2. Согласованность.

  3. Изолированность.

  4. Долговечность или устойчивость.

Атомарность

Атомарная транзакция – это такая транзакция, в которой либо выполняются все содержащиеся в ней действия с базой данных, либо не выполняется ни одно из них.

Долговечность или устойчивость

Если транзакция выполнена, то результаты ее работы должны сохраниться в базе данных, даже если в следующий момент произойдет сбой системы.

Устойчивая транзакция – это транзакция, в которой все сохраненные изменения остаются в базе данных. СУБД не будет удалять эти изменения даже в случае ошибки. Если транзакция устойчивая, СУБД при необходимости предоставит возможность для восстановления изменений, произведенных всеми выполненными действиями.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]