ВУЗ:
Составители:
Рубрика:
Функцию восстановления и дублирования данных в СУБД принято называть журнализацией. В ре-
зультате аварийного выключения питания компьютера, сбоя в программе, выхода из строя носителя
информации и других аварийных ситуаций может произойти потеря информации в базе данных. В пер-
вых двух случаях (мягкий сбой) восстановить данные можно ликвидацией последствий одной транзак-
ции, в третьем (жесткий сбой) – восстановление данных возможно только копированием их из архива.
Соблюдение надежности системы достигается избыточностью хранимых данных или ведением журнала
изменений БД. Журнал – это особая часть БД, недоступная пользователям СУБД и поддерживаемая
особенно тщательно, в которую поступают записи обо всех изменениях основной части БД.
Изменения базы данных журнализируются на разных уровнях, например, операции удаления строки
из таблицы реляционной БД или операции модификации страницы внешней памяти. Самая простая си-
туация восстановления – индивидуальный откат транзакции. В более сложных случаях применяют од-
новременно журнал и архивную копию. Тогда восстановление БД состоит в том, что исходя из архив-
ной копии, по журналу воспроизводится работа всех транзакций, которые закончились к моменту сбоя.
Для функции определения данных характерно наличие языкового процессора. В ранних СУБД под-
держивалось несколько специализированных по функциям языков. Чаще всего выделялись два – язык
описания данных (ЯОД) или схемы базы данных (SDL – Schema Definition Language) и язык манипули-
рования данными (ЯМД) (DML – Data Manipulation Language). В современных СУБД обычно поддер-
живается единый интегрированный язык. Примером такого языка может служить широко распростра-
ненный язык SQL (Structured Query Language).
Организация типичной СУБД и состав ее компонентов соответствуют рассмотренному выше набо-
ру функций. Логически в современной реляционной СУБД можно выделить внутреннюю часть – ядро
СУБД, компилятор языка БД, подсистему поддержки времени выполнения и набор утилит (рис. 3.5). В
некоторых системах эти части выполняются явно, в других нет, но логически такое разделение просле-
живается во всех СУБД.
СУБД
Ядро СУБД
(Data Base Engine)
Компилятор языка
БД (SQL)
Подсистема
поддержки
времени
выполнения
Менеджер
данных
Менеджер
буферов
Менеджер
транзакций
Менеджер
журнала
Оптимизатор
операторов
Прикладные
программы в
машинно-
независимом коде
Набор
утилит
Интерпретатор
внутреннего
языка
Загрузки БД
Разгрузки
БД
Сбора
статистики
Глобальной
проверки
целостности
ядр
а
Рис. 3.5 Логическая структура СУБД
Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую. Этот ин-
терфейс используется в программах, выполняемых компилятором языка SQL (или в подсистеме под-
держки выполнения таких программ), и утилитах БД. Ядро СУБД является основной резидентной ча-
стью СУБД. Компилятор непроцедурного языка SQL решает проблему выполнения текущего операто-
ра, его оптимизации и генерирования программного кода. Реальное выполнение оператора осуществля-
ется подсистемой поддержки времени выполнения, представляющей собой интерпретатор внутреннего
языка. Утилиты программируются с использованием интерфейса ядра СУБД или с проникновением
внутрь ядра.
4 МОДЕЛИ ДАННЫХ
Традиционно СУБД делятся по типу моделей хранимых данных на иерархические, сетевые и ре-
ляционные. Такое деление моделей и СУБД основывается на характере связей между записями. При
всей разнице в терминологии можно считать, что основными компонентами любой из этих моделей яв-
ляются файлы, которые состоят из записей. Различают внутризаписную и межзаписную структуры.
В отличие от моделей внутризаписная структура может быть или линейной, или иерархической.
При линейной структуре запись состоит из простых элементов, следующих один за другим. Такая
структура считается нормализованной. Иерархическая структура включает простые и составные компо-
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »