3. Мережева модель даних.
Стандарт мережевої моделі вперше був визначений у 1975 р. організацією CODASYL, яка визначила базові поняття моделі і формальну мову опису.
Базовими об’єктами моделі є:
елемент даних;
агрегат даних;
запис;
набір даних.
Елемент даних – мінімальна інформаційна одиниця, доступна користувачеві з використанням СУБД.
Агрегат даних – відповідає слідуючому рівню узагальнення в моделі. В моделі визначені агрегати двох типів: агрегат типу вектор і агрегат типу група, що повторюється.
Агрегат типу вектор має ім’я, за яким допустимо звертання до агрегату. Агрегат типу вектор відповідає лінійному набору елементів даних. наприклад, агрегат Адрес може бути представлений таким чином:
-
Адреса
Індекс
Місто
Вулиця
Будинок
Квартира
Агрегат типу група, що повторюється, відповідає сукупності векторів даних. Наприклад, агрегат Зарплата відповідає типу група, що повторюється, з числом повторів 12.
-
Зарплата
Місяць
Сума
Запис – сукупність агрегатів або елементів даних, яка моделює деякий клас об’єктів реального світу. Це поняття відповідає поняттю „сегмент” у ієрархічній моделі. Вводиться поняття типу запису і екземплярів запису.
Н
Запис
типу А
Володар набору N – батьківський тип
Набір N
Запис
типу В
Член набору N – дочірній тип
Набір фактично відображає ієрархічний зв’язок між двома типами записів.
Для довільних двох типів записів може бути задано довільну кількість наборів, які їх зв’язують. Фактично це дозволяє промоделювати відношення „багато до багато” між двома об’єктами реального світу, що відрізняє мережеву модель від ієрархічної.
Між двома типами записів можна визначити довільну кількість наборів. що їх зв’язують.
Істотнім обмеженням набору є те, що один і той же тип запису не може бути одночасно володарем і членом набору.
Як приклад розглянемо таблицю, на основі якої організуємо два набори і визначимо зв’язок між ними:
№ |
Викладач |
Група |
День тижня |
№ пари |
Аудиторія |
Дисципліна |
1 |
Іванов |
4306 |
Понеділок |
1 |
22_13 |
КІД |
2 |
Іванов |
4307 |
Понеділок |
2 |
22_13 |
КІД |
3 |
Карпов |
4307 |
Вівторок |
2 |
22_14 |
53іЄС |
4 |
Карпов |
4309 |
Вівторок |
4 |
22_14 |
53іЄС |
5 |
Карпов |
84305 |
Вівторок |
1 |
22_14 |
БД |
6 |
Смірнов |
4306 |
Вівторок |
3 |
23_07 |
ГВП |
7 |
Смірнов |
4309 |
Вівторок |
4 |
23_07 |
ГВП |
Набір 1 Набір 2
Екземплярів набору „веде заняття” буде 3 (по кількості викладачів)
Екземплярів набору „займається у” буде 4 (по кількості груп)
У загальному випадку мережева база даних представляє сукупність взаємопов’язаних наборів, які утворюють на концептуальному рівні деякий граф.
Приклади моделей даних на основі записів.
Записи мають фіксовані формати, які можуть мати різні типи. Кожен тип запису визначає фіксовану кількість полів, кожне з яких має фіксовану довжину.
Існує 3 типи основних логічних моделей даних на основі записів:
реляційна модель даних
мережева модель даних (network data model)
ієрархічна модель (hierarchical data model)
Ієрархічна модель – модель даних, в якій зв’язки між даними мають вигляд ієрархії
Файли
Клієнт
Рахунок
Рахунок № |
Data |
Клієнт-ID |
1012 |
10.02 |
|
1015 |
14.02 |
|
1020 |
20.02 |
|
Рядок рахунку
Рахунок № |
Строка № |
PROD-ID |
QTY |
TOTAL-PRICE |
1012 |
01 |
1035 |
100 |
2200.00 |
1012 |
02 |
2241 |
200 |
6650.00 |
1012 |
03 |
2518 |
300 |
6360.00 |
1015 |
01 |
1035 |
150 |
3300.00 |
1015 |
02 |
2518 |
200 |
4240.00 |
1020 |
01 |
2241 |
100 |
3325.00 |
1020 |
02 |
2518 |
150 |
3180.00 |
Зв’язуються покажчиками
Якщо добавити інформацію про клієнта: магазин і представника.
№ |
Викладач |
Група |
День тижня |
№ пари |
Аудиторія |
Дисципліна |
1 |
Іванов |
4306 |
Понеділок |
1 |
22_13 |
Інформатика |
2 |
Іванов |
4307 |
Понеділок |
2 |
22_13 |
Інформатика |
3 |
Карпов |
4307 |
Вівторок |
2 |
22_14 |
БД |
4 |
Карпов |
4309 |
Вівторок |
4 |
22_14 |
БД |
5 |
Карпов |
84305 |
Вівторок |
1 |
22_14 |
СУБД |
6 |
Смірнов |
4306 |
Вівторок |
3 |
23_07 |
ОС |
7 |
Смірнов |
4309 |
Вівторок |
4 |
23_07 |
ОС |
Набір 1 Набір 2
Екземплярів набору „веде заняття” буде 3 (по кількості викладачів)
Екземплярів набору „займається у” буде 4 (по кількості груп)
Ієрархічна
Дані
Працюють у відділі
має керівника
Мережева модель.
Відображаються зв’язки елементів даних у вигляді довільного графа, узагальнення ієрархічної моделі:
Для опису використовують дві групи типів: ”запис”, ”зв’язок”.
Тип ”зв’язок” визначається для двох типів ”запис” предка і потомка. Зміна типу ”зв’язок” є екземпляром зв’язків.
Мережева БД складається із набору записів і набору відповідних зв’язків. На зв’язки не накладаються обмеження, тобто запис-потомок може мати декілька записів-предків
CODASYL – моделі
Переваги – можливість ефективної реалізації по показникам затрат пам’яті і оперативності, довільно вз’яті.
Недоліки – велика складність і жорсткість схем БД. Ослаблений контроль цілісності.
Приклад:
-
Поставщик
Назва
Адреса
-
Товари
Назва товару
-
Ціни
Ціна
Товар
Постачальник
-
Замовлення
Номер
Кількість
-
Люди
Ф.І.О.
Адреса
Баланс
або
Попередня має обмеження: для кожного потомка один предок.
Якщо зобразити в БД зв’язки між торговим агентом і рахунком, тобто хочемо мати список всіх рахунків на продажі, які зроблені торговими агентами, щоб підрахувати його заробіток.