
- •Лекція 5. Модель “Сутність – зв’язок”
- •5.1. Концепції er-моделі
- •5.1.1. Типи сутностей Типи сутностей - об'єкт чи концепція, що характеризуються на даному підприємстві які мають незалежне існування.
- •Сутність - екземпляр типу сутності, що може бути ідентифікований унікальним образом.
- •Слабкий тип сутності - тип сутності, існування якого, залежить від якогось іншого типу сутності. Сильний тип сутності - тип сутності, існування якого не залежить від якогось іншого типу сутності.
- •Способи представлення сутностей на діаграмі
- •5.1.2. Атрибути Атрибут - властивість типу сутності чи типу зв'язку.
- •Домен атрибута - набір значень, що можуть бути привласнені атрибуту.
- •Простий атрибут - атрибут, що складається з одного компонента з незалежним існуванням.
- •Складений атрибут - атрибут, що складається з декількох компонентів, кожний з який характеризується незалежним існуванням.
- •Однозначний атрибут - атрибут, що містить одне значення для однієї сутності.
- •Багатозначний атрибут - атрибут, що містить кілька значень для однієї сутності.
- •Похідний атрибут - атрибут, що представляє значення, похідне від значення зв'язаного з ним атрибута чи деякої безлічі атрибутів, що належать якомусь (не обов'язково даному) типу сутності.
- •Потенційний ключ - атрибут чи набір атрибутів, що унікально ідентифікує окремі екземпляри типу сутності.
- •Первинний ключ - потенційний ключ, що обраний як первинний ключ.
- •Складений ключ – потенційний ключ, що складається з двох чи більше атрибутів.
- •Представлення атрибутів на діаграмах
- •5.1.3. Типи зв'язків Тип зв'язку - осмислена асоціація між сутностями різних типів.
- •Зв'язок - асоціація між сутностями, що включає по одній сутності з кожного типу, що бере участь у зв'язку сутності.
- •Представлення зв'язків на діаграмах
- •Ступінь зв'язку - кількість сутностей, що охоплені даним зв'язком.
- •Рекурсивний зв'язок - зв'язок, у якому ті самі сутності беруть участь кілька разів і в різних ролях.
- •5.1.4. Атрибути зв'язків
- •5.2. Структурні обмеження
- •5.2.1. Показник кардинальності Показник кардинальності описує кількість можливих зв'язків для кожної із сутностей учасниць.
- •Зв'язку „один до одного"
- •З в'язок „один до багатьох"
- •Зв'язку "багато до багатьох"
- •5.2.2. Ступінь участі Ступінь участі визначає, чи залежить існування деякої сутності від участі в зв'язку деякої іншої сутності.
- •5.3. Проблеми er-моделювання
- •5.3.1. Пастки розгалуження Пастка розгалуження має місце в тому випадку, коли модель відображає зв'язок між типами сутностей, але шлях між окремими сутностями цього типу визначений неоднозначно.
- •5.3.2. Пастки розриву Пастка розриву з'являється в тому випадку, коли в моделі передбачається наявність зв'язку між типами сутностей, але не існує шляху між окремими сутностями цих типів.
- •5.4.1. Суперкласи і підкласи типів сутностей
- •Суперклас - тип сутності, що включає різні підкласи, які необхідно представити в моделі даних. Підклас - тип сутності, що виконує окрему роль, а також є членом суперкласу.
- •5.4.2. Спадкування атрибутів
- •5.4.3. Спеціалізація Спеціалізація - процес збільшення розходжень між окремими членами типу сутності за рахунок виділення їхніх відмінних характеристик.
- •5.4.4. Генералізація Генералізація - процес зведення розходжень між сутностями до мінімуму шляхом виділення їхніх загальних характеристик.
- •5 .4.5. Обмеження, що накладаються на процедури спеціалізації і генералізації
- •5.4.6. Категоризація Категоризація - моделювання одного підкласу зі зв'язком, що охоплює кілька різних суперкласів.
- •5.5. Створення eer-моделі для представлення користувача Manager з навчального проекту DreamHome
- •5.5.1. Специфікації вимог для представлення користувача Manager
- •5.5.2. Створення eer-моделі
- •Визначення типів сутностей
- •Визначення типів зв'язків
- •Визначення показника кардинальності і ступеня участі сторін для типів зв'язків
- •Визначення атрибутів і зв'язування їх з типами сутностей і зв'язків
- •Визначення атрибутів, що є потенційними і первинними ключами
- •Чи спеціалізація генералізація типів сутностей
- •Категоризація типів сутностей
- •Створення розширеної діаграми „сутність-зв’язок"
- •Питання
- •Вправи Навчальний проект University Accommodation Office
5.1.3. Типи зв'язків Тип зв'язку - осмислена асоціація між сутностями різних типів.
Тип зв'язку (relationship type) є набором асоціацій між двома (чи більше) типами сутностей-учасників. Кожному типу зв'язку привласнюється ім'я, що повинне описувати його функцію. Наприклад, сутність Owner (Власник) зв'язана із сутністю Property_for_Rent (Об'єкт нерухомості) за допомогою зв'язку Owns (володіє).
Як і у випадку сутностей, тут варто розрізняти поняття "зв'язок" і "тип зв'язку".
Зв'язок - асоціація між сутностями, що включає по одній сутності з кожного типу, що бере участь у зв'язку сутності.
Кожен унікально идентифікуємий екземпляр типу зв'язку ми будемо називати просто зв'язком. Зв'язки вказують на окремі екземпляри сутностей, поєднувані ними. Інші автори називають це поняття екземпляром зв'язку (relationship occurrence чи relationship instance). У даній лекції використовуються тільки терміни "тип зв'язку" і "зв'язок". Як і при описі поняття "сутність", термін "зв'язок" може використовуватися в більш загальному змісті, там, де цей зміст очевидний.
Зв'язок IsAllocated (Приписаний к) указує на взаємозв'язок між сутностями Branch і Staff, а кожен окремий екземпляр зв'язку IsAllocated зв'язує одну сутність Branch з однією сутністю Staff. На окремі елементи зв'язку IsAllocated представлені на діаграмі (мал. 5.4), що називається семантичною мережею. Семантична мережа є об'єктною діаграмою, у якій символ • представляє сутності, а символ " - зв'язку.
Для
спрощення діаграми семантичної мережі
на мал. 5.4 показані тільки деякі а
трибути
сутностей Branch і Staff. Так, тут показані
тільки три атрибути типу сутності Branch
— Branch_No - Address і Tel_No, і три атрибути для
сутності Staff - Staff_No, Address і DOB. Причому
кожен атрибут містить значення зі
зв'язаного з ним домену (наприклад,
значення атрибута Branch_No сутності b1 типу
Branch дорівнює 'ВЗ').
Н
а
діаграмі показані три зв'язки (м1, м2 і
м3), що описують взаємозв'язок сутностей
Branch і Staff. Ці зв'язки представлені лініями,
що з'єднують кожну сутність Branch з кожною
сутністю Staff. Наприклад, зв'язок м1
зображує взаємозв'язок сутностей b1 типу
Вгапсh і s1 типу Staff.
Я
кщо
вся корпоративна структура була б
представлена за допомогою семантичних
мереж, то через надлишковий ступінь
деталізації її було б важко зрозуміти.
Зв'язку між сутностями корпорації можна
представити в більш простій формі - у
виді ER-моделі. Приклад високорівневого
представлення зв'язку IsAllocated з
використанням концепцій ER-моделювання
показаний на мал. 5.5.
Представлення зв'язків на діаграмах
Кожен зв'язок зображується у виді ромбика з зазначеному на ньому ім'ям зв'язку. Ромбик має подвійний контур, якщо зв'язок з'єднує слабку сутність із сильною сутністю, від якої ця слабка сутність залежить. На мал. 5.5 взаємозв'язок між сутностями Branch і Staff представлена за допомогою зв'язку IsAllocated, а між сутностями Next_of_Kin і Staff - за допомогою зв'язку RelatedTo. Зв'язок RelatedTo показаний у виді ромбика з подвійним контуром, що вказує на те, що вона встановлена між слабкою (Next_of_Kin) і сильної (Staff) сутностями.
Для зниження рівня деталізації на окремій ER-діаграмі часто вказуються тільки ті атрибути, що представляють первинні ключі зображених сутностей, а в деяких випадках атрибути не відображаються зовсім. Наприклад, на мал. 5.5 представлені тільки ті атрибути, що є первинними ключами сильних сутностей, а саме: Staff _No і Branch_No.