Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 5 Сущность-связь (Укр).doc
Скачиваний:
15
Добавлен:
19.11.2019
Размер:
1.72 Mб
Скачать

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).