Ієрархічна модель даних - студопедія

Ієрархічна модель даних є найбільш простий серед усіх даталогі-чеських моделей. Історично вона з'явилася першою серед всіх даталогіческіх моделей: саме цю модель підтримує перша з зареєстрованих промислових СУБД IMS фірми IBM.

Поява ієрархічної моделі пов'язано з тим, що в реальному світі дуже багато зв'язку відповідають ієрархії, коли один об'єкт виступає як батьківський, а з ним може бути пов'язано безліч підлеглих об'єктів. Ієрархія проста і природна в відображенні взаємозв'язку між класами об'єктів.

Сегмент в термінології Американської Асоціації по базах даних DBTG (Data Base Task Group) називається записом, при цьому в рамках ієрархічної моделі визначаються два поняття: тип сегмента або тип запису і екземпляр сегмента або екземпляр запису.

Тип сегмента - це пойменована сукупність типів елементів даних, в нього входять. Примірник сегмента утворюється з конкретних значень полів або елементів даних, в нього входять. Кожен тип сегмента в рамках ієрархічної моделі утворює деякий набір однорідних записів. Для можливості відмінності окремих записів в даному наборі кожен тип сегмента повинен мати ключ або набір ключових атрибутів (полів, елементів даних). Ключем називається набір елементів даних, однозначно ідентифікують екземпляр сегмента. Наприклад, розглядаючи тип сегмента, що описує співробітника організації, ми повинні виділити ті характеристики співробітника, які можуть його однозначно ідентифікувати в рамках БД підприємства. Якщо припустити, що на підприємстві можуть працювати однофамільці, то, ймовірно, найбільш надійним буде ідентифікувати співробітника по його табельної номером. Однак якщо ми будемо будувати БД, що містить опис безлічі громадян, наприклад нашої країни, то, швидше за все, нам доведеться в якості ключа вибрати сукупність полів, що відображають його паспортні дані.

В ієрархічній моделі сегменти об'єднуються в орієнтований деревовидний граф. При цьому вважають, що спрямовані ребра графа відображають ієрархічні зв'язки між сегментами: кожного примірника сегмента, що стоїть вище за ієрархією і сполученого з даним типом сегмента, відповідає кілька (безліч) примірників даного (підлеглого) типу сегмента. Тип сегмента, що знаходиться на більш високому рівні ієрархії, називається логічно вихідним по відношенню до типів сегментів, сполученим з даними спрямованими ієрархічними ребрами, які в свою чергу називаються логічно підлеглими по відношенню до цього типу сегмента. Іноді вихідні сегменти називають сегментами-предками, а підлеглі сегменти називають сегментами-нащадками.

Ієрархічна модель даних - студопедія

Мал. 3.1.Прімер ієрархічних зв'язків між сегментами

На концептуальному рівні визначається поняття схеми БД в термінології ієрархічної моделі.

Схема ієрархічної БД являє собою сукупність окремих дерев, кожне дерево в рамках моделі називається фізичної базою даних. Кожна фізична БД задовольняє наступним ієрархічним обмеженням:

  • в кожної фізичної БД існує один кореневої сегмент, тобто сегмент, у якого немає логічно вихідного (батьківського) типу сегмента;
  • кожен логічно вихідним сегмент може бути пов'язаний з довільним числом логічно підлеглих сегментів;
  • кожен логічно підлеглий сегмент може бути пов'язаний тільки з одним логічно вихідним (батьківським) сегментом.

Дуже важливо розуміти різницю між сегментом і типом сегмента - воно таке ж, як між типом змінної і самої змінної: сегмент є екземпляром типу сегмента. Наприклад, у нас може бути тип сегмента Група (Номер, Староста) і сегменти цього типу, такі як (4305, Петров П. І.) або (383, Кустова Т. С.).

Між екземплярами сегментів також існують ієрархічні зв'язку. Розглянемо, наприклад, ієрархічний граф, представлений на рис. 3.2.

Ієрархічна модель даних - студопедія

Мал. 3.2.Прімер структури ієрархічного дерева

