- Сетевые и иерархические модели данных
- Структуры данных сетевых и иерархических моделей
- Связи объектов в сетевых и иерархических моделях данных
- Сравнение сетевых и иерархических моделей
- Реляционная модель данных
- Сетевые и иерархические модели данных
- Структуры данных сетевых и иерархических моделей
- Связи объектов в сетевых и иерархических моделях данных
Сетевые и иерархические модели данных
Сетевая или иерархическая модели данных реализуют соответствующий метод логической организации базы данных в СУБД, поддерживающей модель, и операции по обработке данных. До массового внедрения ПК СУБД, поддерживающие сетевую модель данных, были наиболее распространенными.
В СУБД, поддерживающих иерархические и сетевые модели данных, как правило, требуется производить настройку на конкретную БД. При этом надо делать описание структуры базы данных – схемы данных – средствами языка описания данных (ЯОД). Полученное описание подлежит генерации для формирования специального программного модуля, который используется при всех обращениях к базе данных. Изменения в структуре БД требуют корректировки описания модели и повторной генерации программного модуля.
Операции обработки данных сетевых и иерархических моделей осуществляются средствами языка манипулирования данными. Язык манипулирования данными, который реализует типовые процедуры доступа к данным, специфичен для каждой сетевой или иерархической СУБД.
Структуры данных сетевых и иерархических моделей
К типовым структурам данных относятся: элемент данных, агрегат данных, запись, база данных.
Элемент данных (атрибут) – это наименьшая поименованная структурная единица данных (аналог поля в файловых системах).
Агрегат данных – поименованное подмножество элементов данных или других агрегатов внутри записи. В агрегатах допускается множественный элемент, который содержит несколько значений элемента в одном экземпляре агрегата.
Запись в сетевой или иерархической модели в общем случае является составным агрегатом, который не входит в состав других агрегатов. Она характеризуется структурой взаимосвязей ее элементов и агрегатов. Структура записи может иметь иерархический характер. Все множество экземпляров записи одинаковой структуры образует тип записи. Запись конкретного типа в иерархической модели является объектом модели данных.
На рис.10.1 приведен пример иерархической записи, в которой имеются названные выше типы структур данных. Тип записи назван “Договор”, так как в записи представлена вся структура информации о договорах с заказчиками на поставку изделий.
Следует отметить, что собственно данные (элементарные данные, имеющие значение) представлены лишь в конечных (терминальных) вершинах записи. Остальные типы структур данных, в том числе агрегаты, являются лишь поименованной совокупностью данных (групповыми данными).
Связи объектов в сетевых и иерархических моделях данных
Модель данных, как правило, включает несколько разных объектов. Между объектами модели данных устанавливаются связи. Совокупность взаимосвязанных конкретных объектов модели для некоторой предметной области образует базу данных.
Связи между любыми двумя объектами модели определяются групповыми отношениями между их экземплярами.
Рис.10.1. Пример иерархической записи “Договор”.
Групповое отношение (набор) – это строго иерархическое отношение между записями двух типов: главной записью набора и подчиненными записи набора.
Способы организации групповых отношений. Отличия в разных СУБД может иметь и организация связей (групповых отношений) объектов сетевой модели – цепи, логические связи (аналоги набора). При этом могут отличаться и способы реализации групповых отношений, например, с помощью адресных указателей или по ключу связи (атрибуту связи) – одинаковому в связанных объектах (записях, файлах) модели.
Связи в иерархических и сетевых моделях часто реализуются физически и при большом числе объектов преимущества организации базы данных могут резко снижаться из-за трудностей поддержания связей, которые становятся громоздкими.
Сравнение сетевых и иерархических моделей
В строго иерархических моделях, как правило, любой объект (запись, сегмент) может подчиняться только одному объекту вышестоящего уровня. В сетевых моделях – любой объект (запись, файл) может быть подчинен нескольким объектам. Отличие в топологии иерархической и сетевой модели схематически иллюстрирует рис.10.2.
Рис.2. Иллюстрация особенностей моделей по топологии и доступу
В иерархических моделях непосредственный доступ по ключу, как правило, возможен только к объекту самого высокого уровня, который не подчинен другим объектам. К другим объектам доступ осуществляется по связям от объекта на вершине модели. В сетевых моделях непосредственный доступ по ключу может обеспечиваться к любому объекту независимо от его уровня в модели. Возможен также доступ по связям от любой точки доступа.
Структура объекта (записи, файла) в сетевых моделях чаще бывает линейной и реже имеет иерархическую структуру. Объект линейной структуры состоит только из простых и ключевых атрибутов. Структуры данных более низкого уровня также могут иметь свою специфику и названия. Например, атрибут – аналог элемента данных. Структура объекта (записи, сегмента) в иерархических моделях может быть иерархической (см. рис.10.1.) или линейной.
Сетевая модель на примере базы данных, содержащей справочные данные о цехах, складах, изделиях, плановые данные выпуска изделий цехами и учетные данные о сдаче выпущенных цехами изделий на склад, приведена на рис.10.3. Объекты в этой модели являются линейными.
Рис. 3. Пример базы данных, реализованной сетевой моделью
Достоинством сетевых моделей является отсутствие дублирования данных в различных объектах модели. Кроме того, технология работы с сетевыми моделями является удобной для пользователя, так как доступ к данным практически не имеет ограничений и возможен непосредственно к объекту любого уровня. Допустимы всевозможные запросы. Сетевые модели позволяют отображать также иерархические взаимосвязи данных.
В соответствии со структурами данных, используемыми в модели данных, каждая сетевая или иерархическая СУБД имеет свой язык описания данных – язык декларативных команд. Язык манипулирования данными также специфичен для каждой СУБД и зависит от типов структур данных модели. Такие отличия в используемых языковых средствах затрудняют освоение СУБД, поддерживающих сетевые и иерархические модели. Генерация описания схемы БД делает программы зависимыми от структуры БД.
Реляционная модель данных
Концепция реляционной модели принадлежит американскому ученому Е. Кодду. Реляционные модели данных (РМД), в отличие от рассмотренных выше сетевых и иерархических, характеризуются простотой структуры данных, удобным для пользователя табличным представлением и доступом к данным.
Возможность использования формального аппарата алгебры отношений и реляционного исчисления для обработки реляционной модели данных обеспечивает использование типовых простых средств обработки в различных реляционных СУБД. К таким средствам относится, например, реляционный язык структурированных запросов SQL.
Реляционная модель данных является совокупностью простейших двумерных реляционных таблиц-отношений. Связи между двумя логически связанными таблицами в реляционной модели устанавливаются по равенству значений одинаковых атрибутов таблиц-отношений. Таблица-отношение является универсальным объектом реляционных моделей. Это обеспечивает возможность унификации обработки данных в различных СУБД, поддерживающих реляционную модель. Операции обработки реляционных моделей основаны на использовании универсального аппарата алгебры отношений и реляционного исчисления.
Преимущества реляционных моделей. К достоинствам реляционной модели относятся простота представления данных реляционной модели благодаря табличной форме и минимальная избыточность данных при нормализации таблиц-отношений. В реляционных моделях обеспечивается независимость приложений пользователя от данных, допускающая включение или удаление отношений, изменение атрибутного состава отношений. В отличие от иерархических и сетевых, реляционные базы данных не требуют описания схемы данных и ее генерации, т.е. не требуется настройка СУБД на конкретную структуру БД. Универсальность процедур обработки данных является основой типовых средств в различных реляционных СУБД.
Сетевые и иерархические модели данных
Сетевая или иерархическая модели данных реализуют соответствующий метод логической организации базы данных в СУБД, поддерживающей модель, и операции по обработке данных. До массового внедрения ПК СУБД, поддерживающие сетевую модель данных, были наиболее распространенными.
В СУБД, поддерживающих иерархические и сетевые модели данных, как правило, требуется производить настройку на конкретную БД. При этом надо делать описание структуры базы данных – схемы данных средствами языка описания данных (ЯОД). Полученное описание подлежит генерации для формирования специального программного модуля, который используется при всех обращениях к базе данных. Изменения в структуре БД требуют корректировки описания модели и повторной генерации программного модуля 10,12.
Операции обработки данных сетевых и иерархических моделей осуществляются средствамиязыка манипулирования данными. Язык манипулирования данными, который реализует типовые процедуры доступа к данным, специфичен для каждой сетевой или иерархической СУБД.
Структуры данных сетевых и иерархических моделей
К типовым структурам данных относятся: элемент данных, агрегат данных, запись, база данных.
Элемент данных (атрибут)– это наименьшая поименованная структурная единица данных (аналог поля в файловых системах).
Агрегат данных– поименованное подмножество элементов данных или других агрегатов внутри записи. В агрегатах допускается множественный элемент, который содержит несколько значений элемента в одном экземпляре агрегата.
Записьв сетевой или иерархической модели в общем случае является составным агрегатом, который не входит в состав других агрегатов. Она характеризуется структурой взаимосвязей ее элементов и агрегатов. Структура записи может иметь иерархический характер. Все множество экземпляров записи одинаковой структуры образуюттип записи. Запись конкретного типа в иерархической модели являетсяобъектом моделиданных.
На рис.1 приведен пример иерархической записи, в которой имеются названные выше типы структур данных. Тип записи назван “Договор”, так как в записи представлена вся структура информации о договорах с заказчиками на поставку изделий.
Следует отметить, что собственно данные (элементарные данные, имеющие значение) представлены лишь в конечных (терминальных) вершинах записи. Остальные типы структур данных, в том числе агрегаты, являются лишь поименованной совокупностью данных (групповыми данными).
Связи объектов в сетевых и иерархических моделях данных
Модель данных, как правило, включает несколько разных объектов. Между объектами модели данных устанавливаются связи. Совокупность взаимосвязанных конкретных объектов модели для некоторой предметной области образует базу данных.
Связи между любыми двумя объектами модели определяются групповыми отношениями между их экземплярами.
Рис.1. Пример иерархической записи “Договор”.
Групповое отношение(набор) – это строго иерархическое отношение между записями двух типов: главной записью набора и подчиненными записи набора.
Способы организации групповых отношений. Отличия в разных СУБД может иметь и организация связей (групповых отношений) объектов сетевой модели – цепи, логические связи (аналоги набора). При этом могут отличаться и способы реализации групповых отношений, например, с помощью адресных указателей или по ключу связи (атрибуту связи) – одинаковому в связанных объектах (записях, файлах) модели.
Связи в иерархических и сетевых моделях часто реализуются физически и при большом числе объектов преимущества организации базы данных могут резко снижаться из-за трудностей поддержания связей, которые становятся громоздкими.