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

Визначення атрибутів, що є потенційними і первинними ключами

Для пошуку потенційних ключів кожної сутності варто уважно вивчити табл. 5.3. Для сутностей з декількома потенційними ключами необхідно вибрати той, котрий буде використовуватися як первинний ключ. Наприклад сутність Staff володіє наступними потенційними ключами:

  • Staff Jo;

  • FName, LName, DOB;

  • NIN.

Найпростіший потенційний ключ Staff_No обраний як первинний ключ сутності Staff, а інші потенційні ключі є її альтернативними ключами. У табл. 5.4 перераховані первинні (і альтернативні, якщо такі маються) ключі всіх сутностей з табл. 5.3.

Таблиця 5.4. Типи сутностей і їх первинні й альтернативні ключі

Тип сутності Первинний ключ Альтернативний ключ

Branch Branch No Tel No

FaxNo

Staff Staff_No FName, LName, DOB

NIN

Manager Staff_No FName, LMame, DOB

NIN

Next_of_Kin

Supervisor Staff No FName, LName, DOB

NIN

Allocated_Staff

Property for Rent Property No

Private Owner Owner No

Business Owner Owner No Tel No

Fax_No

Renter Renter No-

Viewing

Rental Agreement Rental_No

Advert

Newspaper Newspaper Name Tel No

Fax_No

Зверніть увагу, що сутності Next_of__Kin, Allocated__Staff, Viewing і Advert не мають первинного ключа, а тому є слабкими сутностями. Первинні ключі цих сутностей будуть частково чи цілком виведені на основі їхніх батьківських сутностей. Процес створення і визначення первинних ключів для слабких сутностей розглядається як частина методології логічного проектування бази даних.

Чи спеціалізація генералізація типів сутностей

У цьому розділі ми розглянемо можливість спеціалізації чи генералізації сутностей, описаних у специфікаціях вимог користувача Manager. До визначеного ступеня цей процес виконується з урахуванням суб'єктивної думки конкретного розроблювача. Однак при виборі способу представлення сутностей у кожній створюваній моделі даних важливо в максимальній ступені дотримуватись повної відповідності вимогам специфікації. У приведених у розділі 5.1.1 специфікаціях вимог користувача Manager мається кілька пунктів, для яких може виявитися корисним виконати спеціалізацію чи генералізацію. Наприклад, сутності Manager і Supervisor зв'язані із сутністю Staff, а тому прийдеться прийняти рішення про те, як треба представити їх - як підкласи, зв'язані із суперкласом Staff, чи у виді окремих незалежних сутностей.

Рішення про спеціалізацію чи генералізацію сутностей може бути прийняте на основі спільності атрибутів і зв'язків кожної із сутностей. Як показано в табл. 5.3, всі атрибути сутності Staff також представлені в сутностях Manager і Supervisor, причому усі вони мають той самий первинний ключ. Більш того, сутність Supervisor не має ніяких додаткових атрибутів, що відповідають цієї службової ролі. З іншого боку, сутність Manager має три додаткових атрибути:

Date_Mgr_Start, Car_Allowance і Bonus Payment. Крім того, сутності Manager і Supervisor підтримують різні зв'язки: сутність Manager зв'язана зв'язком Manages із сутністю Branch, а сутність Supervisor - зв'язком Supervises із сутністю Staff. На підставі всіх цих зведень можна зробити висновок про те, що сутності Manager і Supervisor являють собою підкласи суперкласу Staff (див. мал. 5.1).

Даний зв'язок "суперклас/підклас" є частковим і непересічний, оскільки не всі співробітники є менеджерами чи інспекторами, а той самий співробітник не може бути одночасно менеджером і інспектором. Це представлення особливо корисне для відображення спільного використання атрибутів, зв'язаних зі згаданими підкласами і суперкласом Staff.

Аналогічний аналіз варто виконати у відношенні спільності, що існує між різними типами власників об'єктів нерухомості. У специфікаціях вимог користувача Manager описані два типи власників; приватні особи (Private_0wner) і юридичні особи (фірми) (Business Owner). Виходячи зі зведень, представлених у табл. 5.2 і 5.3, можна укласти, що в цих сутностей є деякі загальні атрибути (Owner No, Address і Tel No), а також той самий тип зв'язку (зв'язок Owns із сутністю Property_for_Rent). Однак у них є й інші, незбіжні атрибути. У даному випадку доцільно створити суперклас Owner з підкласами Private Owner і Business Owner, як показано на мал. 5.1. Знову створений зв'язок "суперклас/підклас" є повним і непересічним, оскільки кожен власник повинний бути приватною особою чи фірмою, але він не може бути одночасно і тим, і іншим.

Приведені в цьому розділі приклади спеціалізації/генералізації відносно прості. Але, як уже згадувалося вище, процес генералізації може бути продовжений далі. Наприклад, сутності Staff, Manager, Supervisor, Private_0wner і Renter представляють людей із загальними характеристиками (Name, Address, Tel_No), а тому на їхній основі можна було б створити суперклас Person. Але в даному випадку цього робити не слід, і ми залишимо ці сутності так, як вони є.