
Моделі даних
Дані, що зберігаються в БД, повинні бути організовані за певними правилами.
Організація даних і способи доступу до них, забезпечувані конкретною СУБД, називаються моделлю даних.
Існуючі бази даних розроблені на основі ієрархічної, мережевої, реляційної, об'єктно-орієнтованої моделей даних або їх підмножин.
Ієрархічна модель даних Ієрархічна модель даних (ІМД) являє собою деревоподібну (ієрархічну) структуру. У вершинах дерева знаходяться сукупності властивостей даних, що описують деякий об'єкт. У термінології ІМД ці сукупності називаються сегментами. Сегмент, у якого немає вищого рівня ієрархії, називається кореневим.
Розглянемо структуру ієрархічної бази даних торгового підприємства, що має філії в декількох містах, в кожному з яких є кілька магазинів, що мають склади для зберігання товарів (рис. 2).
Будь блок, зображений на схемі, являє собою сегмент, що складається з декількох полів, кожне з яких характеризує собою деяку властивість сегмента.
Наприклад, для сегмента Філія такими властивостями можуть бути назва міста, де знаходиться філія торгового підприємства, його поштова та юридична адреси, факс і т. д. Властивостями сегмента Склад можуть бути номер складу, його площа і т. д. Кореневим є сегмент Філія.
Сукупність конкретних значень полів сегмента називається екземпляром сегмента або записом: м. Амурська - вул. Перемоги, 3 - 18-67-53. Отже, один блок на схемі відображає безліч фактичних записів (примірників сегмента).
|
|
|
|
Пошук потрібного запису в ієрархічній базі даних завжди починається від кореневого запису.
Наприклад, необхідно вибрати запис з характеристиками конкретної партії товарів (кількість, колір, розмір, ціна і т. д.). Слід послідовно вказати філію, магазин, склад, де ці товари перебувають. Для спрощення пошуку, записи кожного сегмента упорядковуються за даними деякого поля.
Основні властивості ієрархічної моделі даних. 1. Кожен з підлеглих сегментів пов'язаний тільки з одним сегментом вищого рівня ієрархії. Зв'язки між сегментами одного рівня не допускаються. 2. Між сегментами двох рівнів можуть підтримуватися тільки зв'язки «один до багатьох» (одна філія - багато магазинів, один склад - багато товарів) або «один до одного» (одна філія - один директор).
Недоліки ієрархічної моделі даних:
1. Асиметричність запитів. У цьому можна переконатися, порівнюючи два запити. За допомогою першого з них вибирається запис з інформацією про партії товарів, для якої відомі назви філії, магазину та складу. У рамках другого запиту за відомостями про партії товарів потрібно визначити назву філії, в якому вона знаходиться. 2. Складність змін. Наприклад, при закритті деякого складу товари перерозподіляються між іншими складами. Ця операція зажадає кардинальної зміни структури бази даних. 3. Жорсткість структури, що не дозволяє врахувати в базі даних окремі реальні ситуації. Наприклад, товари, що зберігаються на одному складі, призначені декільком магазинам. 4. Складність експлуатації. Робота з ієрархічними базами даних потребує значної кваліфікації користувачів в області програмування. Зокрема, в СУБД IMS фірми IBM для опису загальної схеми бази даних і блоку зв'язку кожного користувача з базою даних використовувалася мова програмування Assembler. Для вибірки даних з БД - спеціалізована мову DL / 1, для обробки отриманої інформації - мови PL / 1 або Кобол. Перелічені причини призвели до того, що ієрархічна модель даних в даний час практично не використовується.
Мережева модель даних
Стандарт мережевої моделі даних вперше був визначений у 1975 р. організацією CODASYL (Conference of Data System Languages).
У мережній моделі даних не накладається ніяких обмежень на кількість зв'язків, що входять в одну вершину.
Отже, зв'язки можна встановлювати не тільки між вузлами сусідніх по підпорядкованості рівнів, але і різних рівнів (рис. 3):
|
|
|
|
Рис. 3 Мережева база даних
Зв'язки, зображені на рис. 3 і відсутні на рис. 2, можуть характеризувати цілком реальні взаємини в роботі торгового підприємства: представники дирекції можуть курирувати роботу конкретних підрозділів, підрозділу підприємства (автогосподарство, ремонтна служба) забезпечують роботу складів, співробітники підрозділів (бухгалтери, торгові агенти) взаємодіють з магазинами. Таких зв'язків можна визначити дуже багато.
В результаті формується мережа, яка дозволяє відображати зв'язки між об'єктами предметної області практично будь-якого ступеня складності, зокрема, кільцеві структури. У мережній моделі, якщо на неї не накладається ніяких обмежень, в принципі будь-який об'єкт може бути точкою входу в систему, кожен з об'єктів може бути пов'язаний з довільним числом інших об'єктів, і між записами пов'язаних об'єктів можуть бути будь-які відносини.
Наприклад, для мережевої бази даних, зображеної на рис. 3, формуються зв'язки «багато до багатьох» (багато підрозділів підприємства забезпечують роботу багатьох складів). На практиці в реальних СУБД на модель накладаються певні обмеження для перетворення зв'язків «багато до багатьох» у зв'язку «один до багатьох».
Достоїнствами мережевої моделі даних в порівнянні з ієрархічною моделлю є її гнучкість, можливість утворення довільних зв'язків, економічність.
Недоліки - висока складність, практично виключає можливість її експлуатації користувачами, які не є фахівцями в області інформаційних технологій, ослаблений контроль цілісності зв'язків між об'єктами бази даних.
З наведених причин СУБД, побудовані на основі мережної моделі (IDMS, db_VistaIII та ін), не набули широкого поширення.