- •Лекція 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
Категоризація типів сутностей
Нарешті, розглянемо можливість категоризації сутностей, описаних у специфікації вимог менеджера. Так само як і у випадку спеціалізації/генералізації, до визначеного ступеня спосіб реалізації цієї можливості носить чисто суб'єктивний характер. Розглянемо всі сутності ще раз, щоб зрозуміти, чи існує така вимога, відповідно до якого потрібно створити деякий підклас (категорію), що буде зв'язаний з декількома різними суперкласами.
Потенційними кандидатами для категоризації є сутності, включені в спеціалізацію/генералізацію, а саме - суперклас Staff і підкласи Manager і Supervisor, а також суперклас Owner і підкласи Private Owner і Business Owner. Однак, як уже згадувалося вище, спеціалізацію/генералізацію краще використовувати у випадках, коли сутності мають той самий тип, причому мають загальні атрибути, включаючи однаковий первинний ключ. Приймаючи це в увагу, ми залишимо ці два приклади спеціалізації/генералізації такими, як вони є і як вони показані на мал. 5.1.
Створення розширеної діаграми „сутність-зв’язок"
На основі приведених у розділі 5.1.1 специфікацій вимог користувачі Manager, можна створити EER-модель даних для цього типу користувача проекту DreamHome (у такому виді, як вона показана на мал. 5.1).
Резюме
Тип сутності - це об'єкт чи поняття, що характеризується незалежним існуванням (з погляду даної організації). Сутністю називається окремий екземпляр типу сутності, що може бути ідентифікований унікальним образом.
Слабкий тип сутності - це сутність, існування якої залежить від іншої сутності, а сильний тип сутності - це сутність, існування якої не залежить ні від якої іншої сутності.
Атрибутом називається властивість типу сутності чи типу зв'язку.
Домен атрибута являє собою безліч значень, що можуть бути привласнені даному атрибуту.
Простий атрибут складається з одного компонента, що характеризується незалежним існуванням.
Складений атрибут складається з декількох компонентів, кожний з яких характеризується незалежним існуванням.
Однозначний атрибут - це атрибут, що містить по одному значенню для кожної сутності.
Багатозначний атрибут - це атрибут, що містить кілька значень для кожного екземпляра сутності.
Похідним атрибутом називається атрибут, що містить значення, що обчислюється на основі значення зв'язаного з ним атрибута чи безлічі атрибутів, причому не обов'язково з тієї ж сутності.
Потенційним ключем називається атрибут чи набір атрибутів, що унікальним образом ідентифікують окремі екземпляри типу сутності.
Первинним ключем називається деякий обраний потенційний ключ сутності.
Складеним ключем є потенційний ключ, що складається з двох і більше атрибутів.
Типом зв'язку називається набір осмислених асоціацій між типами сутностей.
Зв'язком називається сукупність сутностей, що включає по одній сутності від кожного типу сутності, що приймають участь у даному зв'язку.
Ступенем типу зв'язку називається кількість сутностей-учасників даного зв'язку.
Рекурсивним зв'язком називається зв'язок, у якій та сама сутність, бере участь кілька разів у різних ролях. Рольові імена використовуються для визначення функції кожної сутності, охопленою даним зв'язком.
Показник кардинальності описує кількість можливих зв'язків для кожної сутності-учасниці.
Ступінь участі визначає, чи буде існування сутності залежати від зв'язку з деякою іншою сутністю.
Пастка розгалуження виникає, якщо в моделі даних представлений деякий зв'язок між типами сутностей, але шлях між деякими екземплярами сутності визначений неоднозначно.
Пастка розриву виникає, коли в моделі передбачається зв'язок між типами сутностей, але не існує ніякого шляху між деякими екземплярами сутностей.
Суперкласом називається тип сутності, що містить різні підкласи, що потрібно представити в даній моделі даних. Підкласом називається тип сутності, що відіграє окрему роль і є членом суперкласу.
Спеціалізація - це процес виявлення максимально можливої кількості розходжень між членами сутності шляхом виділення їхніх різних рис.
Генералізація - це процес виявлення мінімально можливої кількості розходжень між членами сутності шляхом виділення їхніх загальних рис.
Категоризацією називається процес моделювання єдиного підкласу зі зв'язком, що охоплює кілька суперкласів.