Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

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

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

  • Обеспечение свойства атомарности транзакций. Свойство атомарности гарантирует, что все операции транзакции выполняются полностью, либо не выполняется ни одной операции. Для обеспечения свойства атомарности вводятся понятия успешного завершения, «фиксации» транзакции (commit) и «отката» транзакции (rollback). Если транзакцию не удаётся полностью завершить, результаты всех до сих пор произведённых операций должны быть отменены, и система возвращается в исходное состояние в точку начала транзакции;

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

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

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

  • Разделение времени между пользователями. Создает возможность параллельного или псевдопараллельного выполнения процессов пользователей.

Атомарность транзакции в субд HyTech

  • Присутствуют механизмы фиксации и отката транзакций. По умолчанию, транзакция в работе с СУБД отсутствует, необходимо явное открытие/завершение транзакции.

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

Непротиворечивость информации в субд HyTech

  • Имеются встроенные средства контроля уникальности значений колонки ограничений первичного ключа, обязательности значений (NOT NULL).

  • Механизм контроля внешних ключей реализуется вручную в табличных триггерах. Отложенное вычисление ограничений (в момент фиксации транзакции) не поддерживается.

  • Механизм контроля декларативных ограничений целостности (CHECK CONSTRAINTS) реализуется вручную в табличных триггерах. Отложенное вычисление ограничений не поддерживается.

  • Контроль ограничений в триггерах поддерживается в полном объеме. Обращение к модифицируемым таблицам допускается.

Изолированность транзакций

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

  • Реализован механизм «версионности». При поиске каждый пользователь работает с какой-то определённой версией данных – «снимком». Транзакция на корректировку сериализует обращения (т.е. организует последовательный доступ) к включённым в неё таблицам. Изменяемые таблицы блокируются при этом целиком, а не только изменяемые строки.

Долговечность

Журнал изменений для каждой таблицы свой и он растёт в процессе изменения данных. В заголовке журнала прописан размер «видимой» части. Заголовок обновляется при подтверждении транзакции. «Невидимые» данные доступны только процессу, владеющему таблицей в рамках транзакции или атомарной операции корректировки.

Механизмы разделения времени

  • Используется единственный системный процесс для управления словарем данных (каталогом).

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

1.4 Обеспечение отказоустойчивости

Термины и определения

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

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

Горячее резервирование – использование дополнительных мощностей и поддержание их в активном режиме с целью гибкого и оперативного переключения на них в случае отказа основных (резервируемых) объектов.