Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec1.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
58.88 Кб
Скачать
  1. Журнализация.

Одно из основных требований к СУБД – надежность хранения данных во внешней памяти, то есть СУБД должна уметь восстанавливать согласованное состояние БД после любого программного или аппаратного сбоя. Примеры программного сбоя: аварийное завершение работы СУБД из-за ошибки в системе, аварийное завершение пользовательской программы. Аппаратные сбои обычно подразделяют на мягкие и жесткие. К мягким относят внезапную остановку аппаратного обеспечения (например, из-за выключения питания). Жесткие характеризуются потерей информации на внешних носителях (например, из-за физического повреждения диска, случайного удаления данных).

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

Наиболее распространенный метод поддержания избыточной информации – ведение журнала изменения базы данных. Журнал – это особая часть базы данных, недоступная пользователям и поддерживаемая с особой тщательностью (иногда хранятся две копии журнала на разных физических носителях). В журнал производится постоянная запись информации обо всех изменениях основной части базы данных. Во всех случаях используется стратегия “упреждающей” записи в журнал (так называемого протокола Write Ahead Log - WAL), то есть запись об изменении БД вносится в журнал прежде, чем сами изменения во внешнюю память. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

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

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

  1. Поддержка языков бд.

Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т.е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.

В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]