Реализует связь 1 ко многим и представляет собой упорядоченное дерево. Дерево состоит из корня, дуг и узлов. В дереве корень всегда один и это корневой сегмент.
Дуги имеют направление от корня вниз и соответствуют связям с узлами. Узел – узловой сегмент. Из корневого сегмента только исходящие дуги и их может быть n-количество. У узловых сегментов входящая дуга только одна, исходящих дуг может быть n-количество.
Иерархическая модель представляет собой упорядоченное множество, состоящее из записей одного типа, а одна запись – это иерархически упорядоченные сегменты. Сегменты могут быть разного типа внутри одного дерева. Сегмент может состоять из нескольких полей и каждый сегмент должен иметь одно ключевое поле. Ключевое поле является признаком\критерием для поиска. Сегмент всегда имеет фиксированную длину. Сегмент, в который дуга входит – это порожденный сегмент, сегмент, из которого дуга выходит – это исходный сегмент.
A
B
d [3204]" strokecolor="#243f60 [1604]" strokeweight="2pt">
CA
DA
G
E
L
K
M
N
∞
∞
A – корневой, исходящий сегмент.
B, C, L … - все остальные - порожденные
C, D, L, M – Исходящие сегменты
Каждая дуга определяет связь один ко многим.
Правила построения иерархической модели:
1) Выбирается отношение с наибольшим количеством ключевых полей.
2) Из этого отношения выбирается ключевое поле, которое чаще всего встречается в других реляционных отношения, и это поле делается корнем и в корневой сегмент дописываются поля, которые раскрывают ключевое поле.
3) Из оставшихся ключевых полей реляционного отношения из п.1 выбирается следующее ключевое поле и проверяется – есть ли связь между корнем (корневым сегментом) и вторым выбранным полем. Если есть, то создается порожденный сегмент с установкой связи (дуги). П.3 будет повторяться столько раз, сколько ключевых полей в реляционном отношении п.1. В результате выполнения m-раз, устанавливается все связи, относящиеся к корню.
4) Выбирается следующее реляционное отношение и проверяется: его ключевое поле совпадает с корнем, если да, то строится порожденный сегмент в первое дерево ( строится отдельная ветка дерева). Если нет, строится отдельное дерево.
5) Поля данных (не ключевые поля) в дереве из реляционного отношения п.1 располагаются на последнем уровне дерева.
6) В каждом сегменте строится отношение, состоящее из одного ключа и простых полей данных, расшифровывающих значение ключа.
7) Если в отношении с простым ключом, ключ совпадает с уровнем ниже корня, то в случае хранения такого отношения в общем дереве приведет к избыточности, поэтому рекомендуется создавать отдельное дерево.
Пример:
Код покупателя
Код товара
∞
Код поставщика
∞
Код склада
∞
Код доставки
∞
Наим покупателя
Адрес
Телефон
Наим товара
Хар-ка товара
…
…
Дата
Кол-во товара
1 дерево
1 дерево = 1 файл
Для примера включим:
RO4-2-1 (Код товара, Код продав, Ед измерения, Стоимость за ед товара)2 дерево
RO7-2 (Код товара, Код магазина, Ед измерения, Кол-во товара)