
- •Лекція 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.5.2. Створення eer-моделі
У даному розділі приводиться приклад створення EER-моделі, показаної на мал. 5.1. Ця модель відбиває представлення користувача Manager з навчального проекту DreamHome. Приведені нижче етапи створення моделі передбачені методологією концептуального проектування баз даних, що більш докладно описується в главі 7, "Методологія концептуального проектування баз даних".
Визначення типів сутностей
Почнемо роботу з визначення основних сутностей у специфікації вимог менеджера. Як правило, у специфікаціях користувачів вони присутні у виді іменників чи іменних груп і в даному випадку включають наступне:
Branch (Відділення) Private_0wner (Приватний" власник)
Staff (Персонал) Business_pwner (Фірма-власник)
Manager (Менеджер) Renter (Орендар)
Next_of_Kin (Найближчий родич) Viewing (Огляд)
Supervisor (Інспектор) Rental_Agreement (Договір на оренду)
AllocatedStaff (Підлеглий персонал) Advert (Рекламне оголошення)
Property_for_Rent (Об'єкт нерухомості) Newspaper (Газета)
(Зверніть увагу, що сутність Allocated_Staff визначає тих співробітників, що працюють під спостереженням деякого інспектора.)
Визначення типів зв'язків
Тепер варто визначити найважливіші зв'язки, що існують між основними сутностями, що згадуються в специфікації вимог менеджера. Зв'язки звичайно присутні в специфікаціях у виді дієслів чи дієслівних груп. У табл. 5.2 перераховані основні зв'язки, виділені в розглянутих тут специфікаціях вимог користувачів.
Для того щоб гарантувати їхня повна відповідність зв'язкам реального світу необхідно ретельно вивчити їх і при виявленні якої-небудь двозначності прояснити ситуацію за допомогою користувачів. Далі варто вказати обмеження кардинальності і ступеня участі сторін для кожного типу зв'язку, представленого в табл. 5.2.
Таблиця 5.2. Основні зв'язки, виділені в специфікації вимог користувача Manager
Тип сутності Тип зв'язку Тип сутності
Branch Isslocated (Належить) Staff
Has (Відповідає за) Property_for_Rent
Staff Oversees (Працює с) Property_for_Rent
RelatedTo (Має) Next_of_Kin
AssignedTo (Відноситься к)Allocated_Staff
Manager Manages (Керує) Branch
Supervisor Supervises (Керує) Allocated_Staff
Property_for_Rent Placedin (Рекламується) Advert
Private_0wner Owns (Володіє) Property_for_Reht
Business Owner Owns (Володіє) Property for Rent
Renter CallsAt (Дзвонить в) Branch
Requests (Запитує) Viewing
Holds (Укладає) Rental Agreement
Viewing Of (Для) Property_for_Rent
Rental_Agreement For (У відношенні) Property__for_Rent
Advert Placedin (Розміщається) Newspaper
Newspaper Displays (Публікує) Advert
Визначення показника кардинальності і ступеня участі сторін для типів зв'язків
Розглянемо спочатку показник кардинальності зв'язку Owns між сутностями Owner і Property_for_Reht. (Зверніть увагу на те, що в даному випадку сутність Owner представляє сутності Private_0wner і Business_0wner.) Один власник може володіти декількома об'єктами нерухомості, а тому співвідношення кардинальності зв'язку Owns - 1:М. Однак, якщо розглянути цей зв'язок з іншої сторони (зв'язок OwnedBy між сутностями Property_for_Rent і Owner), те можна помітити, що кожен об'єкт має одного власника. Отже, співвідношення кардинальності для зв'язку OwnedBy дорівнює 1:1. Як показано на мал. 5.1, на діаграмі цей зв'язок представлений з великим співвідношенням кардинальності (1:М), що існує для зв'язку Owns між сутностями Owner і Property for Rent.
Далі розглянемо ступінь участі сторін зв'язку Owns, що існує між сутностями Owner і Property_for_Rent. Оскільки кожен власник володіє, принаймні, одним об'єктом нерухомості, участь сутності Owner у зв'язку Owns є повним. Якщо розглянути цей зв'язок з іншої сторони (зв'язок OwnedBy між сутностями Property_for_Rent і Owner), то можна помітити, що кожен об'єкт повинний мати одного власника, а тому участь сутності Property_for_Rent у зв'язку OwnedBy також є повним. Ступінь участі сторін у зв'язку Owns між сутностями Owner і Property for Rent на мал. 5.1 позначена подвійною лінією, розташованої по обох сторони від символу зв'язку (ромба).
На мал. 5.1 також представлені показники кардинальності і ступінь участі сторін для всіх інших зв'язків. Читачу рекомендується уважно вивчити кожен елемент цієї EER-діаграми, щоб перевірити свій рівень розуміння способу визначення зв'язків. Зверніть увагу, що в деяких випадках назви зв'язки відрізняються від тих, котрі зазначені в табл. 5.2. Наприклад, зв'язок Of між сутностями Viewing і Property_for_Rent (M:l) замінена зв'язком Takes між сутностями Property for Rent і Viewing (1:М), а зв'язок CallsAt між сутностями Renter і Branch (M:l) замінена зв'язком RefersTo між сутностями Branch і Renter (1:М). Ці зміни відповідають загальноприйнятій угоді про те, що зв'язку варто позначати в напрямку 1:М.