Три типа логических моделей баз данных
Ядром любой базы данных является модель данных. Модель данных — это совокупность структур данных и операций их обработки.
По способу установления связей между данными различают иерархическую, сетевую и реляционную модели.
Иерархическая модель позволяет строить базы данных с древовидной структурой, где каждый узел содержит свой тип данных (сущность). На верхнем уровне дерева в этой модели имеется один узел — корень, на следующем уровне располагаются узлы, связанные с этим корнем, затем узлы, связанные с узлами предыдущего уровня и т.д.
При этом каждый узел может иметь только одного предка (рис. 1.2).
Поиск данных в иерархической системе всегда начинается с корня. Затем производится спуск с одного уровня дерева на другой, пока не будет достигнут искомый уровень. Перемещения по системе от одной записи к другой осуществляются с помощью ссылок.
Основные достоинства иерархической модели — простота описания иерархических структур реального мира и быстрое выполнение запросов. Однако не всегда удобно каждый раз начинать поиск нужных данных с корня, а другого способа перемещения по базе в иерархических структурах нет.
Указанный недостаток снят в сетевой модели, где (по крайней мере, теоретически) возможны связи всех информационных объектов со всеми.
В примере, приведенном на рис. 1.3, каждый преподаватель может обучать многих (теоретически всех) студентов и каждый сту дент может обучаться у многих (теоретически у всех) преподавателей. Поскольку на практике это, естественно, невозможно, приходится прибегать к некоторым ограничениям.
Использование иерархической и сетевой моделей ускоряет доступ к информации в базе данных. Однако, поскольку каждый элемент данных должен содержать ссылки на некоторые другие элементы, требуются значительные ресурсы как дисковой, так и основной памяти ЭВМ. Недостаточность основной памяти, конечно, снижает скорость обработки данных. Кроме того, для таких моделей характерна сложность реализации системы управления базами данных.
Реляционная модель (от англ. relation — отношение) была разработана в начале 70-х годов XX в. Коддом. Простота и гибкость этой модели привлекли к ней внимание разработчиков, и уже 80-х годах XX в. она получила широкое распространение. Таким образом реляционные СУБД оказались промышленным стандартом.
Реляционная модель опирается на систему понятий реляционной алгебры, важнейшими из которых являются таблица, строка, столбец, отношение и первичный ключ, а все операции в этом случае сводятся к манипуляциям с таблицами.
В реляционной модели информация представляется в виде прямоугольных таблиц, каждая из которых состоит из строк и столбцов и имеет имя, уникальное внутри базы данных.
Таблица отражает объект реального мира — сущность, а каждая ее строка (запись) отражает один конкретный экземпляр объекта — экземпляр сущности. Каждый столбец таблицы имеет уникальное для данной таблицы имя. Располагаются столбцы в соответствии с порядком следования их имен, принятом при создании таблицы.
Рис. 1.2. Иерархическая древовидная структура модели БД
Рис. 1.3. Сетевая структура модели БД
Рис. 1.4. Организация ссылки от одной таблицы к другой
В отличие от столбцов строки не имеют имен, порядок их следования в таблице не определен, а число — логически не ограничено. Так как строки в таблице не упорядочены, невозможно выбрать строку по ее позиции. Номер, имеющийся в файле у каждой
строки, не характеризует ее, так как его значение изменяется при удалении строк из таблицы. Логически не существует первой и последней строк.
Реляционные системы исключили необходимость сложной навигации, поскольку данные представлены в них не в виде одного файла, а независимыми наборами, и для отбора данных используются операции реляционной алгебры — прикладной теории множеств.
В каждой таблице реляционной модели должен быть столбец (или совокупность столбцов), значение которого однозначно идентифицирует каждую ее строку. Этот столбец (или совокупность столбцов) и называется первичным ключом таблицы (рис. 1.4).
Если таблица удовлетворяет требованию уникальности первичного ключа, она называется отношением. В реляционной модели все таблицы должны быть преобразованы в отношения. Отношения реляционной модели связаны между собой. Связи поддерживаются внешними ключами. Внешний ключ — это столбец (совокупность столбцов), значение которого однозначно характеризует значения первичного ключа другого отношения (таблицы).
Говорят, что отношение, в котором определен внешний ключ, ссылается на соответствующее отношение, в котором та же совокупность столбцов является первичным ключом.
В приведенном на рис. 1.4 примере отношение СОТРУДНИК ссылается на отношение ОТДЕЛ через название отдела.
Схема реляционной таблицы (отношения) представляет собой совокупность имен полей, образующих ее запись:
НАЗВАНИЕ ТАБЛИЦЫ (Поле 1, Поле 2.....Поле п).
Например, для таблиц, показанных на рис. 1.4, имеем следующие схемы (курсивом выделены первичные ключи):
СОТРУДНИК (Номер пропуска, ФИО, Должность, Название отдела, Телефон);
ОТДЕЛ (Название отдела. Расположение отдела, Назначение отдела).
Объектно-ориентированная модель баз данных начала разрабатываться в связи с появлением объектно-ориентированных языков программирования в 90-е годы XX века. Такого рода базы хранят методы классов, а иногда и постоянные объекты классов, что позволяет осуществлять беспрепятственную интеграцию между данными и их обработкой в приложениях.
Доминирование реляционной модели в современных СУБД определяется:
наличием развитой теории (реляционной алгебры);
наличием аппарата сведения других моделей данных к реляционной модели;
наличием специальных средств ускоренного доступа к информации;
наличием стандартизированного высокоуровневого языка запросов к БД, позволяющего манипулировать ими без знания конкретной физической организации БД во внешней памяти.