- •Розділ 1. Системи баз даних
- •Тема 1.1. Основні поняття баз даних
- •Основні характеристики субд
- •Можливості субд
- •Основні компоненти середовища скбд
- •Тема 1.2. Архітектура баз даних
- •Тема 1.3. Функції систем керування базами даних
- •Розділ 2. Моделі даних
- •Тема 2.1. Поняття про моделювання даних
- •Тема 2.2. Ієрархічна модель даних
- •Тема 2.3. Мережна модель даних
- •Тема 2.4. Реляційна модель даних. Вимоги до реляційної моделі.
- •Розділ 3. Реляційні бази даних
- •Тема 3.1. Реляційна структура даних.
- •Типи зв’язків між таблицями
- •Тема 3.2. Реляційна алгебра
- •Тема 3.3. Нормалізація відносин
- •1. Перша нормальна форма
- •2. Друга нормальна форма
- •3. Третя нормальна форма
- •Тема 3.4. Цілісність даних
- •Розділ 4. Проектування баз даних
- •Тема 4.1. Методологія проектування бази даних
- •Тема 4.2. Етапи проектування бази даних
- •Тема 4.3. Er-моделювання предметної області
- •Тема 4.4. Проектування реляційної бази даних.
Тема 2.2. Ієрархічна модель даних
Ієрархічна модель даних уперше була задіяна в системі IMS (Information Management System - інформаційна керуюча система) у межах проекту висадки на Місяць. У першій ієрархічній системі були повністю реалізовані функції СКБД, а саме: мови визначення та маніпулювання даними, опис і підтримка обмежень цілісності, паралелізм, відновлення, а також механізми ефективної обробки запитів. Варто сказати, що IMS і досі використовується на мейнфреймах.
Згодом було розроблено ще декілька ієрархічних СКБД, і кожна з них привносила в модель свою специфіку, зумовлену способом реалізації системи. Далі будуть розглянуті найбільш загальні та принципові аспекти моделі.
Ієрархічна структура даних
Ієрархічна структура даних визначається ієрархічною впорядкованістю своїх компонентів (або вузлів), тобто кожен вузол має не більше одного «батька» — старшого за ієрархією вузла.
Структура складається зі схем елементів даних (описова інформація) та їхніх екземплярів. Інакше кажучи, схема задає логічну структуру (або тип) елементу даних, а екземпляр — його значення.
Елементарним значенням структури є пойменоване поле даних, а його екземпляр — це елементарне значення.
Схема сегмента (яку називатимемо також просто сегментом) — це пойменована впорядкована сукупність імен полів. Сегмент є одиницею доступу до даних ієрархічної структури під час взаємодії зовнішньої та оперативної пам'яті.
Екземпляр сегмента — впорядкована сукупність значень полів.
Ієрархічна схема даних — це ієрархічно впорядкована сукупність сегментів, що має певні властивості:
на найвищому рівні ієрархії розташований єдиний сегмент, що називається кореневим)
кожен інший сегмент, окрім кореневого, зв'язаний з одним і тільки одним сегментом вищого рівня, який є для цього сегмента батьківським (початковим);
сегмент може бути зв'язаний з одним або кількома сегментами нижчого рівня, які називаються дочірніми (породженими);
сегменти, що підпорядковані одному батьківському сегменту, називаються близнюками;
сегменти, що не мають дочірніх, вважаються листковими, або їх ще називають листками.
Ієрархічний шлях (або просто шлях) — це послідовність сегментів, починаючи з кореневого, де кожний попередній є «батьком» наступного. Рівень сегмента визначається як кількість сегментів, що містяться на шляху, який веде від кореня до даного сегмента.
Для ієрархічної схеми використовується така графічна нотація.
Кожний сегмент зображується у вигляді пойменованого прямокутника. Усередині прямокутника записуються імена полів.
І
єрархічний
зв'язок між сегментами позначається
лініями зі стрілками, що проведені
від батьківського сегмента до дочірнього.
Батьківські сегменти, як правило,
розміщують над дочірніми.
Приклад графічного зображення простої ієрархічної схеми даних наведений на рис. 2а. Якщо немає необхідності уточнювати сегменти полями, що зазвичай робиться під час загального аналізу ієрархічної структури предметної області, то в прямокутнику сегмента зазначається його ім'я (рис. 2 б). а б
Рис 2. Графічне зображення схеми ієрархічної структури даних:
з уточненням (а); без уточнень (б)
Екземпляр ієрархічної схеми даних складається з одного екземпляра кореневого сегмента і, можливо, кількох екземплярів дочірніх сегментів для кожного екземпляра батьківського сегмента. Припускається існування таких зв'язків між екземплярами сегментів:
кожний екземпляр будь-якого сегмента підпорядкований одному екземпляру батьківського сегмента;
е
кземпляр
будь-якого сегмента (окрім кореневого)
не може існувати без відповідного
екземпляра батьківського сегмента;кожний екземпляр сегмента зв'язаний (підпорядковує собі) з усіма екземплярами дочірніх сегментів;
екземпляри одного сегмента, зв'язані з одним екземпляром батьківського сегмента, можуть бути зв'язані між собою в ланцюжок, що дає змогу виконувати їхнє послідовне перебирання у межах усіх сегментів, породжених з одного початкового.
У
такий спосіб ієрархічна впорядкованість
сегментів створює зв'язок «один-до-багатьох»
між екземплярами батьківського і
дочірнього сегментів. Приклад екземплярів
ієрархічної схеми наведений на рис.
2.2.
Ієрархічна схема інколи має розгалуження, як це показано на рис. 2.3. У подібному випадку на рівні схеми батьківський сегмент може зв'язуватися з кількома дочірніми сегментами.
Ієрархічна структура даних — це сукупність ієрархічної схеми даних та всіх можливих екземплярів цієї схеми. Сукупність ієрархічних структур даних називається ієрархічною базою даних.
Операції над ієрархічною структурою
Операції, що виконуються над ієрархічною структурою, поділяють на дві групи: операції пошуку (чи вибирання) та операції оновлення даних (або маніпулювання ними). У цьому підрозділі операції, які формують семантичну основу мови маніпулювання даними тієї чи іншої СКБД, описуються на концептуальному рівні без уточнення синтаксису та інших другорядних деталей.
Зазначимо кілька базових принципів, характерних для мов маніпулювання даними ієрархічних систем.
Об'єктом маніпулювання є екземпляр сегмента.
У результаті успішного виконання пошукових операцій визначається поточний екземпляр сегмента, який може відігравати роль стартової позиції для операцій маніпулювання; спочатку поточним є кореневий екземпляр сегмента.
Пошук необхідного сегмента відбувається за «навігаційним» принципом: необхідно прокласти шлях від кореневого екземпляра сегмента (або ж поточного) до шуканого, перевіряючи умови, накладені на значення полів сегментів, які розташовані на шляху, що будується. Операція в ієрархічній моделі визначається шляхом програмування «навігації» структурою даних.
Вибирання даних
Необхідний екземпляр сегмента вибирається в ієрархічній структурі за допомогою команди «навігації» структурою. Екземпляр сегмента є одиницею навігації. Для визначення необхідного сегмента навігації може накладатися умова на значення полів сегмента. Відносно поточного сегмента можна переміщуватися ієрархічною структурою вверх, вниз і вбік.
Навігацію ієрархічною структурою можна здійснювати з метою її впорядкування, а потім переміщуватися нею згідно зі встановленим порядком. Порядок переміщення встановлюється, починаючи з кореня або будь-якого первинного сегмента. Далі рухатись можна зверху донизу і зліва направо.
Переваги та недоліки ієрархічної моделі
До переваг ієрархічної моделі належать:
розвинені низькорівневі засоби керування даними в зовнішній пам'яті;
можливість побудови ефективних прикладних систем;
економне використання пам'яті.
Зазначимо, що ієрархічна модель має також певні недоліки, які описані нижче.
Асиметрія пошуку за симетричними запитами. Програми пошуку викладачів за кафедрами та кафедр за викладачами принципово відрізняються: в першому випадку структура ієрархії збігається зі структурою пошуку, а в другому — ні.
Залежність між пошуком та відповідністю ієрархічної структури наявним зв'язкам у предметній області. Якщо ієрархічна структура відповідає структурі зв'язків ПО, то записувати пошукові вирази набагато легше.
Низький рівень мови запитів і маніпулювання даними. Оскільки маємо справу з мовою програмування процедурного типу, результатом однієї пошукової операції є один екземпляр сегмента даних, або ж один екземпляр ієрархічного шляху до заданого екземпляра сегмента. Це вказує на низьку селективну потужність мови.
Аномалії додавання, видалення та оновлення даних. Не можна здійснити операцію додавання сегмента ВИКЛАДАЧ без зазначення сегмента КАФЕДРА; не можна видалити сегмент КАФЕДРА, на видаляючи сегментів ВИКЛАДАЧ; після оновлення даних один і той самий екземпляр сутності зображується у вигляді багатьох екземплярів об'єктів бази даних.
Дублювання даних. Якщо об'єкти предметної області мають зв'язки типу «один-до-одного» або «один-до-багатьох», то ієрархічна структура дає змогу зображувати дані без дублювання; проте, якщо є зв'язки типу «багато-до-багатьох», то дублювання даних під час відображення в ієрархічній моделі неминуче. Крім згаданих основних недоліків ієрархічної моделі слід зазначити також складність реалізації гнучких механізмів захисту даних, цілісності та несуперечності й «дружніх» інтерфейсів користувача.
Основні недоліки ієрархічної моделі пов'язані з тим, що не всі предметні області мають чітко виражену ієрархічну структуру. Наведений на рис. 2.2 приклад добре узгоджується з ієрархічною структурою. Проте, якщо ми розглянемо предметну область із сутностями «викладач», «дисципліна», «лекція» в ситуації, коли один викладач читає лекції з багатьох дисциплін і одна й та сама дисципліна читається багатьма викладачами, то вона «погано» піддається ієрархічній структуризації. Справа в тому, що між викладачами і дисциплінами існує зв'язок типу «багато-до-багатьох», який не є адекватним ієрархічній структурі даних (докладніше про це мова йтиме в розділах, присвячених логічному проектуванню).
Для відображення зв'язків цього типу була запропонована мережна модель даних.
