Проектування баз даних
26


відносно Х — як фізично породжений.

За описаним правилом побудови зв'язків необхідно перевірити всі по­роджені сегменти на виконання даного обмеження.

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

Другий етап відображення полягає в модифікації отриманої моделі з урахуванням обмежень вибраної ієрархічної СУБД.

Рис. 3.1. Взаємозв'язки між двома фізичними базами даних

Розглянемо ієрархічну СУБД ОКА, що використовується на машинах типу ЄС ЕОМ, яка є прототипом західної СУБД IMS (СУБД була створена в рамках виконання проекту Аполлон — висадки на Місяць). ОКА найбільшою мірою відбиває теоретичні канони побудови ієрархічних СУБД. Ця СУБД накладає такі обмеження на логічну модель БД:

1. СУБД підтримує лише співвідношення типу 1:1 і 1:Б.

2. Кількість атрибутів у сегменті не повинна перевищувати 254.

3. Кількість рівнів ієрархії— не більше 15.

4. На логічно породжені сегменти накладається ряд обмежень:

4.1. Кореневий сегмент не може бути логічно породженим, але може бути логічно вихідним.

4.2. Логічно породжений сегмент може мати лише один логічно вихідний сегмент.

Так, на рис.3.2 із наведених зв'язків А і В може існувати лише А. Зв'язок L, при якому кореневий сегмент Х стає логічно породженим, взагалі не допускається.

Рис. 3.2. Організація логічних зв'язків між фізичними базами даних

4.3. Логічно породжений сегмент не може бути ні логічно, ні фізично вихідним для логічно породженого сегмента, тобто два сегменти однієї ФБД, розміщені на ієрархічному шляху безпосередньо один за одним, не можуть бути одночасно оголошеними як логічно породжені.

4.4. Логічно вихідний сегмент може мати один чи кілька логічно поро­джених в одній чи кількох ФБД.

4.5. Зв'язки між логічно вихідними і логічно породженими сегментами можуть бути одно- чи двосторонніми.

Відповідно до цих вимог і обмежень має бути модифікована ієрархічна БД, яка працюватиме в середовищі СУБД ОКА.

Як зазначалося, в ієрархічних моделях не можна підтримувати багатозначні зв'язки в явному вигляді. Тому якщо потрібно реалізувати співвідношення такого типу, використовують такий штучний засіб, як адре­сне посилання. Для цього необхідно, щоб сегменти, між якими необхідно встановити зв'язок Б:Б, були розміщені в різних ФБД.

Якщо потрібно, наприклад, реалізувати зв'язок між сегментами СПІВРОБІТНИК: ПРОЕКТ = Б:Б, який говорить про те, що один співробіт­ник може брати участь у виконанні кількох проектів, а, в свою чергу, у виконанні одного проекту бере участь багато співробітників, застосовують штучні сегменти у1 та Y2 (рис.3.3), які вміщують відповідні фізичні адреси співробітників і проектів.