
- •Лекція 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
Простий атрибут - атрибут, що складається з одного компонента з незалежним існуванням.
Прості атрибути не можуть бути розділені на більш дрібні компоненти. Прикладами простих атрибутів є атрибут статі (Sex) чи зарплати (Salary) працівника. Прості атрибути іноді називають атомарними.
Складений атрибут - атрибут, що складається з декількох компонентів, кожний з який характеризується незалежним існуванням.
Деякі атрибути можуть бути розділені на більш дрібні компоненти, що характеризуються незалежним існуванням. Наприклад, атрибут адреси (Address) сутності, що представляє відділення компанії, (Branch) зі значенням '163 Main St, Partick, Glasgow, Gil 9QX' може бути розбитий на окремі атрибути вулиці (Street) зі значенням '163 Main Sf, району (Area) зі значенням 'Partick', міста (City) зі значенням 'Glasgow' і поштового індексу (Postcode) зі значенням 'Gil 9QX'.
Рішення про моделювання атрибута Address у виді простого атрибута чи розбивці його на атрибути Street, Area, City і Postcode залежить від того, як розглядається атрибут Address у користувальницькому представленні - як єдине ціле чи як набір окремих компонентів.
Однозначний атрибут - атрибут, що містить одне значення для однієї сутності.
Більшість атрибутів типів сутностей є однозначними для кожного окремого екземпляра цієї сутності. Наприклад, сутність Branch завжди має єдине значення в атрибуті номера відділення компанії (Branch No), наприклад 'ВЗ'. Тому атрибут Branch_No є однозначним.
Багатозначний атрибут - атрибут, що містить кілька значень для однієї сутності.
Деякі атрибути можуть мати кілька значень для однієї сутності. Наприклад, сутність Branch може мати кілька значень для атрибута номера телефону відділення компанії (Tel_No), наприклад: '0171-886-1212' і '1231-111-1233'. Отже, атрибут Tel_No в цьому випадку буде багатозначним. Багатозначний атрибут допускає присутність визначеної кількості значень (можливо, у заданих межах - максимальній і мінімальній кількості). Наприклад, атрибут Tel_No відділення компанії може мати від одного до десяти значень. Іншими словами, будь-яке відділення компанії повинне мати мінімум один номер телефону і максимум десять власних телефонних номерів.
Похідний атрибут - атрибут, що представляє значення, похідне від значення зв'язаного з ним атрибута чи деякої безлічі атрибутів, що належать якомусь (не обов'язково даному) типу сутності.
Деякі атрибути можуть бути зв'язані з визначеною сутністю. Наприклад, вік співробітника (Аge) є величиною, похідною від його дати народження (DOB), і тому атрибути Аge і DOB є зв'язаними. Причому атрибут Аge є похідним атрибутом, значення якого обчислюється на підставі значення атрибута DOB.
У деяких випадках значення атрибута є похідним від багатьох сутностей того самого типу сутності. Наприклад, атрибут загальної кількості співробітників відділення компанії (Total_Staff) сутності типу Staff (Працівник) може бути обчислений на основі підрахунку кількості сутностей Staff.
Похідні атрибути можуть також обчислюватися на основі декількох взаємозалежних атрибутів різних сутностей. Наприклад, розглянемо атрибут Deposit (Задаток) сутності Rental_Agreement (Договір на оренду). Значення задатку зв'язане з договором оренди (сутність Rental_Agreement) і обчислюється як подвоєна місячна плата за оренду даного об'єкта нерухомості. Отже, значення атрибута Deposit сутності Rental_Agreeaient обчислюється на основі атрибута Rent (Орендна плата) сутності Rental_Agreement.
Ключі
Під. ключем мається на увазі елемент даних, що дозволяє унікально ідентифікувати окремі екземпляри деякого типу сутності. Розглянемо більш строге визначення ключа.