Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОРГАНІЗАЦІЯ БАЗ ДАНИХ.doc
Скачиваний:
4
Добавлен:
22.08.2019
Размер:
903.17 Кб
Скачать

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-діаграма шлюбних зв'язків з можливим багатоженством

Приклад 4. Нарешті, розглянемо випадок, коли якійсь організації знадобилися дані про наявність у неї сімейних пар, а для збереження даних про співробітників вже є сутність

Співробітники (Табельний_номер, Прізвище, Ім'я, ..,).

У сутності СПІВРОБІТНИКИ вже є прізвища, імена, по батькові чоловіків, тому створимо асоціацію, що зв'язує між собою визначені екземпляри сутності СПІВРОБІТНИКИ (рис. 7):

Шлюб [Співробітник 1, Співробітник 1]

(Табельний_номер_чоловіка. Табельний_номер_дружини, ....)

Рис. 7. ER-діаграма шлюбних зв'язків на фірмі

Зазначимо, що ER-діаграма рис. 3 описує структуру розміщення даних про шлюби у відділах ЗАГС країн, що допускають групові шлюби, а ER-діаграми останнього прикладу — описи будь-яких видів шлюбів в організаціях, де є сутності ЧОЛОВІКИ і ЖІНКИ, що включають неодружених і незаміжніх.

Зв'язком у ER-діаграмах виступає лінія, що з'єднує геометричні фігури, які зображують сутності, атрибути, асоціації іі інші інформаційні об'єкти. У тексті ж цей термін використовується для вказівки на взаємозалежність сутностей. Якщо ця взаємозалежність має атрибути, то вона називається асоціацією.