
- •Ключевые поля.
- •Установка связей между таблицами.
- •Создание таблицы.
- •Диапазон допустимых значений для числовых полей.
- •Именование программ (файлов).
- •Журнализация.
- •Поддержка языков бд.
- •Концепция реляционной модели определяется 12 правилами.
- •Составные части реляционных бд.
- •Реляционная целостность данных.
Журнализация.
Одним из основных требований к СУБД является надёжность хранения данных во внешней памяти. Под надёжностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние базы данных после любого аппаратного или программного сбоя. Обычно рассматривается 2 аппаратных сбоя. «Мягкий сбой» - внезапная остановка работы компьютера. «Жёсткий сбой» - потеря информации во внешнем носителе. Примеры программных сбоев могут быть: аварийное завершение работы СУБД, ошибка программы или программный сбой. В результате сбоя некоторые транзакции остаются незавершёнными. Первая ситуация: «мягкий аппаратный сбой» при возникновении некоторой ситуации. При потере данных на внешнем носителе для восстановления базы данных нужно обладать дополнительной информацией. Поддержание надёжности хранения данных требует избыточности хранения данных, причём та часть данных, которую используют для восстановления данных, должна храниться особо надёжно. Наиболее распространённым методом поддержки такой избыточной информации является ведение журнала изменения базы данных. Журнал – это особая часть БД, которая недоступна пользователям. СУБД в историю поступают записи обо всех изменениях основной части БД. В разных СУБД изменения БД записываются на разных уровнях. Иногда запись в журнале соответствует некоторой логической операции изменения БД, А иногда минимальные внутренние операции модификации страниц внешней памяти. В некоторых БД одновременно используются оба подхода. Во всех подходах журнализации придерживаются стратегии, которая упреждает записи в журнал.
Если СУБД корректно выполняет упреждающий протокол, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.
При мягком сбое во внешней памяти основной части БД могут находиться объекты, которые модифицировали транзакции и не завершили своё выполнение к моменту сбоя, могут отсутствовать объекты модификации транзакций, которые к моменту сбоя были успешно завершены. При соблюдении упреждающего протокола во внешней памяти журнала гарантируется нахождение записей, которые относятся к обоим видам объектов. С целью процесса восстановления после мягкого сбоя является состояние внешней памяти основной части БД, которая возникла бы при фиксации во внешней памяти всех изменений завершившихся транзакций и которая не содержала бы никаких следов незаконченных транзакций. Для того, чтобы этого добиться, сначала производят откат незавершённых транзакций, а затем повторно воспроизводят те операции завершённых транзакций, результат которых не отображается во внешней памяти. Этот процесс содержит много тонкостей с общей организацией управления буферами и журналом.
Поддержка языков бд.
Для работы с базами данных используются специальные языки программирования, языки БД. В ранних СУБД поддерживались несколько специфичкских по своим функциям языков. Чаще всего выделялось 2 языка: Язык манипулирования данными (DML) и язык определения схемы БД (SDL). Главным образом служили для логического определения структуры БД. DML содержит набор операторов, манипулирующих данными. В современных СУБД обычно поддерживает единый интегральный язык, который содержит все необходимые средства для работы с БД. Стандартным языком, наиболее распространённым в настоящее время реляционных СУБД является язык SQL. Он сочетает в себе SDL и DML, позволяя определить схему БД и манипулировать данными.
Типовая организация современных СУБД содержит в себе следующий набор функций: 1) управление данными во внешней памяти, 2) Управление буферами в оперативной памяти, 3) Управление транзакциями, 4) Журнализацию и восстановление БД после сбоев, 5) поддержку языков БД. В современных СУБД можно выделить внутреннюю часть, то есть ядро СУБД, компилятор языка БД (SQL), подсистему поддержки временного выполнения, набор дополнительных утилит. В некоторых БД эти части выделяются явно, в других нет. Логическое разделение можно произвести во всех БД. Ядро СУБД отвечает за управление данными во внешней памяти, за управление буфером оперативной памяти, управление транзакциями, журнализацию. Можно выделить соответствующие компоненты ядра: менеджеры данных, буферов, транзакций и журналов.
ПРОПУСК2!!!