- •Лекція 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
Ступінь зв'язку - кількість сутностей, що охоплені даним зв'язком.
Охоплені деяким зв'язком сутності називаються учасниками цього зв'язку. Кількість учасників деякого зв'язку називається ступенем (degree) цього зв'язку. Отже, ступінь зв'язку вказує на кількість типів сутностей, охоплених даним зв'язком. Зв'язок зі ступенем два називається бінарним (binary). Прикладом бінарного зв'язку є зв'язок Owns із двома учасниками: Owner і Property_for Rent. ER-діаграма показано на мал. 5.6.
Зв'язок зі ступенем три називається тернарним (ternary). Прикладом такого зв'язку є зв'язок SetsUp із трьома учасниками: Client, Staff і Interview. Призначення цього зв'язку складається в представленні ситуації, коли співробітник відповідає за організації інтерв'ю з клієнтом. Діаграма тернарного зв'язку SetsUp показана на мал. 5.7.
З
в'язок
зі ступенем чотири називається
кватернарним (quaternary). Прикладом
кватерпарного зв'язку є зв'язок Arranges
з чотирма сутностями-учасниками: Byers
(Покупець), Solicitor (Довірена особа).
Financial Institution (Фінансовий орган) i Bid
(Пропозиція). Цей зв'язок представляє
ситуацію, коли покупець за допомогою
довіреного обличчя і за підтримкою
фінансового органа виражає свій намір
придбати об'єкт нерухомості. Діаграма
кватернарного зв'язку
Arranges показана на мал. 5.8.
Рекурсивний зв'язок - зв'язок, у якому ті самі сутності беруть участь кілька разів і в різних ролях.
Розглянемо рекурсивний зв'язок Supervises, що представляє взаємозв'язок персоналу з керуючим, що також входить до складу персоналу. Інакше кажучи сутність Staff двічі бере участь у зв'язку Supervises: перший раз - у якості керуючого, а другий - як співробітника, яким керують. Рекурсивні зв'язки іноді називаються унарними (unary).
Зв'язкам можуть привласнюватися рольові імена - для вказівки призначення кожної сутності - учасниці даного зв'язку. Рольові імена мають велике значення в рекурсивних зв'язках (при визначенні функцій кожного учасника). На мал. 5.9 показаний приклад використання рольових імен у рекурсивному зв'язку Supervises. Перша участь сутності Staff одержало назву Інспектор (Supervisor), а друге — Підлеглий (Supervisee).
Рольові імена можуть також використовуватися, коли дві сутності зв'язані декількома зв'язками. Наприклад, сутності Staff і Branch зв'язані двома різними зв'язками - Manages і IsAllocated. Як показано на мал. 5.10, використання рольових імен істотно проясняє призначення кожного зв'язку. Наприклад, у випадку, коли сутність Staff зв'язана із сутністю Branch зв'язком Manages, співробітник (сутність Staff) з рольовим ім'ям Керівник (Manager) керує (зв'язок Manages) відділенням компанії з рольовим ім'ям Відділення компанії (Branch Office). Аналогічно, коли сутність Branch зв'язана із сутністю Staff зв'язком IsAllocated, те співробітник з рольовим ім'ям Працівник (Member of Staff) є приписаним до відділення компанії з рольовим ім'ям Відділення компанії (Branch Office).
Рольові імена звичайно не вимагаються, якщо функції сутностей - учасниць даного зв'язку визначені недвозначно.
