Основные функции систем управления базами данных.
Организация типичной СУБД и состав ее компонентов соответствует рассмотренному нами набору функций. Напомним, что мы выделили следующие основные функции СУБД:
· управление данными во внешней памяти;
- управление буферами оперативной памяти;
- управление транзакциями;
- журнализация и восстановление БД после сбоев;
- поддержание языков БД.
Рассмотрим каждую из этих функций:
1. Управление данными во внешней памяти.
Функция управления данными во внешней памяти включает в себя обеспечение необходимых структур внешней памяти как для хранения непосредственных данных, так и для служебных целей, например, для ускорения доступа к данным (обычно используются индексы). Существует множество способов организации внешней памяти баз данных. Как и все решения, принимаемые при создании баз данных, конкретные методы организации внешней памяти необходимо выбирать вместе с принятием остальных решений.
2. Управление буферами оперативной памяти.
СУБД обычно работают с базами данных значительных размеров; по крайней мере этот размер превышает доступный объем оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью внешней памяти. Единственным способом реального увеличения скорости является буферизация данных в оперативной памяти. И даже если операционная система производит общесистемную буферизацию, этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части базы данных. В развитых СУБД поддерживается свой набор буферов оперативной памяти с собственной дисциплиной замены буферов. При управлении буферами необходимо разрабатывать и применять согласованные алгоритмы буферизации, журнализации и синхронизации. Заметим, что существует собственное направление СУБД, которое ориентировано на постоянное присутствие всей БД в ОП. Это направление основывается на предположении, что в предвидимом будущем объем оперативной памяти может быть настолько велик, что позволит не беспокоиться о буферизации.
3. Управление транзакциями.
Транзакция — это последовательность операций с БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует изменения БД, произведенные ею, во внешней памяти, либо ни одно из этих изменений никак не отражается в состоянии БД. Транзакция необходима для поддержания логической целостности БД (например, объединения элементарных операций над файлами). Поддержание механизма транзакций — необходимое условие даже однопользовательских СУБД. Но понятие транзакции гораздо важнее в многопользовательских СУБД. То свойство, что каждая транзакция начинается при целостном состоянии БД и оставляет это состояние целостным после своего завершения, делает очень удобным использование транзакции как единицы активности пользователя по отношению к БД. При соответствующем механизме управления транзакциями пользователь может почувствовать себя единственным пользователем СУБД.
4. Журнализация и восстановление БД после сбоев.
Одно из основных требований к СУБД — надежное хранение данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после аппаратного или программного сбоя. Поддержание надежного хранения данных в базе требует избыточности объема памяти для хранения данных, причем та их часть, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенный метод поддержания такой избыточности — это ведение журнала изменений базы данных. Во всех случаях придерживаются "упреждающей " записи в журнал (так называемый протокол Write Ahead Log). Стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем она попадет во внешнюю память основной части БД. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.
5. Поддержание языков БД.
Для работы с БД используются специальные языки, называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания обеспечивающий базовый пользовательский интерфейс с базами данных.
Дата добавления: 2016-03-20; просмотров: 1265;