
- •Лекція 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.2. Спадкування атрибутів
Як згадувалося вище, сутність у підкласі представляє той же об'єкт реального світу, що і її суперклас, і може мати атрибути, як зв'язаними із суперкласом, так і специфічними для даного підкласу. Наприклад, підклас Sales Personnel має всі атрибути суперкласу Staff (тобто атрибутами Staff No, Name, Address і DOB), а також специфічними атрибутами підкласу Sales Personnel (тобто атрибутами Car Allowance і Sales Area).
Підклас також є сутністю, а тому може мати свої власні підкласи. Сутність, її підкласи, підкласи даних підкласів і так далі - усе це називається ієрархією типу (type hierarchy). Ієрархії типів можуть мати різні назви: ієрархія спеціалізації (specialization hierarchy) - наприклад, підклас Manager є спеціалізацією суперкласу Staff; ієрархія генералізації (generalization hierarchy) - наприклад, суперклас Staff є генералізацією підкласу Manager; ієрархія приналежності (IS-A hierarchy) - наприклад, менеджер (підклас Manager) є співробітником (належить суперкласу Staff). У наступних розділах процеси спеціалізації і генералізації описуються більш докладно.
5.4.3. Спеціалізація Спеціалізація - процес збільшення розходжень між окремими членами типу сутності за рахунок виділення їхніх відмінних характеристик.
Спеціалізація являє собою спадний підхід до визначення безлічі суперкласів і зв'язаних з ними підкласів. Безліч підкласів визначається на основі деяких відмітних характеристик окремих сутностей суперкласу. При виявленні набору підкласів деякого типу сутності виконується також виділення специфічних для кожного підкласу атрибутів (у разі потреби), а також виділення будь-яких зв'язків, що існують між кожним підкласом і іншими типами чи сутностей підкласами (також у разі потреби).
Розглянемо, наприклад, процедуру спеціалізації, у якій ідентифікується безліч підкласів суперкласу Staff, включаючи підкласи Manager, Secretary і Sales Personnel. Її можна представити схематично - у виді EER-діаграми, показаної на мал. 5.28. Зверніть увагу, що суперклас Staff і його підкласи, що також є типами сутностей, тут позначені прямокутниками. Підкласи спеціалізації з'єднуються лініями з кружком, що, у свою чергу, з'єднується із суперкласом. Символ приналежності безлічі (с) на кожній лінії, що з'єднує підклас із кружком, указує напрямок зв'язку "підклас/суперклас" (наприклад, Manager з Staff). Символ "про" у кружку спеціалізації позначає, що накладається на зв'язок "підклас/суперклас" обмеження, що більш докладно описується нижче, у розділі 5.4.5.
С
пецифічні
для кожного підкласу атрибути безпосередньо
з'єднуються лініями з прямокутником,
що позначає цей підклас. Наприклад, на
мал. 5.28 атрибути Car_Allowance і Sales Area зв'язані
тільки з підкласом Sales Personnel, a це означає,
що вони не можуть бути застосовані до
підкласу Manager чи Secretary. Аналогічним
образом виділені атрибути, специфічні
для підкласів Manager (атрибут Bonus) і Secretary
(атрибут Typing_Speed).
Зверніть увагу на те, що на ERR-діаграмі можуть бути зазначені зв'язки, що застосовні тільки до окремих підкласів. Наприклад, підклас Manager зв'язаний із сутністю Branch за допомогою зв'язку Manages, у той час як сутність Staff зв'язана із сутністю Branch за допомогою зв'язку IsAl located (див. мал. 5.28).
Для однієї і тієї ж сутності можна виділити трохи незалежних спеціалізацій, ґрунтуючись на різних її характеристиках. Наприклад, в іншій спеціалізації сутності Staff можуть бути виділені підкласи Full Time Pennanent (Постійний працівник) і Part Time Temporary (Тимчасовий працівник), що відрізняються типом установленого з даним працівником угоди про наймання. Обидві спеціалізації типу сутності Staff на підкласи службових ролей і підкласи виду встановленої угоди про наймання показані на мал. 5.29.
На цьому малюнку також показані атрибути, що специфічні для підкласів Full_Time Perinanent (Salary Scale і Hoiiday_Allowance) і Part_Time_Temporary (Hourly Rate). Символ d у кружку спеціалізації представляє обмеження, що накладається на зв'язок "суперклас/підклас", мова про яке піде в розділі 5.4.5.
Підклас також може мати свої власні підкласи, що утворять іншу ієрархію специализаций. Як показано на мал. 5.30, сутність Sales Trainee є підкласом двох підкласів Sales Personnel і Trainee. Підклас з декількома суперкласами називається спільно використовуваним підкласом (shared subclass). Інакше кажучи, член спільно використовуваного підкласу Sales_Trainee одночасно повинний бути членом підкласів Sales_Personnel і Trainee. У результаті атрибути підкласу Sales Personnel (Sales Area і Car Allowance) і підкласу Trainee (Start Date) успадковуються підкласом Sales_Trainee, що також має свій власний додатковий атрибут Sales_Target. Подібний процес називається множинним спадкуванням (multiple inheritance).