Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Базы данных

Функционирование БД

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

Синхронизация имеет место как при однопользовательском, так и при многопользовательском режимах. Первоначально поговорим об однопользовательском режиме, обеспечиваемом транзакциями.

Под транзакцией понимается:

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

К транзакции предъявляются следующие основные требования:

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

Возможна двухфазная и трехфазная схема транзакции. Последняя более сложная и применяется в ограниченном объеме (например, в системе управления распределенной БД SDD-1). Поговорим о широко применяемой двухфазной схеме транзакции.

Первая фаза (операция фиксации): все устройства, участвующие в транзакции, сообщают о своей готовности специальной программе – системному журналу (журналу транзакций).

Вторая фаза по системному журналу транзакций происходит выполнение или возврат в прежнее положение (откат) в точки фиксации (точки контроля) (рис. 4.10).

Действие транзакции

Рис. 4.10. Действие транзакции

Возврат (восстановление) может быть оперативным, промежуточным, длительным. Для двух первых устанавливается предыдущее состояние (точки фиксации), для последнего – контрольные точки. Контрольные точки предназначены для процедуры восстановления БД после серьезного сбоя и устанавливаются периодически (например, с интервалом 2–3 секунды). Интервал определяется при настройке БД или компьютера.

Перейдем к многопользовательскому режиму (рис. 4.11). Здесь задача синхронизации процессов усложняется за счет взаимодействия нескольких пользователей.

Многопользовательский режим

Рис. 4.11. Многопользовательский режим

Для любой транзакции ТР возможны две группы действий:

  • • изменение состояния (запись) – W;
  • • считывание (чтение) состояния – R.

Для двух взаимодействующих транзакций ТР1 и ТР2 возможны следующие случаи.

  • 1. Одновременное изменение ТР1 и ТР2, при этом возможны наложение данных (потеря обновления) или ошибка в первой транзакции (взаимозависимость восстановления).
  • 2. Изменение R1 и считывание W2 с двумя возможными последствиями:
    • а) изменение с помощью ТР1 значения, считываемого ТР2 (воспроизводимость считывания);
    • б) откат перед окончанием работы ТР, (поскольку нет изменений в ТР2) и возврат ТР, в прежнее состояние.
  • 3. Чтение ТР, и изменение ТР1 (нет гарантии воспроизводимости).

Для устранения этих нежелательных явлений возможны такие способы управления:

  • • блокировка монопольная или согласованная;
  • • отложенные изменения;
  • • привязка по меткам времени работы компьютера (временная привязка).

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

Блокировка выполняется только для одной транзакции и одного объекта.

При последовательном (во времени) выполнении транзакций нарушений целостности нет, но такое выполнение требует много времени. В связи с этим используют так называемый параллельный режим (параллелизм). Вводится понятие "правильно оформленная транзакция" [4].

  • 1. Перед обработкой объекта должна быть выполнена его блокировка.
  • 2. После обработки объект должен быть разблокирован.
  • 3. Перед разблокировкой не должна выполняться повторная блокировка.
  • 4. Неблокированный объект не должен освобождаться.

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

Очевидно, что в монопольной блокировке возможны ожидания и рестарты (перезапуски ожидающих транзакций). При этом возможны тупики (рис. 4.12, а): одна транзакция блокирует другую и процедура выполнения транзакций "зависает". Для выявления таких тупиков транзакции отражают графически (рис. 4.12, б).

Для выхода из тупиков при монопольной блокировке возможны следующие варианты:

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

При использовании согласованных блокировок возможно:

  • • предупреждение о блокировке для всей области;
  • • блокировка части области, связанной с данной транзакцией.

Возможны и другие виды блокировок (голосование по большинству, метод предварительного анализа конфликтов), рассматриваемые далее применительно к распределенным базам данных.

Безопасность. Напомним, что безопасность – защита БД от умышленного и неумышленного искажения информации и нарушения секретности. Защита от неумышленного искажения осуществляется с помощью ограничения целостности, от преднамеренного искажения – управлением доступом.

Ограничения целостности. Выделяют две группы ограничений.

Монопольная блокировка (тупик)

Рис. 4.12. Монопольная блокировка (тупик)

I. В процессе проектирования: 1) при получении достоверных данных из источников; 2) при построении структуры; 3) при заполнении БД данными (в том числе ссылочная целостность).

II. При эксплуатации: 1) машинные сбои; 2) ошибки оператора.

Поскольку ограничения группы II характеризуют больше СУБД, чем БД, они рассмотрены в гл. 5.

При построении структуры и заполнении ее данными имеет место целостность отдельных таблиц и ссылочная целостность (триггеры). Реализация триггерных условий на основе реляционной алгебры осуществляется программным путем, например, в Access.

Использование реляционного исчисления (например, в СУБД InterBase) позволяет применять объектно-ориентированный подход (интерфейс пользователя и алгоритм приложения), декларативный язык и задавать с помощью СУБД при формировании структуры триггеры (в качестве условий), уникальность ключей, связи таблиц (на их схеме с помощью мыши). Может быть непосредственно использован язык SQL.

Защита. Управление доступом противодействует несанкционированному доступу в цепочке "субъект – данные – процедуры".

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

В дальнейшем использовали таблицы и список управления доступом. Этот метод тоже недостаточно гибок.

В последнее время, особенно после появления языка SQL, стали широко использовать гибкую систему разрешений и запрещений доступа к данным. Для ограничения доступа возможно использовать и виды, описанные в гл. 5.

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Популярные страницы