Спасибо господину Илюшечкину Владимиру Михайловичу.
Статья содержит краткий обзор по следующим темам: проблемы защиты информации в базе данных, восстановление БД, глобальные сбои, обеспечение изолированности пользователей, проблемы параллельной обработки данных, протокол доступа к данным.
ТЕМА 3
Проблемы защиты информации в базе данных
Есть необходимость защиты БД от возможных случайных или преднамеренных ситуаций, когда существует вероятность потери данных.
Механизм транзакций
- основа обеспечения целостности базы данных;
- основа изолированности пользователей в многопользовательских системах.
Транзакция — логическая единица работы, состоящая из одного или нескольких операторов манипулирования данными (чтения, удаления, вставки, обновления), которую СУБД рассматривает и обрабатывает как неделимое действие, переводящее БД из одного целостного состояния в другое целостное состояние.
При выполнении транзакции возможны два итога:
- результаты всех операторов, входящих в транзакцию, соответствующим образом отображаются в БД;
- воздействие всех операторов на БД полностью отсутствует.
Распределенная база данных — набор логически связанных между собой частей данных, которые одновременно доступны многим пользователям и физически распределены в компьютерной сети.
Сохранность данных и обеспечение необходимой скорости доступа к информации в распределенной БД может обеспечиваться за счет репликации.
Репликация — предусматривает размещение копии БД или копии некоторого фрагмента БД в нескольких различных узлах сети и поддержание одинакового содержимого всех копий.
Одним из способов передачи информации в распределенных репликационных базах данных является использование распределенных транзакций. Распределенная транзакция — процесс одновременной модификации данных в одном узле сети и передачи измененных данных другим копиям БД с помощью триггеров и процедур с использованием механизма фиксации.
В языке SQL новая транзакция начинается следующим образом:
BEGIN TRANSCATION
либо автоматически после завершения предыдущей транзакции. Если транзакция завершается оператором
COMMIT
— то все изменения будут сохранены в БД. Успешное завершение транзакции — устанавливается точка фиксации.
Если же транзакция заканчивается оператором
ROLLBACK
— все изменения будут отменены. Отмена изменений. Неуспешное завершение транзакции.
Восстановление БД
— процесс, возвращающий БД в целостное состояние, если какая-либо причина вызвала разрушение данных. Восстановление базируется на принципе избыточности БД, при этом по части хранимых данных имеется возможность восстановления всей информации полностью.
Глобальные сбои:
- Сбой системы, нарушающий все выполняемые в данный момент транзакции, но не нарушающий БД физически (восстановление — журнал транзакций).
- Сбой носителей данных, который представляет собой физическую угрозу для данных (восстановление — резервная копия).
При обнаружении нарушения целостности вместо фиксации результатов транзакции происходит откат транзакции.
Обеспечение изолированности пользователей — создание такого режима работы, чтобы каждому из пользователей казалось, что он работает с БД в одиночку. Такую задачу СУБД принято иногда называть параллелизмом транзакции.
Проблемы параллельной обработки данных:
- Проблема потери результатов обновления.
- Проблема незафиксированности зависимости.
- Проблема несовместного анализа.
Для решения этих проблем используют блокировку — метод управления параллельными процессами, при котором объект БД (например, кортеж) не может быть модифицирован без ведома транзакции. Результатом блокировки является запрет доступа к объекту со стороны других транзакций, исключающий непредсказуемое изменение объекта.
Виды блокировки:
- блокировка записи;
- блокировка чтения.
Протокол доступа к данным
- транзакция, результатом действия которой на кортеж является его чтение или извлечение данных, обязана наложить блокировку чтения на этот кортеж;
- транзакция, предназначенная для модификации кортежа, обязана наложить блокировку записи на этот кортеж;
- в случае, если запрашиваемая блокировка кортеж отвергается из-за того, что на кортеж уже наложена блокировка, то транзакция переводится в режим ожидания до тех пор, пока блокировка не будет снята;
- блокировка записи сохраняется вплоть до конца выполнения (завершения) транзакции, т.е. выполнения операторов COMMIT или ROLLBACK.
Транзакции являются подходящими единицами изолированности пользователей.
В следующей статье рассмотрим безопасность и целостность баз данных, подходы обеспечения безопасности, виды и типы ограничений целостности.
Awayka из страны Notavailable =]