Підтипи сутностей. Супертип. Приклад. Переваги та недоліки застосування підтипів сутностей

Підтипи сутностей. Супертип. Приклад. Переваги та недоліки застосування підтипів сутностей

Перед вивченням даної теми рекомендовано ознайомитись з наступною темою:


Зміст


1. Що таке підтипи сутності? Для чого використовуються підтипи сутності? Приклад

Підтипи сутностей вводяться в ER-модель з метою зменшення загальної кількості атрибутів кожної сутності.

Кожна сутність має набір унікальних атрибутів. Однак, атрибути різних сутностей можуть повторюватись. Тому, потрібно так побудувати ER-модель, щоб кількість повторюваних атрибутів в різних сутностях була мінімальною або зведеною до нуля.

Повторення атрибутів несе надлишковість в базі даних. Розмір бази даних стає необгрунтовано великий, тому цю проблему потрібно виправляти. Для вирішення цієї проблеми використовуються підтипи сутностей.

Ідея використання підтипу сутності полягає в тому, що для усього різноманітного набору сутностей виділяється супертип, який містить загальну для усіх типів сутностей інформацію. Деталі (тонкощі) кожного типу сутності виносяться окремо в декілька спеціалізованих підтипів.

Приклад. Нехай потрібно розробити базу даних працівників навчального закладу. У навчальному закладі виділяються 3 сутності, кожна з яких представляє професійну групу працівників:

  • сутність Адміністрація;
  • сутність Викладач;
  • сутність Допоміжний персонал.

Якщо для кожної сутності описати власний набір атрибутів, то можна помітити, що деякі атрибути в різних сутностях будуть повторюватись.

Нижченаведені атрибути є спільними для усіх сутностей:

  • “Прізвище”;
  • “Ім’я”;
  • “По-батькові”;
  • “Ідентифікаційний номер”.

Також можна виділити деякі унікальні атрибути:

  • тип сутності “Адміністрація” має адміністративну ставку, назву займаної посади тощо;
  • тип сутності “Викладач” має кількість вичитаних годин, розцінку за 1 годину, категорію тощо;
  • тип сутності “Допоміжний персонал” має ставку персоналу, коефіцієнт вихідного чи невихідного дня (якщо працівник працював у вихідні дні) тощо.

Щоб вирішити проблему уникнення повторюваності, в ER-моделі вносяться зміни, як показано на рисунку 1, а саме:

  • вводиться супертип сутності “Працівник”. Цей супертип містить спільні атрибути для усіх типів (підтипів) сутностей;
  • вводяться підтипи сутностей “Адміністрація”, “Викладач”, “Допоміжний персонал”. Кожен з підтипів сутностей має свої унікальні атрибути.

супертип підтип сутностей рисунок

Рис. 1. Зображення супертипу та підтипів сутностей на діаграмі

2. Що таке супертип сутності?

Супертип сутності – це такий тип сутності, в якому реалізуються (описуються) тільки спільні атрибути для підтипів сутностей, що використовують цей супертип.

3. Як підтипи сутностей можуть бути зв’язані між собою? Приклад

Підтипи сутностей можуть перетинатися або не перетинатися.

Якщо підтип однієї сутності може підходити для підтипу іншої сутності, то це означає що підтипи сутностей перетинаються між собою. В іншому випадку підтипи сутностей не перетинаються.



Приклад. У навчальному закладі працівник, що займає адміністративну посаду (підтип Адміністрація) може бути викладачем. Тобто, підтип сутності Адміністрація перетинається з підтипом сутності Викладач.

Однак, працівник з підтипу сутності Допоміжний персонал не може бути викладачем. Тому підтип сутності Допоміжний персонал не перетинається з підтипом Викладач.

З врахуванням вищесказаного, зображення супертипу та підтипів на діаграмі має вигляд, як показано на рисунку 2.

супертип підтип сутностей рисунок

Рис. 2. Супертип та підтипи сутностей з врахування перетину між підтипами сутностей

На рисунку 2 між підтипами Адміністрація та Викладач є позначення з символом Gs. Це означає, що підтипи можуть перетинатись. Між підтипами Викладач та Допоміжний персонал є позначення з символом G. Це означає, що підтипи сутностей не перетинаються.

4. Які недоліки дає використання підтипів сутностей при проектуванні баз даних?

Кожен супертип та підтип сутностей реалізується відповідною таблицею. Поля таблиці є атрибутами даного типу сутностей.

Недоліки використання підтипів сутностей полягають в тому, що в цілому ускладнюється робота з розробки бази даних. Труднощі полягають в наступному:

  • складність в організації взаємодії між головною та підлеглою таблицями для реляційних баз даних;
  • в таблицях підтипів потрібно додатково вводити первинні ключі для зв’язування з таблицею супертипу;
  • запити на мові SQL стають більш складнішими, оскільки потрібно обробляти дані в зв’язаних таблицях;
  • складність в забезпеченні безпечного доступу користувача до стовпців таблиці.

5. Які переваги використання підтипів сутностей при проектуванні баз даних?

Переваги використання підтипів сутностей:

  • уникнення надлишковості даних, оскільки кожен підтип містить тільки унікальну інформацію. Це в свою чергу призводить до зменшення розміру самої бази даних;
  • спрощення задавання обмежень для кожного атрибуту, який відповідає стовпцю таблиці яка реалізує конкретний підтип сутності;
  • зменшення помилок при програмуванні операцій над таблицею що відповідає конкретному підтипу сутності;
  • гнучкість в модифікації структури бази даних. Не потрібно модифікувати таблицю супертипу у випадку додавання/зміни структури таблиці підтипу. Це, в свою чергу, призводить до того, що не потрібно переробляти всю програму керування базою даних.

6. Який тип відношення встановлюється між супертипом та підтипом?

Між супертипом і підтипом встановлюється відношення “один до одного” або 1:1.


Зв’язані теми