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

Механизм отката транзакций

  1. все записи журнала по независимой транзакции связываются в обратный список. Начало списка – запись о последнем изменении БД. Концом является первая запись. Этот список также рассматривается как транзакция.

  2. выбирается определенная запись из списка.

  3. выполняется противоположная по смыслу операция, вместо insert выполняется delete, вместо delete- insert, восстанавливается предыдущее состояние записей.

  4. любая из этих операций также заносится в журнал. При успешном завершении отката в журнал заносится запись о конце транзакции связанной с откатом.

Стерилизация транзакций

Стерилизация – дисциплина обработки транзакций, опирается на следующие правила:

  1. в процессе выполнения транзакции пользователь или программа “видит” только согласованные состояния БД, нельзя получить доступ к незафиксированным изменениям данных, достигнутым в результате действий другого пользователя (программы).

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

Распределенные транзакции.

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

Протокол двухфазной фиксации.

Фаза1. (предварительное подтверждение).

Начинается, когда при обработке транзакции встречается оператор COMMINT.

Сервер РБД направляет уведомление “подготовится” к фиксации всем серверам локальных БД, выполняющим транзакцию.

Если, хотя бы один из серверов не откликнулся на уведомление, то сервер РБД отказывает локальные транзакции на всех узлах.

Если все серверы приготовились к фиксации, то переход к фазе 2.

Фаза2.(окончательное подтверждение).

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

Элементы схемы доступа.

Субъект

( пользователь)

Объект

(табл., формы, отчеты и т.д.)

Привилегии (операции, которые разрешено выполнить пользователю над конкретными объектами)

Уровни блокировки бд.

Могут блокироваться: базы данных, таблицы, части таблиц (страницы), записи. В большинстве СУБД используются блокировки на уровни страниц (2-4 кб) и на уровне записей (повышается скорость обработки).

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

Блокировка баз данных.

DATABASE имя_базы_данных [EXCLUSIVE] (ни какой другой пользователь не сможет подсоединиться к БД даже на чтение).

При изменении структуры БД, при архивации необходимо блокировать БД. Блокировка снимается при закрытии БД.

Блокировка отношений.

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

LOCK TABLE имя_отношенния IN {SHARE | EXCLUSIVE } MODE

Разблокировка: UNLOCK TABLE имя_отношенния.

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