Ієрархічна модель даних є найбільш простий серед усіх даталогіческіх моделей. Історично вона з'явилася першою серед всіх даталогіческіх моделей: саме цю модель підтримує перша з зареєстрованих промислових СУБД IMS фірми IBM. Найбільш відомою була ієрархічна система IMS фірми IBM. Відомі також інші системи: PC / Focus, Team-Up, Data Edge і наші: Ока, ІНЕС, Міріс.
Ієрархічна модель з'явилася вперше в результаті узагальнення структур даних мови Кобол.
У іерархіческіхмоделях основна структура представлення даних має форму дерева. На найвищому (першому) рівні ієрархії знаходиться тільки одна вершина, яка називається коренем дерева. Ця вершина має зв'язку з вершинами другого рівня, вершини другого рівня мають зв'язку з вершинами третього рівня і т.д. Зв'язки між вершинами одного рівня відсутні. Отже, дані в ієрархічній структурою не рівноправні - одні жорстко підпорядковані іншим. Доступ до інформації можливий тільки по вертикальній схемі, починаючи з кореня, так як кожен елемент пов'язаний тільки з одним елементом на верхньому рівні і з одним або декількома на низькому.
Прикладом ієрархічної структури може служити книга, як ієрархічна послідовність літер, які об'єднуються в слова, слова - в пропозиції, пропозиції - в параграфи, потім в глави і т.д.
З точки зору теорії графів ієрархічна модель являє собою деревовидний граф (перевернуте дерево), спрощений вид якого показаний на рис. 10.
Мал. 10. каскадний граф
Реальний приклад ієрархічної моделі даних представлений на рис. 11 і 12.
Мал. 11. Приклад ієрархічної моделі даних
Мал. 12. Приклад ієрархічної моделі даних
Над ієрархічно організованими даними визначені наступні операції:
· До базу даних новий запис.
· Змінити значення даних попередньо витягнутої записи.
· Видалити деякий запис і всі підлеглі їй записи.
· Витягти запис; в цій операції допускається завдання умов вибірки, наприклад, витягти співробітників з окладом понад 200 тисяч руб.
До переваг ієрархічної моделі даних відноситься:
· Досить ефективне використання пам'яті і
· Непогані тимчасові показники виконання операцій над даними.
Однак, зручна ця модель в основному для роботи з ієрархічно організованою інформацією. Недоліками ієрархічної моделі є досить складні логічні зв'язки і відповідна громіздкість в обробці даних.
Основними інформаційними одиницями в ієрархічній моделі є:
Сегмент в термінології Американської Асоціації по базах даних DBTG (Data Base Task Group) називається записом. при цьому в рамках ієрархічної моделі визначаються два поняття:
· Тип сегмента або тип запису,
· Екземпляр сегмента або екземпляр запису.
Тип сегмента - це пойменована сукупність типів елементів даних, в нього входять. (В реляційних БД називають кортежем (записом)). Примірник сегмента утворюється з конкретних значень полів або елементів даних, в нього входять (тобто заповнений кортеж (запис)).
Дуже важливо розуміти різницю між сегментом і типом сегмента - воно таке ж, як між типом змінної і самої змінної: сегмент є екземпляром типу сегмента. Наприклад, у нас може бути тип сегмента Група (Номер, Староста) і сегменти цього типу, такі як (4305, Петров П. І.) або (383, Кустова Т. С).
Кожен тип сегмента в рамках ієрархічної моделі утворює деякий набір однорідних записів. Для можливості відмінності окремих записів в даному наборі кожен тип сегмента повинен мати ключ або набір ключових атрибутів (полів, елементів даних).
Ключем називається набір елементів даних, однозначно ідентифікують екземпляр сегмента (записи). Наприклад, розглядаючи тип сегмента, що описує співробітника організації, ми повинні виділити ті характеристики співробітника, які можуть його однозначно ідентифікувати в рамках БД підприємства. Якщо припустити, що на підприємстві можуть працювати однофамільці, то, ймовірно, найбільш надійним буде ідентифікувати співробітника по його табельної номером. Однак якщо ми будемо будувати БД, що містить опис безлічі громадян, наприклад нашої країни, то, швидше за все, нам доведеться в якості ключа вибрати сукупність полів, що відображають його паспортні дані.
В ієрархічній моделі сегменти об'єднуються в орієнтований деревовидний граф. При цьому вважають, що спрямовані ребра графа відображають ієрархічні зв'язки між сегментами: кожного примірника сегмента, що стоїть вище за ієрархією і сполученого з даним типом сегмента, відповідає кілька (безліч) примірників даного (підлеглого) типу сегмента.
Тип сегмента, що знаходиться на більш високому рівні ієрархії, називається логічно вихідним по відношенню до типів сегментів, сполученим з даними спрямованими ієрархічними ребрами, які в свою чергу називаються логічно підлеглими по відношенню до цього типу сегмента. Іноді вихідні сегменти називають сегментами-предками, а підлеглі сегменти називають сегментами-нащадками.
Мал. 13. Приклад ієрархічних зв'язків між сегментами
Схема ієрархічної БД являє собою сукупність окремих дерев, кожне дерево в рамках моделі називається фізичної базою даних .Каждая фізична БД задовольняє наступним ієрархічним обмеженням:
· В кожній фізичній БД існує один кореневої сегмент, тобто сегмент, у якого немає логічно вихідного (батьківського) типу сегмента;
· Кожен логічно вихідним сегмент може бути пов'язаний з довільним числом логічно підлеглих сегментів;
· Кожен логічно підлеглий сегмент може бути пов'язаний тільки з одним логічно вихідним (батьківським) сегментом.
Між екземплярами сегментів також існують ієрархічні зв'язку. Розглянемо, наприклад, ієрархічний граф, представлений на рис.14.
Мал. 14. Приклад структури ієрархічного дерева
Кожен тип сегмента може мати безліч відповідних йому примірників. Між екземплярами сегментів також існують ієрархічні зв'язку.
На рис. 9 представлені 2 примірника ієрархічного дерева відповідної структури.
Мал. 15. Приклад двох примірників даного дерева
Примірники-нащадки одного типу, пов'язані з одним екземпляром сегмента-предка, називають "близнюками".
Так, для нашого прикладу екземпляри b1, b2 і b3 є "близнюками", але екземпляр b4 підпорядкований іншим примірником батьківського сегмента, і він не є "близнюком" по відношенню до екземплярів b1, b2 і b3.
Набір всіх примірників сегментів, підлеглих одному примірнику кореневого сегмента, називається фізичної записом. Кількість примірників-нащадків може бути різним для різних екземплярів батьківських сегментів, тому в загальному випадку фізичні записи мають різну довжину.
Так, використовуючи принцип лінійного запису ієрархічних графів, приклад на рис. 9 можна представити у вигляді двох записів: