
- •Лекція 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.4. Атрибути зв'язків
А
трибути,
описані в розділі 5.1. можуть також
належати зв'язкам. Розглянемо як приклад
зв'язок Views між сутностями Client і
Ргорerty_for_Rent. Допустимо, що потрібно
фіксувати дату перегляду об'єкта
нерухомості клієнтом, а також записувати
коментарі, зроблені клієнтом у ході
огляду цієї нерухомості. Дана інформація
скоріше відноситься до зв'язку Views, чим
до сутності Client чи Property_for_Rent.
Як показано на мал. 5.11, для збереження
цих зведень зв'язку Views привласнюються
атрибути Date_View (Дата перегляду) і Comments
(Коментарі).
Наявність у зв'язку одного чи декількох атрибутів може свідчити про те, що цей зв'язок ховає деяку невизначену сутність. Наприклад, наявність атрибутів Date View і Comments у зв'язку Views може свідчити про наявність деякої сутності з ім'ям Viewing (Перегляд).
5.2. Структурні обмеження
Розглянемо тепер обмеження, що можуть накладатися на сутності - учасниці деякого зв'язку. По суті, вони є відображенням визначених вимог реального світу. Прикладами таких обмежень є вимоги, щоб об'єкт нерухомості мав власника й у кожнім відділенні компанії був деякий персонал. Основними двома типами обмежень, що накладаються на зв'язку, є її кардинальність (cardinality) і ступінь участі (participation).
5.2.1. Показник кардинальності Показник кардинальності описує кількість можливих зв'язків для кожної із сутностей учасниць.
Найбільш розповсюдженими є бінарні зв'язки з показниками кардинальності "один до одного" (1:1), "один до багатьох" (1:М) і "багато до багатьох" (M:N).
Показники кардинальності зв'язків між сутностями визначаються насамперед виробничими правилами, установленими на даному підприємстві. Правила, що визначають показники кардинальності, називаються бізнес правилами (business rules) організації. Важливою частиною моделювання процесів функціонування підприємства є виділення й облік усіх (без винятку) існуючих у ньому бізнес правил. На жаль, не всі існуючі типи бізнес правил можуть бути представлені за допомогою ER-моделі. Прикладом подібний бізнес правила є розпорядження про те, що будь-який співробітник одержує додатковий вихідний день за кожен відпрацьований у даній корпорації рік.
Зв'язку „один до одного"
Розглянемо бінарний зв'язок Manages, що існує між сутностями Staff і Branch. На мал. 5.12 цей зв'язок представлений за допомогою семантичної мережної моделі (див. роздягнув 5.1.3). Зверніть увагу на те, що в цьому розділі для спрощення на семантичних мережних моделях показані тільки деякі з атрибутів, зв'язаних з кожною представленою сутністю.
На семантичній мережній моделі, представленої на мал. 5.12, відображені окремі екземпляри зв'язку Manages між сутностями Staff і Branch. Наприклад, співробітниця з ім'ям 'Susan Brand '(sl) є менеджером ('Manager') відділення компанії з номером 'ВЗ' (b1), розташованим у Глазго ('Glasgow'), а співробітник з ім'ям 'John White' (s3)-менеджером ('Manager') відділення компанії з номером 'У5' (b2), розташованим у Лондоні ('London').
Крім того, з мал. 5.12 видно, що співробітниця з ім'ям 'Ann Beech' (s2) не є менеджером, а тому вона не охоплена зв'язком Manages. Однак при визначенні показника кардинальності деякого зв'язку варто враховувати тільки ті сутності, що охоплюються даним зв'язком. Залучення сутності в даний зв'язок називається ступенем участі сутності. Ця тема більш докладно розглядається в наступному розділі.
Із семантичної мережної моделі зв'язку Manages випливає, що одна сутність типу Staff (менеджер) зв'язана з єдиною сутністю типу Branch (Відділення компанії). Тому зв'язок Manages є зв'язком типу "один до одному" (1:1). Інакше кажучи, показник кардинальності зв'язку Manages дорівнює 1:1. Кардинальність цього зв'язку підтверджується бізнес правилом, що його представляє.
E
R-діаграма
зв'язку Manages між сутностями Staff і
Branch показана на мал. 5.13. Як правило,
учасники кожного зв'язку на ER-діаграмі
з'єднуються лініями з мітками 1, М
чи N, що визначають показник кардинальності
цього зв'язку.