СУБД Oracle. ТЕМА 3. Проблемы защиты информации в базе данных.

Спасибо господину Илюшечкину Владимиру Михайловичу.

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

ТЕМА 3

Проблемы защиты информации в базе данных

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

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

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

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

При выполнении транзакции возможны два итога:

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

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

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

Репликация — предусматривает размещение копии БД или копии некоторого фрагмента БД в нескольких различных узлах сети и поддержание одинакового содержимого всех копий.

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

В языке SQL новая транзакция начинается следующим образом:

BEGIN TRANSCATION

либо автоматически после завершения предыдущей транзакции. Если транзакция завершается оператором

COMMIT

— то все изменения будут сохранены в БД. Успешное завершение транзакции — устанавливается точка фиксации.

Если же транзакция заканчивается оператором

ROLLBACK

— все изменения будут отменены. Отмена изменений. Неуспешное завершение транзакции.

Восстановление БД

— процесс, возвращающий БД в целостное состояние, если какая-либо причина вызвала разрушение данных. Восстановление базируется на принципе избыточности БД, при этом по части хранимых данных имеется возможность восстановления всей информации полностью.

Глобальные сбои:

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

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

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

Проблемы параллельной обработки данных:

  1. Проблема потери результатов обновления.
  2. Проблема незафиксированности зависимости.
  3. Проблема несовместного анализа.

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

Виды блокировки:

  • блокировка записи;
  • блокировка чтения.

Протокол доступа к данным

  • транзакция, результатом действия которой на кортеж является его чтение или извлечение данных, обязана наложить блокировку чтения на этот кортеж;
  • транзакция, предназначенная для модификации кортежа, обязана наложить блокировку записи на этот кортеж;
  • в случае, если запрашиваемая блокировка кортеж отвергается из-за того, что на кортеж уже наложена блокировка, то транзакция переводится в режим ожидания до тех пор, пока блокировка не будет снята;
  • блокировка записи сохраняется вплоть до конца выполнения (завершения) транзакции, т.е. выполнения операторов COMMIT или ROLLBACK.

Транзакции являются подходящими единицами изолированности пользователей.

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

Awayka из страны Notavailable =]