
- •Лекція 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.1. Суперкласи і підкласи типів сутностей
Як вже обговорювалося в попередньому розділі, тип сутності — це безліч сутностей одного типу, наприклад Staff, Branch чи Property for Rent.
Суперклас - тип сутності, що включає різні підкласи, які необхідно представити в моделі даних. Підклас - тип сутності, що виконує окрему роль, а також є членом суперкласу.
У деяких випадках тип сутності може мати кілька різних підкласів. Наприклад, для типу сутності Staff окремі екземпляри цієї сутності можна класифікувати як підтипи Manager, Secretary і Sales Personnel. Інакше кажучи, сутність Staff можна розглядати як суперклас для підкласів Manager, Secretary і Sales Personnel. Зв'язок між суперкласом і будь-яким його підкласом називається зв'язком "суперклас/підклас". Наприклад, зв'язок Staff/Manager є зв'язком типу "суперклас/підклас".
Кожен член підкласу є членом суперкласу. Іншими словами, член підкласу є сутністю суперкласу й у той же час грає власну окрему роль. Зв'язок між суперкласом і підкласом відноситься до типу "один до одного" (1:1). Деякі суперкласи можуть містити підкласи, що перекриваються. Наприклад, співробітник може бути одночасно менеджером (Manager) і торговим агентом (SalesJPersonnel). У цьому прикладі підкласи Manager і Sales_Personnel є підкласами суперкласу, що перекриваються, Staff. Однак не кожен член суперкласу обов'язково повинний бути членом, якого-небудь підкласу - наприклад, це можуть бути рядові співробітники, що не грають якою-небудь особою ролі в організації.
Суперкласи і підкласи можуть використовуватися з метою виключення опису різних типів персоналу з (можливо) різними атрибутами усередині однієї сутності. Наприклад, торгові агенти (Sales Personnel) можуть мати особливі атрибути Car_Aliovance (Компенсація транспортних витрат), Sales Area (Район збуту і т.д. Якщо всі атрибути співробітників і особливі атрибути для виконання окремих робіт будуть описані в одній сутності Staff, те це може привести до появи великої кількості невизначених значень (NULL) атрибутів, що описують окремі види робіт. Очевидно, що підклас Sales_Perspnnel має зазначені загальні атрибути зі зведеннями про інших співробітників - наприклад, таких як Staff_Mo, Name, Address і DOB. Однак саме не використовувані спільно атрибути можуть викликати проблеми при представленні зведень про всіх співробітників за допомогою однієї сутності. Можна також показати зв'язку, що маються тільки для окремих груп працівників (підкласів), але не для всіх співробітників у цілому. Так, підклас Sales_Personnel може мати окремі .зв'язку, що не підходять для всіх співробітників, наприклад зв'язок Re-cluires (Вимагає) між сутностями Sales_Personnei і Car (Автомобіль).
Існує дві причини введення понять суперкласів і підкласів у ER-модель. По-перше, це дозволяє уникнути повторного опису подібних понять, що заощадить час проектувальника і підвищить читабельність ER-діаграм. По-друге, при проектуванні в бази даних включається більше семантичної інформації у формі, більш звичної для багатьох людей. Наприклад, у твердженнях "менеджер Є співробітником" і "квартира Є типом власності" у дуже короткій формі міститься значна семантична інформація.