Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tranzaktsii_i_tselostnost_bazy_dannykh.docx
Скачиваний:
5
Добавлен:
17.09.2019
Размер:
99.89 Кб
Скачать

Транзакции и целостность базы данных, параллелизм

Защита данных от возможных угрожающих ситуаций как предметных так и случайных.

Риск потери данных:

  • Система разрушается во время выполнения некоторой проги, оставив БД в непредсказуемом состоянии;

  • При выполнении 2х конкурирующих за данные программ;

  • Данные могут быть испорчены преднамеренно;

  • Обновления меняют БД недопустимым образом.

Система должна иметь функции защиты данных от подобных проблем: восстановление, параллелизм, защиту и целостность.

Восстановление – восстановление самой базы данных, т.е. возвращение базы данных в правильное состояние.

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

Транзакции

Принцип восстановления не зависит от того, является ли базовая система реляционной. Он связан с процессом транзакции.

Транзакция – это логическая единица работы.

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

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

Системный компонент, обеспечивающий атомарность, называется администратором транзакций (или диспетчером транзакций), а ключами к его выполнению служат операторы COMMIT TRANSACTION и ROLLBACK TRANSACTION.

Оператор COMMIT сигнализирует об успешном окончании транзакции. Он сообщает, что логическая единица работы завершена успешно, база данных вновь находится в согласованном состоянии, и все обновления теперь могут быть зафиксированы.

Оператор ROLLBACK сигнализирует о неудачном окончании транзакции. Он, что произошла какая-то ошибка, база данных находится в несогласованном состоянии и все обновления могут быть отменены, т.е. аннулированы.

Оператор COMMIT устанавливает так называемую точку фиксации – конец логической единицы работы. Термин "база данных" означает доступную для транзакции часть базы данных.

Аннулирование возможно благодаря журналу транзакций. Он содержит все детали операций обновления, в частности, старое и новое значения модифицируемого объекта.

СУБД выполняет операцию ROLLBACK неявно для любой программы, которая по какой-либо причине не достигла запланированного завершения операций. Однако в ряде случаев можно явно задать подтверждение и отмену транзакции (при создании триггеров).

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

Обновление произойдёт после COMMIT, но до того, как обновления будут физически записаны в БД (они могут оставаться в ОЗУ).

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

Это правило регистрации известно как протокол предварительной записи в журнал. Запись об операции осуществляется перед ее выполнением. Процедура перезагрузки сможет восстановить любые успешно завершенные транзакции, хотя их обновления не были записаны физически до аварийного отказа системы. => Транзакция действительно является единицей восстановления.

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