
- •Лекція 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.2.2. Ступінь участі Ступінь участі визначає, чи залежить існування деякої сутності від участі в зв'язку деякої іншої сутності.
Існує два варіанти участі сутності в зв'язку: повне (total) і часткове (partial). Ступінь участі є повної, якщо для існування деякої сутності потрібно існування іншої сутності, зв'язаної з нею визначеним зв'язком. У противному випадку ступінь участі є часткової. Наприклад, у випадку зв'язку IsAllocated між сутностями Branch і Staff участь сутності Branch у цьому зв'язку є повним, оскільки кожне відділення компанії має деякий персонал. Однак, оскільки деякі працівники (наприклад, торгові агенти) не відносяться ні до якого конкретного відділення компанії, то участь сутності Staff у зв'язку JsAllocated є частковим.
Н
а
мал. 5.18 ці обмеження представлені в
схематичному виді на прикладі зв'язку
IsAllocated між сутностями Branch і Staff.
Повний ступінь участі іноді називають
обов'язковою участю (mandatory), а часткову
- необов'язковим (optional). Учасники
зв'язку з повною участю з'єднується зі
значком зв'язку подвійною лінією, а
учасники зв'язку з частковою участю -
одинарною лінією.
Припустимо
використання і альтернативного варіанту
позначень структурних обмежень, що
накладаються на деякий зв'язок, що
передбачає відображення максимальних
(Мах) і мінімальних (Min) значень у виді
напису (Min, Max) над лінією з'єднання, що
позначає участь сутності в даному
зв'язку. Наприклад, на мал. 5.19 ці позначення
застосовані у відношенні зв'язку
IsAllocated між сутностями Branch і Staff.
Подібна система позначень корисна тим,
що іноді дозволяє відобразити більше
інформації про ступінь участі сторін
для даного зв'язку. Наприклад, позначення
(5, N) між сутністю Branch і зв'язком IsAllocated
(див. мал. 5.19) указує, що в кожнім відділенні
компанії працює, принаймні, 5 співробітників
(Min 6), а максимальна їхня кількість
не обмежена (Max = N). Аналогічно, позначення
(0, 1) між сутністю Staff і зв'язком IsAllocated
указує, що співробітник не обов'язково
працює в якомусь з відділень компанії
(Min = 0), але працювати одночасно в декількох
відділеннях він не може (Мах =1). Таку
інформацію не можна одержати т
ільки
на основі показника кардинальності.
5.3. Проблеми er-моделювання
У цьому розділі розглядаються деякі проблеми, що можуть мати місце при розробці концептуальної моделі даних. Ці проблеми, що прийнято називати пастками з'єднання (connection trap), звичайно виникають унаслідок неправильної інтерпретації змісту деяких зв'язків. Ми розглянемо два основних типи пасток з'єднання: пастку розгалуження (fan trap) і пастку розриву (chasm trap), а також укажемо способи ідентифікації й усунення цих проблем у створюваних ER-моделях. Тут, однак, слід зазначити, що дуже важливо завжди перевіряти модель даних на наявність потенційних пасток з'єднання, оскільки в одних випадках це може мати лише незначні наслідки, тоді як в інші - для усунення пасток може знадобитися виконати перебудову всієї концептуальної моделі.
У загальному випадку для виявлення пасток з'єднання необхідно гарантувати, що зміст кожного зв'язку чітко і ясно визначений. При недостатнім розумінні суті встановлених зв'язків можна побудувати модель, що не буде істинним представленням реального світу.