Моделі баз даних
Основою бази даних є модель даних — фіксована система понять і правил для представлення даних структури, стану і динаміки проблемної області в базі даних. У різний час послідовне застосування одержували ієрархічна, мережева і реляційна моделі даних. У наш час усе більшого поширення набуває об'єктно-орієнтований підхід до організації баз даних ГІС[1].
Термін «база даних» почав застосовуватися з 1963 р. і записувався англійською як data base. З розвитком обчислювальної техніки ці два слова були з'єднані (database). Один із розробників теорії баз даних, Інгліс, у 1972 р. дав таке визначення: база даних — сукупність збережених операційних даних, що використовуються прикладними системами деякого підприємства.
Інший класик теорії баз даних К. Дейт у своїх працях навів більш точне визначення бази даних як сукупності даних, що зберігаються у вторинній пам'яті (на дисках). База даних (БД) — це пойменована сукупність даних, організованих за певними правилами, що передбачають загальні принципи опису, зберігання і маніпулювання даними, не залежно від прикладних програм.
Як і у випадку будь-якого файлу даних, БД складається із записів; записи діляться на поля. Запис є найменшою одиницею обміну даними між оперативною й зовнішньою пам'яттю, поле — найменшою одиницею обробки даних.
Ієрархічна структура (модель) будується у вигляді ієрархічної деревоподібної структури, у якій для кожного головного об'єкта існує кілька підлеглих, а для кожного підлеглого об'єкта може бути тільки один головний. На найвищому рівні ієрархії перебуває кореневий об'єкт. Прикладом ієрархічної структури даних може бути організація каталогів на диску, різного роду класифікації, структура державної влади тощо.
Концептуальна схема ієрархічної моделі являє собою сукупність типів записів, пов'язаних типами зв'язків в одним чи кількома деревами. Усі типи зв'язків цієї моделі належать до виду «один до декількох» і зображуються у вигляді стрілок.
Таким чином, взаємозв'язки між об'єктами нагадують взаємозв'язки в генеалогічному дереві, за єдиним винятком: для кожного породженого (підлеглого) типу об'єкта може бути тільки один вхідний (головний) тип об'єкта. Тобто ієрархічна модель даних допускає тільки два типи зв'язків між об'єктами: «один до одного» і «один до декількох». Ієрархічні бази даних є навігаційними, тобто доступ можливий тільки за допомогою заздалегідь визначених зв'язків.
При моделюванні подій, як правило, необхідні зв'язки типу «багато до декількох». Як одне з можливих рішень зняття цього обмеження можна запропонувати дублювання об'єктів. Однак дублювання об'єктів створює можливості неузгодженості даних.
Перевага ієрархічної бази даних полягає в тому, що її навігаційна природа забезпечує швидкий доступ при проходженні вздовж заздалегідь визначених зв'язків. Однак негнучкість моделі даних і, зокрема, неможливість наявності в об'єкта декількох батьків, а також відсутність прямого доступу до даних роблять її непридатною в умовах частого виконання запитів, не запланованих заздалегідь. Ще одним недоліком ієрархічної моделі даних є те, що інформаційний пошук з нижніх рівнів ієрархії не можна спрямувати по вище розміщених вузлах.
У мережевій моделі один і той же об'єкт може одночасно виступати як у ролі головного, так і підлеглого елемента. Це означає, що кожний об'єкт може брати участь у довільній кількості зв'язків. Зв'язок у цьому випадку може встановлюватися явно, коли значення деяких полів є посилання на дані, що містяться в іншому файлі. Прикладом мережевої структури БД може бути структура автобусних маршрутів (із будь-якого населеного пункту існують маршрути в інші).
Подібно до ієрархічної, мережеву модель також можна подати у вигляді орієнтованого графу. Але в цьому випадку граф може містити цикли, тобто вершина може мати кілька батьківських вершин.
Така структура набагато гнучкіша і виразніша від попередньої і придатна для моделювання ширшого класу завдань.
Ієрархічні і мережеві бази даних часто називають базами даних з навігацією. Ця назва відбиває технологію доступу до даних, використовувану при написанні програм обробки мовою маніпулювання даними. При цьому доступ до даних по шляхах, не передбачених при створенні бази даних, може потребувати нерозумно тривалого часу.
Підвищуючи ефективність доступу до даних і скорочуючи таким чином час відповіді на запит, принцип навігації разом з цим підвищує і ступінь залежності програм і даних. Програми обробки даних виявляються жорстко прив'язаними до поточного стану структури бази даних і повинні бути переписані при її змінах. Операції модифікації і видалення даних вимагають перевстановлення покажчиків, а маніпулювання даними залишається записоорієнтованим. Крім того, принцип навігації не дозволяє істотно підвищувати рівень мови маніпулювання даними, щоб зробити його доступним користувачу-непрограмісту чи навіть програмісту-непрофесіоналу. Для пошуку запису-мети в ієрархічній або мережевій структурі програміст повинен спочатку визначити шлях доступу, а потім — крок за кроком переглянути всі записи, що трапляються на цьому шляху.
Наскільки складними є схеми представлення ієрархічних і мережевих баз даних, настільки і трудомістким є проєктування конкретних прикладних систем на їхній основі. Як показує досвід, тривалі терміни розроблення прикладних систем нерідко призводять до того, що вони постійно перебувають на стадії розроблення і доопрацювання. Складність практичної реалізації баз даних на основі ієрархічної і мережевої моделей визначила створення реляційної моделі даних[2].
У реляційній моделі дані й взаємозв'язки між ними подаються за допомогою прямокутних таблиць. Рядки в реляційній базі даних називають записами, а стовпці — полями. Модель реляційної бази даних була вперше розроблена доктором Е. Ф. Коддом на початку 70-х років XX ст. як більш зручний засіб збереження, вибірки й маніпулювання даними, ніж ієрархічні й мережі бази даних. Модель двовимірної таблиці дозволяє звертатися до даних як по рядках, так і по стовпцях, що є значною перевагою[3].
Назва «реляційна» (relational) пов'язана з тим, що кожен запис у таблиці даних містить інформацію, яка стосується (related) якогось конкретного об'єкта. Крім того, зв'язані між собою (тобто такі, що знаходяться в певних відношеннях — relations) дані навіть різних типів в моделі можуть розглядатися як одне ціле.
Таблиця має такі властивості:
- кожний елемент таблиці являє собою один елемент даних;
- повторювані групи відсутні;
- усі стовпці в таблиці однорідні; це означає, що елементи стовпця мають однакову природу;
- стовпцям присвоєні унікальні імена;
- у таблиці немає двох однакових рядків
Порядок розміщення рядків і стовпців у таблиці довільний; таблиця такого типу називається відношенням. У сучасній практиці для рядка використовується термін «запис», а для стовпця термін «поле».
Основною відмінністю пошуку даних в ієрархічних, мережевих і реляційних базах даних є те, що ієрархічні і мережеві моделі даних здійснюють зв'язок і пошук між різними об'єктами за структурою, а реляційні — за значенням ключових атрибутів (наприклад, можна знайти всі записи, значення яких у полі «номер будинку» дорівнює 3, але не можна знайти 3-й рядок).
Оскільки реляційна структура концептуально проста, вона дозволяє реалізовувати невеликі і прості (і тому легкі для створення) бази даних, навіть персональні, сама можливість реалізації яких ніколи навіть і не розглядалася в системах з ієрархічною чи мережевою моделлю.
Недоліком реляційної моделі даних є надмірність по полях (для створення зв'язків між різними об'єктами бази даних).
Майже всі наявні на сьогодні комерційні бази даних і програмні продукти для їх створення використовують реляційну модель даних.
- ↑ Моделі даних. Ієрархічна модель даних. Мережева модель даних. Реляційна модель даних. geoknigi.com (укр.). Архів оригіналу за 21 квітня 2018. Процитовано 8 квітня 2018.
- ↑ Моделі даних. Ієрархічна модель даних. Мережева модель даних. Реляційна модель даних. geoknigi.com (укр.). Архів оригіналу за 21 квітня 2018. Процитовано 20 квітня 2018.
- ↑ Види та моделі баз даних. poznayka.org. Архів оригіналу за 16 квітня 2018. Процитовано 8 квітня 2018.