Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_REAIS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
147.46 Кб
Скачать

14 Вопрос

Модель транзакции

Информация в БД в любой момент времени должна быть целостной и непротиворечивой. Одним из путей обеспечения этого является использование механизма транзакций

Транзакция – это логический блок операций, которые выполняются на сервере как единое целое. Этот блок может содержать одну или несколько инструкций SQL.

ТРАНЗАКЦИЯ представляет собой выполнение последовательности операций, воздействующих на БД и переводящих ее из одного целостного состояния в другое (воздействие выражается в изменении данных в таблицах БД). Транзакция - это групповая операция или набор действий с базой данных; самым существенным для этих действий является правило либо все, либо ни чего.

В процессе выполнения транзакции возможны две ситуации:

  • успешно завершены все операции.

  • неудачно завершена хотя бы одна операция.

Использование механизма транзакций необходимо

  • при выполнении последовательности взаимосвязанных операций с БД

  • при многопользовательском доступе к БД

При выполнении транзакции система управления базами данных должна придерживаться определенных правил обработки набора команд, входящих в транзакцию. В частности, четыре правила, известные как требования ACID, гарантируют правильность и надежность работы системы.

  • атомарность – принцип неделимости.

  • согласованность – гарантирует, что по мере завершения транзакции данные переходят из одного согласованного состояния в другое, то есть транзакция не разрушает взаимной согласованности данных.

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

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

15 Вопрос

Управление транзакциями

Любая транзакция имеет несколько фаз.

1. Перед началом транзакции база данных находится в согласованном состоянии (оператор BEGIN TRANSACTION).

2. Приложение объявляет о начале транзакции.

3. Приложение начинает модификацию данных.

4. Когда приложение достигает этапа, на котором все модификации успешно завершены, и база данных снова находится в согласованном состоянии, приложение фиксирует транзакцию.

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

Возможность явного управления транзакциями предоставляет язык Transact-SQL, который имеет в своем составе следующие операторы:

  • BEGIN TRANSACTION - начать транзакцию, активизирует выполнение групповой операции.

  • COMMIT – подтвердить транзакцию. сохраняет внесенные транзакцией изменения в базу данных.

  • ROLLBACK – отменить транзакцию. Данная операция выполняется при возникновении ошибки при выполнении операции (например, при невозможности обновить запись).

Все операторы Transact-SQL выполняются в составе транзакций: явных, неявных или с автоматической фиксацией.

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