
- •Лекція 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.4.6. Категоризація Категоризація - моделювання одного підкласу зі зв'язком, що охоплює кілька різних суперкласів.
Кожен зв'язок "суперклас/підклас" (включаючи спільно використовувані підкласи) в ієрархії спеціалізації/генералізації володіє єдиним і відмінним від інших суперкласом. Наприклад, спільно використовуваний підклас Sales_Trainee (див. мал. 5.30) має два різні зв'язки типу "суперклас/підклас", кожен з який включає єдиний суперклас. Однак у деяких ситуаціях може знадобитися змоделювати зв'язок "суперклас/підклас", що включає відразу кілька різних суперкласів. У цьому випадку створюваний підклас буде називатися категорією (category) (Elmasri, 1994).
Наприклад, на мал. 5.31 показані дві категорії Property_Owner і Property. Категорія Property_0wner зв'язана з двома суперкласами з різними типами сутності, а саме з Person і Business. Категорія Property зв'язана з двома іншими, але також різними суперкласами, а саме з Property_for_Sale і Property for_Rent. Лінія, що з'єднує підклас-категорію з кружком категоризації, позначається символом приналежності безлічі (с), а в кружок категоризації міститься символ об'єднання (і).
Підклас категорії має вибіркове спадкування (selective inheritance). Це означає, що кожен екземпляр сутності категорії успадковує атрибути тільки одного суперкласу. Наприклад, на мал. 5.31 кожна сутність типу Property_Owner може успадковувати атрибути тільки суперкласу Person (Name, Address і Tel No)) чи тільки суперкласу Business (BName, BAddress, Tel No і Fax No).
Як і операція спеціалізації/генералізації, операція категоризації може бути додатково деталізована з обліком повної чи часткової участі Сторін. При повній участі кожен екземпляр усіх суперкласів повинний бути представлений у даній категорії, що позначається подвійною лінією, що з'єднує підклас-категорію з кружком категоризації. При частковій участі це обмеження усувається і всім екземплярам усіх суперкласів бути присутнім у даній категорії не обов'язково, що позначається одинарною лінією, що з'єднує підклас-категорію з кружком категоризації. Наприклад, категорія Property_0wner характеризується частковою участю, тому що не всі екземпляри суперкласів Person і Business повинні бути представлені в цій категорії. У той же час категорія Property характеризується повною участю, оскільки кожен член суперкласів Property_for_Sale і Property_for_Rent є членом цієї категорії.
Я
кщо
категорія характеризується повною
участю (наприклад, як категорія Property),
то існує можливість представлення
сутностей за допомогою операцій
спеціалізації/генералізації. Хоча вибір
конкретного використовуваного варіанта
залишається за розроблювачем, проте
операції спеціалізації/генералізації
доцільніше застосовувати для представлення
сутностей одного типу, щоб вони могли
спільно використовувати найбільшу
кількість атрибутів, включаючи первинний
ключ. Таким чином, представлення сутності
Property_0wner вигідніше зберігати у виді
категорії, а представлення сутності
Property ефективніше здійснювати за допомогою
засобів спеціалізації/генералізації
- як показане на мал. 5.32.