Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие(А4).doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3.19 Mб
Скачать

7.4 Иерархическая модель данных

Наиболее давно используемой (можно сказать, классической) является модель данных, в основе которой лежит иерархическая структура типа дерева. Вершине дерева соответствует тип записи, дуге — отношение между двумя типами записей. Каждая из вершин связана только с одной вершиной вышележащего уровня иерархии. Дерево — это орграф, в каждую вершину которого, кроме первой (корневой), входит только одна дуга, а из любой вершины (кроме конечных) может исходить произвольное число дуг.

Пример структуры иерархической модели данных (ИМД) типа «дерево» приведен на рис. 7.9.

Рис. 7.9 — Иерархическая модель данных

В иерархической структуре подчиненный элемент данных всегда связан только с одним исходным.

Поиск данных в такой структуре выполняется всегда по одной из ветвей, начиная с корневого элемента, т.е. должен быть указан полный путь движения по ветви. Так, для поиска и выборки одного или нескольких экземпляров записи типа СТУДЕНТ (рис. 7.9) необходимо указать корневой элемент ФАКУЛЬТЕТ и элементы КУРС, ГРУППА. В операционной системе MS DOS для поиска файла используется этот же принцип — указываются последовательно имя диска, имя каталога, имена подкаталогов, имя файла.

Иерархические структуры данных, применяемые для баз данных, обычно состоят из совокупности иерархически связанных сегментов различных типов. Сегмент представляет собою последовательность связанных между собою атрибутов фиксированной или переменной длины, обычно называемых полями, и служит основной единицей обмена (наименьшей порцией данных, передаваемых при выполнении одного оператора) между прикладной программой и информационной системой. Для системы определяется максимальное число сегментов в иерархической структуре и наибольшее число уровней иерархии.

Сегмент самого высокого уровня в иерархической структуре называется корневым и всегда является единственным в структуре (рис. 7.9 — «ФАКУЛЬТЕТ»). Любой сегмент, находящийся в иерархической структуре выше некоторого данного сегмента, называется исходным, а непосредственно ниже данного сегмента — порожденным.

Каждый тип сегментов может иметь некоторое, иногда произвольное, число реализаций.

Базой данных в этом случае является полная совокупность всех типов сегментов и их реализаций.

Одна определенная (выделенная) иерархическая структура отображается в одну физическую базу данных. Совокупность физических баз данных составляет модель базы данных.

Выделенная для одной реализации корневого сегмента иерархическая структура называется записью базы данных.

Для определения базы данных обычно указываются имя физической базы данных, тип корневого сегмента, типы полей, из которых состоит корневой сегмент, типы порожденных сегментов (в последовательности уровней) и составляющих их полей, иногда поля упорядочивания.

На рис. 7.10 показан фрагмент объектной записи в иерархической модели данных. Часто используется также «упорядоченное дерево», в котором значим относительный порядок поддеревьев. Характерные примеры реализации иерархических структур — язык Кобол и СУБД семейства IMS (создана в рамках проекта высадки на Луну — «Аполлон») и System 2000 (S2K).

Рис. 7.10 — Фрагмент иерархической модели данных

Описание строго соответствует иерархической структуре (рис. 7.11, в последовательности сверху вниз, слева направо).

Рис. 7.11 — Пример структуры

иерархической базы данных

За каждым предложением, определяющим сегмент, записываются предложения, описывающие поля этого сегмента и указывающие их имена, размеры и местоположение в сегменте.

На рис. 7.11 изображена структура иерархической базы данных о студентах и преподавателях вуза, удовлетворяющая всем ограничениям, указанным в определении.

В графической иллюстрации структуры приводятся ключи соответствующих отношений (рис. 7.12).

Рис. 7.12 — Линейная последовательность значений

иерархической базы данных в памяти ПК

Ограничение, которое поддерживается в иерархической модели данных, состоит в невозможности нарушения требований, фигурирующих в определении иерархической структуры. Это ограничение обеспечивается специальным размещением значений отношений в памяти ПК. Рассмотрим одну из простейших реализаций размещения значений данных в иерархической БД.

Каждое значение представляется соответствующей величиной первичного ключа (корневого сегмента). Далее эта информация организуется в линейную последовательность значений, как это показано на рис. 7.12.

Необходимо отметить, что существуют различные возможности прохождения иерархически организованных значений в линейной последовательности. Принцип, применяемый для иерархических баз данных, называется концевым прохождением.

Правила концевого прохождения:

  1. начиная с первого значения корневого отношения, перечисляются первые значения соответствующих отношений на каждом уровне вплоть до последнего;

  2. перечисляются все значения сегментов в данном отношении.

Так как записью иерархической базы данных называется множество значений, содержащее одно значение корневого отношения и все вееры, доступные от него, в соответствии со структурой иерархической базы данных, то в рассматриваемом примере одну запись образуют данные, относящиеся к одному факультету.

Кроме того, ограничение на существование единственного корневого отношения в иерархической базе данных трансформируется в требование: «Первичный ключ каждого некорневого отношения должен функционально определять первичный ключ корневого отношения».

Достоинства иерархической модели данных:

  1. простота представления предметной области, наглядность, удобство анализа структур и простота их описания. Хотя модель использует различные информационные конструкции, иерархический принцип является естественным для многих экономических задач (например, организация статистической отчетности);

  2. независимость данных;

  3. минимальный расход памяти. Для задач, допускающих реализацию с помощью любой из трех моделей данных, иерархическая модель позволяет получить представление с минимально требуемой памятью.

Недостатки иерархической модели:

  1. сложность добавления новых и удаления существующих типов записей;

  2. невозможность отображения отношений, отличающихся от иерархических, громоздкость описания и информационная избыточность.

  3. допустимость только навигационного принципа доступа к данным;

  4. доступ к данным только через корневое отношение.

В иерархической модели используется вид связи между элементами данных «один ко многим».