2.1. Иерархическая и сетевая модели данных
Иерархическая БД состоит из упорядоченного набора деревьев, или, более точно, из упорядоченного набора нескольких экземпляров одного типа дерева.
Типичным представителем (наиболее известным и распространенным) является СУБД Information Management System (IMS) фирмы IBM. Первая версия появилась в 1968 г. До сих пор поддерживает много баз данных, что создает существенные проблемы с переходом как на новые технологии БД, так и на новую технику.
Основные компоненты иерархической модели данных (ИМД)
Организация данных в СУБД иерархического типа определяется в терминах: элемент, агрегат, запись (группа), групповое отношение, база данных.
Атрибут (элемент данных) — наименьшая единица структуры данных. Обычно каждому элементу при описании базы данных присваивается уникальное имя. По этому имени к нему обращаются при обработке. Элемент данных также часто называют полем.
Запись — именованная совокупность атрибутов. Использование записей позволяет за одно обращение к базе получить некоторую логически связанную совокупность данных. Именно записи изменяются, добавляются и удаляются. Тип записи определяется составом ее атрибутов. Экземпляр записи — конкретная запись с конкретным значением элементов.
Групповое отношение — иерархическое отношение между записями двух типов. Родительская запись (владелец группового отношения) называется исходной записью, а дочерние записи (члены группового отношения) — подчиненными. Иерархическая база данных может хранить только такие древовидные структуры.
Иногда используется также понятие сегмент (узел) — совокупность полей, являющаяся единицей обмена между БД и прикладной программой. Сегмент (узел иерархического графа) более высокого уровня называется исходным (родительским) по отношению к ниже расположенному порожденному (отпрыску). Может использоваться также терминология «узел, принадлежащий вышестоящему узлу». Конкретные данные, входящие в сегмент, называются экземпляром сегмента.
Корневая запись каждого дерева обязательно должна содержать ключ с уникальным значением. Ключи некорневых записей должны иметь уникальное значение только в рамках группового отношения. Каждая запись идентифицируется полным сцепленным ключом, под которым понимается совокупность ключей всех записей от корневой по иерархическому пути.
При графическом изображении групповые отношения изображают дугами ориентированного графа, а типы записей — вершинами (диаграмма Бахмана).
Для групповых отношений в иерархической модели обеспечиваются автоматический режим включения и фиксированное членство. Это означает, что для запоминания любой некорневой записи в БД должна существовать ее родительская запись. При удалении родительской записи автоматически удаляются все подчиненные.
В ИМД существуют также следующие понятия:
брат — узел, имеющий того же родителя, что и другой узел;
ветвь — узел дерева вместе со всеми его отпрысками, отдаленными потомками и родительскими источниками;
лист — узел, у которого нет отпрысков;
обход дерева — процесс обследования по очереди каждого узла дерева в иерархической модели данных и пр.
Операции над данными, определенные в иерархической модели:
добавить в базу данных новую запись. Для корневой записи обязательно формирование значения ключа.
изменить значение данных предварительно извлеченной записи. Ключевые данные не должны подвергаться изменениям.
удалить некоторую запись и все подчиненные ей записи.
Выбрать:
выбрать корневую запись по ключевому значению, допускается также последовательный просмотр корневых
записей;
выбрать следующую запись (следующая запись извлекается в порядке левостороннего обхода дерева).
В операции выбрать допускается задание условий выборки (например, выбрать сотрудников с окладом более 5 тыс. руб.).
Как видим, все операции изменения применяются только к одной «текущей» записи (которая предварительно выбрана из базы данных). Такой подход к манипулированию данных получил название навигационного.
Ограничения целостности:
Поддерживается целостность связей между владельцами и членами группового отношения (никакой потомок не может существовать без предка). Как уже отмечалось, не обеспечивается автоматическое поддержание соответствия парных записей, входящих в разные иерархии.
Достарыңызбен бөлісу: |