Ієрархічна модель данихІєрархічна модель даних — це модель даних, де використовується представлення бази даних у вигляді деревоподібної (ієрархічної) структури, що складається з об'єктів (даних) різних рівнів. Між об'єктами існують зв'язки, кожен об'єкт може включати в себе кілька об'єктів більш низького рівня. Такі об'єкти перебувають у відношенні предка (об'єкт більш близький до кореня) до нащадку (об'єкт більш низького рівня), при цьому можлива ситуація, коли об'єкт-предок не має нащадків або має їх декілька, тоді як в об'єкта-нащадка обов'язково тільки один предок. Об'єкти, що мають спільного предка, називаються близнюками (в програмуванні стосовно до структури даних дерево усталена назва брати). До основних понять ієрархічної структури відносяться: рівень, елемент (вузол), зв'язок. Вузол — це сукупність атрибутів даних, що описують деякий об'єкт. На схемі ієрархічного дерева вузли представляються вершинами графа. Кожен вузол на більш низькому рівні пов'язаний лише з одним вузлом, що знаходиться на більш високому рівні. Ієрархічне дерево має тільки одну вершину, не підпорядковану ніякий інший вершині і знаходиться на найвищому (першому) рівні. Залежні вузли знаходяться на другому, третьому і т. д. рівнях. Кількість дерев у базі даних визначається числом кореневих записів. До кожного запису бази даних існує тільки один (ієрархічний) шлях від кореневого запису. Бази даних з ієрархічною моделлю одні з найстаріших і стали першими системами управління базами даних для мейнфреймів. Розроблялися в 1950-х і 1960-х, наприклад, Information Management System (IMS)[1] фірми IBM. ПрикладиНаприклад, якщо ієрархічна база даних містила інформацію про клієнтів та їх замовленнях, то буде існувати об'єкт «покупець» (батько) і об'єкт «замовлення» (дочірній). Об'єкт «покупець» буде мати вказівники від кожного замовника до фізичного розташування замовлень покупця в об'єкт «замовлення». Так, наприклад, якщо виникне необхідність вказівки варіанта, коли договір складають кілька виконавців і один виконавець формує кілька договорів, тобто між договором і виконавцем використовується зв'язок N: M (багато — до — багатьох), то в ієрархічній моделі необхідно буде повторювати відомості про договори в якості дочірнього елемента до виконавця, що істотно ускладнює саму модель і не дає можливості коректно обробляти подану інформацію. У цій моделі запит, направлений вниз по ієрархії, простий (наприклад, замовлення, які належать цьому покупцю); проте запит, спрямований вгору по ієрархії, більш складний (наприклад, який покупець розмістив замовлення). Також, важко уявити не-ієрархічні дані при використанні цієї моделі. Ієрархічною базою даних є файлова система, що складається з кореневого каталогу, в якому є ієрархія підкаталогів і файлів. Структурна частина ієрархічної моделіОсновними інформаційними одиницями в ієрархічній моделі даних є сегмент і поле. Поле даних визначається як найменша неподільна одиниця даних, доступна користувачеві. Для сегмента визначаються тип сегмента і екземпляр сегмента. Екземпляр сегмента утворюється з конкретних значень полів даних. Тип сегмента — це пойменована сукупність вхідних у нього типів полів даних. Організація даних в ієрархічної моделі передбачає обов'язкове поєднання батьківського і дочірнього об'єктів даних. Ці об'єкти даних характеризуються такими структурними елементами:
Як і мережева, ієрархічна модель даних базується на графовій формі побудови даних, і на концептуальному рівні вона є просто частковим випадком мережевої моделі даних. В ієрархічній моделі даних вершині графу відповідає тип сегмента або просто сегмент, а дугам — типи зв'язків предок — нащадок. В ієрархічних структурах сегмент — нащадок повинен мати в точності одного предка. Ієрархічна модель — це зв'язний неорієнтований граф деревоподібної структури, що об'єднує сегменти. Ієрархічна БД складається з упорядкованого набору дерев. Приклади типових операторів пошуку даних
Приклади типових операторів пошуку даних з можливістю модифікації:
Приклади типових операторів модифікації ієрархічно організованих даних, які виконуються після виконання одного з операторів другої групи (пошуку даних з можливістю модифікації):
В ієрархічній моделі автоматично підтримується цілісність посилань між предками і нащадками. Основне правило: ніякий нащадок не може існувати без свого батька. НедолікиДо основних недоліків ієрархічних моделей слід віднести:
У зв'язку з цими недоліками раніше створені ієрархічні СКБД піддаються істотним модифікаціям, що дозволяє підтримувати більш складні типи структур і, в першу чергу, мережеві та їх модифікації. Керувальна частина ієрархічної моделіВ рамках ієрархічної моделі виділяють мовні засоби опису даних (МЗОД) та засоби маніпулювання даними (ЗМД). Кожна фізична база описується набором операторів, що обумовлюють як її логічну структуру, так і структуру зберігання БД. При цьому спосіб доступу встановлює спосіб організації взаємозв'язку фізичних записів. Визначено такі способи доступу:
Крім завдання імені БД та способу доступу описи повинні містити визначення типів сегментів, що складають БД, у відповідності з ієрархією, починаючи з кореневого сегмента. Кожна фізична БД містить тільки один кореневий сегмент, але в системі може бути кілька фізичних БД. Серед операторів маніпулювання даними можна виділити оператори пошуку даних, оператори пошуку даних з можливістю модифікації, оператори модифікації даних. Набір операцій маніпулювання даними в ієрархічній БД невеликий, але цілком достатній. Відомі ієрархічні СКБДПрикладами баз даних з ієрархічною моделлю є[2]:
Перетворення концептуальної моделі в ієрархічну модель данихПеретворення концептуальної моделі в ієрархічну структуру даних багато в чому схоже з перетворенням її в мережеву модель, але й має деякі відмінності у зв'язку з тим, що ієрархічна модель вимагає організації всіх даних у вигляді дерева. Перетворення зв'язку типу «один до багатьох» між предком і нащадком здійснюється практично автоматично в тому випадку, якщо нащадок має одного предка, і відбувається це наступним чином. Кожен об'єкт з його атрибутами, що бере участь в такому зв'язку, стає логічним сегментом. Між двома логічними сегментами встановлюється зв'язок типу «один до багатьох». Сегмент з боку «багато» стає нащадком, а сегмент з боку «один» стає предком. Ситуація значно ускладнюється, якщо нащадок в зв'язку має не одного, а двох і більше предків. Так як подібне положення є неможливим для ієрархічної моделі, то відображена структура даних потребує перетворення, які зводяться до заміни одного дерева, наприклад, двома (якщо є два предка). В результаті такого перетворення в базі даних з'являється надмірність, так як єдино можливий вихід з цієї ситуації — дублювання даних. Примітки
|
Portal di Ensiklopedia Dunia