- •Організація баз даних
- •1. Бази даних
- •1.1. Приклад бази даних
- •1.2. Вимоги до бази даних
- •3. Інфологічна модель даних "сутність — зв'язок"
- •3.1. Основні елементи моделі
- •3.5. Класи сутностей
- •3.7. Поняття "ключ бази даних"
- •4. Даталогічні моделі даних
- •4.1. Ієрархічна модель
- •Задачі для самостійної роботи
3. Інфологічна модель даних "сутність — зв'язок"
Потреби проектувальників баз даних у зручних і потужних способах моделювання предметної галузі сприяли розвитку семантичних моделей даних. Найчастіше на практиці семантичне моделювання використовується на ранніх стадіях проектування баз даних. При цьому в термінах семантичної моделі створюється концептуальна схема бази даних (інфологічна модель), що потім вручну перетвориться на реляційну (або якусь іншу) схему. Цей процес виконується за певними методиками, в яких достатньо чітко обговорені всі етапи такого перетворення. Зрідка реалізується автоматизована компіляція концептуальної схеми в реляційну.
3.1. Основні елементи моделі
Розглянемо деякі риси однієї з найбільш популярних семантичних моделей даних — модель "Сутність — Зв'язок" (часто її коротко називають ER-моделлю). На використанні різновидів ER-моделі заснована більшість сучасних підходів до проектування баз даних (головним чином, реляційних). Модель була запропонована П.Ченом (Chen) у 1976 p. Моделювання предметної галузі базується на використанні графічних діаграм, що включають невелике число різнорідних компонентів. У зв'язку з наочністю представлення концептуальних схем баз даних ER-моделі набули широкого поширення в системах CASE, що підтримують автоматизоване проектування реляційних баз даних.
Метою інфологічного моделювання є забезпечення найбільш природних для людини засобів збору й подання тієї інформації, що передбачається для зберігання в створюваній базі даних. Тому інфологічну модель даних намагаються будувати за аналогією з природною мовою (остання не може використовуватися у чистому вигляді через складність комп'ютерної обробки текстів і неоднозначність будь-якої природної мови). Основними конструктивними елементами інфологічних моделей є сутності, зв'язки між ними та їх властивості (атрибути).
Сутність — будь-який помітний об'єкт (об'єкт, що можна відрізнити від іншого), інформацію про який необхідно зберігати в базі даних. Сутностями можуть бути люди, міста, літаки, рейси, смаки, кольори тощо. Необхідно розрізняти такі поняття, як тип сутності і екземпляр сутності. Поняття тип сутності стосується набору однорідних особистостей, предметів, подій або ідей, що виступають як ціле. Екземпляр сутності — це конкретна річ у наборі. Наприклад, типом сутності може бути МІСТО, а екземпляром — Київ, Харків тощо.
Атрибут — характеристика сутності, яка має ім'я. Це ім'я повинно бути унікальним для конкретного типу сутності, але може бути однаковим для різноманітного типу сутностей (наприклад, КОЛІР може бути визначений для багатьох сутностей: СОБАКА, АВТОМОБІЛЬ, ДІМ). Атрибути використовуються для визначення того, яку інформацію потрібно зібрати про сутність. Прикладами атрибутів для сутності АВТОМОБІЛЬ є ТИП, МАРКА, НОМЕРНИЙ ЗНАК, КОЛІР тощо. Також є різниця між типом і екземпляром. Тип атрибута КОЛІР має багато екземплярів або значень: Червоний, Синій, Банановий, проте кожному екземпляру сутності присвоюється тільки одне значення атрибута.
Слід зазначити, що атрибут є таким тільки в зв'язку з типом сутності, у іншому контексті атрибут може виступати як самостійна сутність. Наприклад, для автомобільного заводу КОЛІР — це тільки атрибут продукту виробництва, а для лакофарбової фабрики КОЛІР — тип сутності.
Ключ — мінімальний набір атрибутів, за значеннями яких можна однозначно знайти необхідний екземпляр сутності. Мінімальність означає, що виключення з набору будь-якого атрибута не дозволяє ідентифікувати сутність за тими, що залишились. Для сутності Розклад літаків ключем є атрибут Номер рейсу або набір: {Пункт_відправлення, Час_вильоту і Пункт_призначення} (за умови, що з пункту в пункт вилітає в кожний момент часу один літак).
Зв'язок — асоціювання двох або більше сутностей. Якби призначенням бази даних було тільки збереження окремих, не пов'язаних між собою даних, то її структура могла б бути дуже простою. Проте одна з основних вимог до організації бази даних — забезпечення можливості пошуку одних сутностей за значеннями інших, для чого необхідно встановити між ними визначені зв'язки. Оскільки в реальних базах даних нерідко містяться сотні або навіть тисячі сутностей, то теоретично між ними може бути встановлено більше мільйона зв'язків. Наявність такої кількості зв'язків і визначає складність інфологічних моделей.
3.2. ER-діаграми
При побудові інфологічних моделей можна використовувати мову ER-діаграм (від англ. Entity-Relationship, тобто діаграми "сутність-зв'язок"). У них сутності зображуються прямокутниками, асоціації — ромбами або шестикутниками, атрибути — овалами, а зв'язки між ними — ненаправленими ребрами, над якими може бути проставлена ступінь зв'язку (1 або буква, що замінює слово "багато") і необхідне пояснення (рис. 2).
Рис.
2. Елементи розширеної мови ER-діаграм
3.3. Види зв'язків між сутностями
Між двома сутностями, наприклад, А і В, можливі чотири види зв'язків.
Перший тип зв'язку — ОДИНДО-ОДНОГО (1: 1): у кожний момент часу кожному екземпляру сутності А відповідає 1 або 0 екземплярів сутності В:
Студент може не отримувати стипендію, одержувати звичайну або одну з підвищених стипендій.
Другий тип зв'язку — ОДИН-ДО-БАГАТЬОХ (1: М): одному представнику сутності А відповідають 0, 1 або декілька екземплярів сутності В.
Квартира може бути порожньою, у ній може жити один або декілька мешканців.
Оскільки між двома сутностями можливі зв'язки в обох напрямках, то існує ще два типи зв'язку — БАГАТО ДО-ОДНОГО (М : 1) і БАГАТО-ДО-БАГАТЬОХ (М : N).
Приклад 1. Якщо зв'язок між сутностями ЧОЛОВІКИ і ЖІНКИ називається ШЛЮБ, то існує чотири можливих представлення таких зв'язків (рис. 3).
Рис.
3. Приклади зв'язків між сутностями
ЧОЛОВІКИ
і
ЖІНКИ
1. Множина зв'язків між тими самими сутностями (пацієнт, маючи одного лікаря, може мати також декілька лікарів-консультантів; лікар може лікувати декілька пацієнтів і може одночасно консультувати декілька інших пацієнтів).
2. Трінарні зв'язки (лікар може призначити декільком пацієнтам здати декілька аналізів, аналіз може бути призначений декількома лікарями декільком пацієнтам і пацієнт може бути призначений на декілька аналізів декількома лікарями).
3. Зв'язки більш високих порядків, зміст яких іноді дуже складний.
3.4. Мова інфологічного моделювання
У наведених вище прикладах для підвищення ілюстративності аналізованих зв'язків не показані атрибути сутностей і асоціацій у всіх ER-діаграмах. Так, введення лише декількох основних атрибутів в опис шлюбних зв'язків значно ускладнить відповідну ER-діаграму (рис. 4).
Рис.
4. ER-діаграма шлюбних зв'язків з атрибутами
У зв'язку з цим мова ER-діаграм використовується для побудови невеликих моделей та ілюстрації окремих фрагментів великих. Частіше ж застосовується менш наочна, але більш змістовна мова інфологічного моделювання (МІМ), у якій сутності й асоціації представляються виразами такого вигляду:
СУТНІСТЬ (атрибут 1, атрибут 2,,.., атрибут n)
АСОЦІАЦІЯ (СУТНІСТЬ S1, СУТНІСТЬ S2, …)
де — ступінь зв'язку, а атрибути, що входять у ключ, повинні бути позначені за допомогою підкреслення.
Так, розглянутий вище приклад множини зв'язків між сутностями, може бути описаний на МІМ у такий спосіб:
Лікар (Номер_лікаря, Прізвище, Ім'я, По батькові, Фах)
Пацієнт (Реєстраційний_номер, Номер_ліжка, Прізвище, Ім’я, По-батькові, Адреса, Дата_народження, Стать)
Лікуючий лікар [Лікар 1, Пацієнт М] (Номер лікаря. Реєстраційний номер) Консультант [Лікар: М, Пацієнт N] (Номер_ лікаря, Реєстраційний номер).
Для виявлення зв'язків між сутностями необхідно як мінімум, визначити самі сутності. Але це не просте завдання, тому що в різних предметних галузях той самий об'єкт може бути сутністю, атрибутом або асоціацією. Проілюструємо таке твердження на прикладах, пов'язаних з описом шлюбних зв'язків (див. приклад 1).
Приклад 2. Відділ записів актів громадянського стану (ЗАГС ) має справу не з усіма людьми, а тільки з тими, хто звернувся з проханням про реєстрацію шлюбу, народження або смерті. Тому в країнах, де допускаються лише традиційні шлюби, відділи ЗАГС можуть розміщувати дані про зареєстровані шлюби у єдиній сутності (ER-діаграма якої приведена на рис. 5):
Шлюб (Номер свідоцтва, Прізвище_чоловіка, Ім'я_чоловіка, По батькові чоловіка, Дата_народження_чоловіка, Прізвище_дружини, Дата_реєстрації, Місце_реєстрації, …)
Рис.
5. ER-діаграма традиційних шлюбних
зв'язків
Приклад 3. Тепер розглянемо ситуацію, коли відділ реєстрації шлюбного стану розташований у країні, що дозволяє багатоженство. Якщо для реєстрації шлюбів використовувати сутність ШЛЮБ попереднього прикладу, то будуть дублюватися дані про чоловіків, що мають декілька дружин. Такого дублювання можна уникнути шляхом створенням додаткової сутності ЧОЛОВІКИ:
Чоловіки (Код_М, Прізвище, Ім’я, По-батькові, Дата_народження, Місце народження)
і заміною сутності ШЛЮБ характеристикою з посиланням на відповідний опис у сутності ЧОЛОВІКИ (ER-діаграма зв'язку цих сутностей показана на рис. 6):
Шлюб (Номер свідоцтва, Код_М. Прізвище дружини …, Дата реєстрації. ...){Чоловіки}.
Рис.
6.
ER-діаграма шлюбних зв'язків з можливим
багатоженством
Співробітники (Табельний_номер, Прізвище, Ім'я, ..,).
У сутності СПІВРОБІТНИКИ вже є прізвища, імена, по батькові чоловіків, тому створимо асоціацію, що зв'язує між собою визначені екземпляри сутності СПІВРОБІТНИКИ (рис. 7):
Шлюб [Співробітник 1, Співробітник 1]
(Табельний_номер_чоловіка. Табельний_номер_дружини, ....)
Рис.
7.
ER-діаграма шлюбних зв'язків на фірмі
Зазначимо, що ER-діаграма рис. 3 описує структуру розміщення даних про шлюби у відділах ЗАГС країн, що допускають групові шлюби, а ER-діаграми останнього прикладу — описи будь-яких видів шлюбів в організаціях, де є сутності ЧОЛОВІКИ і ЖІНКИ, що включають неодружених і незаміжніх.
Зв'язком у ER-діаграмах виступає лінія, що з'єднує геометричні фігури, які зображують сутності, атрибути, асоціації іі інші інформаційні об'єкти. У тексті ж цей термін використовується для вказівки на взаємозалежність сутностей. Якщо ця взаємозалежність має атрибути, то вона називається асоціацією.