Кожен тип сегмента може мати безліч відповідних йому примірників. Між екземплярами сегментів також існують ієрархічні зв'язку.

На рис. 3.3 представлені 2 примірника ієрархічного дерева відповідної

Ієрархічна модель даних - студопедія

Мал. 3.3.Прімер двох примірників даного дерева

Примірники-нащадки одного типу, пов'язані з одним екземпляром сегмента-предка, називають «близнюками». Так, для нашого прикладу екземпляри b1, b2 і bз є «близнюками». але екземпляр b4 підпорядкований іншим примірником батьківського сегмента, і він не є «близнюком» по відношенню до екземплярів b1, b2 і bз. Набір всіх примірників сегментів, підлеглих одному примірнику кореневого сегмента, називається фізичної записом. Кількість примірників-нащадків може бути різним для різних екземплярів батьківських сегментів, тому в загальному випадку фізичні записи мають різну довжину. Так, використовуючи принцип лінійного запису ієрархічних графів, приклад на рис 3.3 можна представити у вигляді двох записів:

Ієрархічна модель даних - студопедія

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

Мова опису даних ієрархічної моделі

В рамках ієрархічної моделі виділяють мовні засоби опису даних (DDL, Data Definition Language) і засоби маніпулювання даними (DML, Data Manipulation Language).

Кожна фізична база описується набором операторів, що визначають як її логічну структуру, так і структуру зберігання БД. Опис починається з оператора DBD (Data Base Definition):

DBD Name = <имя БД>, ACCESS = <способ доступа>

Спосіб доступу визначає спосіб організації взаємозв'язку фізичних записів. Визначено 5 способів доступу: HSAM - hierarchical sequential access method (ієрархічно послідовний метод), HISAM - hierarchical index sequential access method (ієрархічно індексного-послідовний метод), EDAM - hierarchical direct access method (ієрархічно прямий метод), HID AM - hierarchical index direct access method (ієрархічно індексного-прямий метод), INDEX - індексний метод.

Далі йде опис наборів даних, призначених для зберігання БД:

DATA SET D01 = <имя оператора, определяющего хранимый набор данных>.

DEVICE =<устройство хранения БД>,

[OVFLW = <имя области переполнения>]

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

Після опису всієї фізичної БД йде опис типів сегментів, її складових, в соответстшш з ієрархією. Опис сегментів завжди починається з опису кореневого сегмента. Загальна схема опису типу сегмента така:

SEGM NAME = <имя сегмента>. BYTES =<размер в байтах>.

FREQ = <средняя частота реализаций сегмента под одним исходным>

PARENT = <имя родительского сегмента>

Параметр FREQ визначає середня кількість примірників даного сегмента, пов'язаних з одним екземпляром батьківського сегмента. Для кореневого сегмента це число можливих примірників кореневого сегмента.

Для кореневого сегмента параметр PARENT дорівнює 0 (нулю). Далі для кожного сегмента дається опис полів:

START = <номер байта, с которого начинается значения поля>,

BYTES = <размер поля в байтах>,

Ознака SEQ - задається для ключового поля, якщо екземпляри даного сегмента фізично впорядковані відповідно до значень даного поля.

Параметр U задається, якщо значення ключового поля унікальні для всіх екземплярів даного сегмента, М - в іншому випадку. Якщо поле є ключовим, то його опис задається в круглих дужках, в іншому випадку ім'я поля задається без дужок. Параметр TYPE визначає тип даних. Для ранніх ієрархічних моделей були визначені тільки три типи даних: X - шестпадцатерічіий, Р -упакованний десятковий, С - символьний.

Закінчується опис схеми викликом процедури генерації:

  • DBDGEN - вказує на кінець послідовності керуючих операторів опису БД;
  • FINISH - встановлює ненульовий код завершення при виявленні помилки;
  • END - кінець.

В системі може бути кілька фізичних БД (ФБД), але кожна з них описується окремо своїм DBD і їй присвоюється унікальне ім'я. Кожна ФБД містить тільки один кореневий сегмент. Сукупність ФБД утворює концептуальну модель даних.

Схожі статті