Лекція №3
Моделі даних
1. Мережна (мережева) модель.
Історична довідка
Другим помітним досягненням середини 1960-х років була поява системи IDS (Integrated Data Store) фірми General Electric. Роботу над нею очолив один з піонерів досліджень в області систем керування базами даних – Чарльз Бачман. Розвиток цієї системи привів до створення нового типу СКБД – мережних СКБД. Мережна СКБД створювалася як альтернатива ієрархічній моделі представлення даних з метою представлення більш складніших взаємозв’язків між даними, а також для формування стандарту баз даних. Вона призначена для адекватного моделювання зв'язків між сутностями типу «багато-до-багатьох».
Для створення таких стандартів у 1965 році на конференції організації CODASYL була сформована робоча група, яка у 1967 р. отримала назву DBTG (Data Base Task Group). У компетенцію цієї групи входило визначення специфікацій середовища, що допускало б розроблення баз даних та керування даними.
Окрім формальної нотації для мережної моделі (мова опису даних ‒ МОД) та пов'язаних з нею певних ключових концепцій, DBTG запропонувала МОД підсхеми для означення зовнішнього відображення концептуальної схеми бази даних та мову опису збережених даних (МОЗД) для означення способів зберігання даних на носіях. Сама концептуальна схема описується за допомогою МОД.
Запропонована була й мова маніпулювання даними (ММД) для написання прикладних програм, що взаємодіють з базою даних у термінах зовнішньої схеми (підсхеми).
Мережна структура даних
Мережна структура даних є сукупністю схеми та екземпляра схеми. У свою чергу мережна схема формується з полів даних, типів записів і наборів, які також мають свої екземпляри. Власне з екземплярів полів, записів та наборів складається екземпляр схеми.
Елементарною одиницею даних мережної (так само, як ієрархічної) структури є іменоване поле даних.
Тип запису ‒ це іменована впорядкована сукупність імен полів. Екземпляр запису (аналог сегмента в ієрархічній структурі даних) ‒ це впорядкована сукупність значень полів запису. Екземпляр запису є одиницею доступу до даних мережної структури.
Набір ‒ іменований дворівневий ієрархічний зв'язок типів записів. Набір є основною конструкцією мови, запропонованої CODASYL DBTG. Із дворівневих наборів можуть будуватися багаторівневі ієрархії та мережні структури.
Кожний тип набору ‒ це сукупність зв'язків між двома або кількома типами записів, де один тип запису оголошується власником, а інший (або кілька інших) ‒
членами типу набору. Екземпляр набору містить один екземпляр запису-власника і довільну кількість екземплярів кожного типу запису-члена набору. Отже, набір описує дворівневий ієрархічний зв'язок типу «один-до-багатьох».
Тип запису КАФЕДРА (рис. 1,а) є власником типу набору, а типи ДИСЦИПЛІНА і ВИКЛАДАЧ ‒ члени типу набору.
На рис. 1, б зображений екземпляр цього типу набору. Він містить один екземпляр типу запису КАФЕДРА і декілька типів записів ДИСЦИПЛІНА та ВИКЛАДАЧ.
a) б)
Рис.1. Приклад опису набору «Кафедра»: тип набору (а), екземпляр набору (б)
Типи наборів можуть використовуватися для створення багаторівневих ієрархічних або мережних структур.
Для отримання багаторівневої ієрархії потрібно більше одного набору Тип запису, що є власником на нижньому рівні ієрархії, має бути також оголошений членом типу набору вищого рівня.
Трирівнева ієрархія у вигляді двох типів наборів: Кафедра і Наукові праці показана на рис. 2. Тип запису ВИКЛАДАЧ є власником у типі набору Наукові праці та членом у типі набору Кафедра.
Рис.2. Трирівнева ієрархічна структура
Для опису будь-якої n-рівневої ієрархії потрібно принаймні n-1 наборів.
Один тип запису може мати кілька батьківських записів, якщо вони є власниками різних типів наборів, тобто запис може бути членом багатьох наборів і мати декілька записів-власників. Так формуються мережні структури.
Приклад схеми мережної структури даних, що складається з п'яти типів наборів даних, наведений на рис. 3. Мережну структуру формують набори Прослуховує, Читається і Читає, а тип запису ЛЕКЦІЯ є їхнім членом.
Отже, одні й ті самі типи записів можуть бути зв'язані в різні набори. Мережна структура дає змогу моделювати зв'язки типу «багато-до-багатьох». Такий зв'язок, наприклад, існує між викладачами та дисциплінами: викладач читає багато дисциплін, і дисципліна може викладатися багатьма викладачами.
Рис.3. Мережна структура даних
Зв'язок згаданого типу моделюється введенням нового типу запису ЛЕКЦІЯ і встановленням двох зв'язків (наборів) типу «один-до-багатьох» (рис. 4).
Рис.4. Моделювання зв'язку типу «багато-до-багатьох»: схема (а): екземпляр схеми (б)
Мережна структура може відображувати цикли та петлі. Циклом називається конфігурація, в якій предок типу запису є водночас його нащадком. Приклад циклічної мережної структури наведений на рис. 5, а. Тут вироби певного заводу є сировиною для виробів іншого заводу.
Петля ‒ це структура, де один тип запису є одночасно власником і членом в одному типі набору. Структура виробів описана на рис. 5, б. Виріб складається з вузлів і деталей; у свою чергу вузли можуть складатися з інших вузлів і деталей.
Тоді навколо типу запису ВУЗОЛ утворюється петля.
Рис.5. Приклади мережних структур: цикл (а); петля (б)
Мережна структура CODASYL не допускає відображення петель. У разі їхнього виникнення пропонується вводити додаткові типи записів, які дають змогу вирішити проблему «розвузлування».
Категорії схем, які зустрічаються в мережних структурах даних, зображені на рис. 6. Як бачимо, мережна структура даних здатна моделювати в повному обсязі ієрархічну структуру та власне мережні схеми. Окрім того, у загальному випадку вона дає можливість описувати петлі та цикли.
Рис.6. Категорії схем мережної структури даних
Операції над мережною структурою
Операції над мережною структурою даних концептуально аналогічні до операцій над ієрархічною структурою. Мова маніпулювання даними в мережній структурі також є низькорівневою, тобто її використання передбачає програмування процесів «навігації» структурою. Кожний тип запису в цій моделі, на відміну від ієрархічної, може мати поточний екземпляр запису, відносно якого можна організовувати подальше перебирання екземплярів, окрім того, кожний тип набору може мати поточний екземпляр набору.
Згідно з пропозиціями CODASYL, навігація структурою та вибирання даних
виконуються в два етапи. Спочатку за допомогою послідовності операторів визначається розташування екземпляра запису необхідного типу, тобто бажаний запис стає поточним. Потім спеціальною командою можна вибрати поточний запис, вказуючи (в разі потреби) його поля.
Переваги та недоліки мережевої структури
Переваги: ефективність щодо затрат пам’яті та оперативності в порівнянні з ієрархічною моделлю, має більші можливості щодо реалізації довільних зв’язків.
Недоліки: висока складність та жорсткість схеми БД; складність для розуміння звичайного користувача; послаблений контроль за цілісністю даних внаслідок можливості довільних зв’язків між даними.
Приклад СКБД: IDMS (Integrated Database Management System) компанії Cullinet Software, Inc.
2. Багатовимірна модель OLAP та об’єктно-орієнтована модель.
Багатовимірна модель OLAP (On-line Analytical Processing, оперативне аналітичне оброблення)
Поштовхом для розвитку багатовимірних моделей стала у 1993 році програмна стаття одного із засновників реляційного підходу Едгара Кодда. У ній він сформулював 12 основних вимог до систем класу OLAP.
1. Багатовимірне концептуальне представлення даних.
2. Прозорість.
3. Доступність.
4. Незмінно висока продуктивність підготовлення звітів.
5. Архітектура «клієнт/сервер».
6. Універсальність вимірів.
7. Динамічне керування розрідженістю матриць.
8. Багатокористувацька підтримка.
9. Необмежені перехресні операції між розмірностями.
10. Підтримка зручних засобів маніпулювання даними.
11. Гнучкість засобів формування звітів.
12. Необмежене число вимірів та рівнів агрегування (об’єднань).
З часу публікації Коддом вище наведених правил для інструментів OLAP було запропоновано чимало варіантів їхнього перевизначення та розширення. Наприклад, пропонувалося доповнити вимогою того, щоб комерційні інструменти OLAP включали комплексні інструменти керування БД, виконували низхідний аналіз до вихідного запису, виконували інкрементне обновлення БД та мали інтерфейс SQL.
Термін OLAP використовується для опису технології оброблення даних, у яких використовується багатовимірне представлення агрегованих (об’єднаних) даних для забезпечення швидкого доступу до стратегічно важливої інформації з метою поглибленого аналізу.
Опис багатовимірного простору. Основні терміни.
Вимір – описує елемент даних, за яким виконується аналіз. Наприклад, найрозповсюдженішим елементом аналізу є час.
Елемент – відповідає одній точці на вимірі. Наприклад, у вимірі «Час» понеділок буде елементом виміру.
Значення елементу – це унікальна характеристика елементу. Наприклад, у вимірі «Час» це може бути деяка дата.
Атрибут – це повна колекція елементів одного типу. Наприклад, всі дні тижня будуть атрибутом виміру «Час».
Розмір чи Кардинальність виміру – це кількість елементів, яку вона вміщує. Наприклад, «Час», що складається з днів тижня, буде мати розмір 7.
Кортеж – це координата у багатовимірному просторі. Кожна точка геометричного простору визначається набором координат, у тривимірному це X, Y, Z. Так само, як геометричний простір, багатовимірний простір визначається набором координат. Цей набір називається кортежом.
Зріз – це секція багатовимірного простору, що може бути визначена кортежем (рис. 7).
Рис. 7. Представлення тривимірної бази даних
Точка простору А визначається кортежем (червень, кефір, Гнідець). Якщо елемент в одному чи більше вимірах у кортежі замінюється зіркою (*), яка відіграє роль символу підстановки та означає усі елементи цього виміру, отримаємо нормальний підпростір. Цей вид підпростору називається зрізом.
Прикладом зрізу для продаж усіх товарів у червні усім покупцям буде (*, *, червень).
Переваги: зручність та ефективність аналітичного оброблення великих об’ємів даних, що пов’язані із часом.
Недоліки: громіздкість для простих задач звичайного оперативного оброблення інформації.
Приклади: Oracle Express Server; MS SQL Server Analysis Services; Cache (InterSystems); Media Multi-matrix (Speedware).
Об’єктно-орієнтована модель
Об’єктно-орієнтована БД – це БД, у якій дані є представлені у вигляді моделей об’єктів, що включають прикладні програми, які керуються зовнішніми подіями.
Це є суттєвим розширенням традиційної реалізації об’єктно-орієнтованої парадигми, де об’єкти фактично представляють програмні змінні, які існують лише на протязі життя створюючої та виконуючої їх програми. У об’єктно-орієнтованій системі з базою даних об’єкти можуть бути перманентними, тобто вони продовжують існувати і після завершення програми, що їх створила. Інші програми також можуть потім «витягувати» та використовувати такі об’єкти, і навіть руйнувати їх.
Стандартизована об’єктно-орієнтаційна модель описана у рекомендаціях стандарту ODMG-93 (Object Database Management Group). Реалізувати усіх вимог цього стандарту ще не вдалося.
Стандарт ODMG-93 має свою об’єктно-орієнтовану SQL – OSQL. Логічна структура об’єктно-орієнтованої БД зовні схожа на структуру ієрархічної БД. Основна відмінність між ними полягає у методах маніпулювання даними.
Рис. 8. Логічна структура об’єктно-орієнтованої БД
Переваги: у порівнянні з реляційною моделлю є можливість відображення інформації про складні взаємозв’язки об’єктів. Дає можливість ідентифікувати окремий запис БД та визначити функції його оброблення.
Недоліки: надто складна модель та важка для її розуміння користувачами; незручність для оброблення даних та низька швидкість виконання запитів.
Приклади: POET (POET Software), Jasmine (Computer Associates), Versant (Versant Technologies), O2 (Ardent Software).
Усі наведені СКБД підтримують мови: C++ та Java.
Питання для самоперевірки:
1. Мережна модель даних.
2. Дайте характеристику основним операціям над мережною структурою даних.
3. Опишіть багатовимірну модель OLAP.
4. Основні поняття об’єктно-орієнтованої моделі.
5. Охарактеризуйте зв’язок «багато-до-багатьох».