Поняття ER-моделі. Поняття сутності (entity). Атрибути. Види атрибутів

Поняття ER-моделі. Поняття сутності (entity). Атрибути. Види атрибутів


Зміст



1. Які проблеми можуть виникнути у розробника при проектуванні бази даних?

При проектуванні бази даних та розробці програмного продукту найбільш важливою проблемою є проблема взаємодії розробника з замовником. Задача розробника – найбільш точніше відтворити побажання замовника при розробці програмного продукту керування базою даних. Основна проблема, яку потрібно вирішити розробнику – правильна побудова бази даних, а точніше схеми (структури) бази даних.

Крім того, розробник додатково зустрічається з іншими труднощами, до яких можна віднести:

  • пошук ефективних алгоритмів;
  • підбір належних структур даних;
  • відлагодження та тестування складного коду;
  • дизайн та зручність інтерфейсу додатку.

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

Щоб полегшити процес розробки (проектування) бази даних, використовуються так звані семантичні моделі даних. Для різних видів баз даних найбільш відомою є ER-модель даних (Entity-Relationship model).

2. Що таке ER-модель (Entity-relationship model)? Для чого потрібно розробляти ER-модель?

ER-модель (Entity-relationship model або Entity-relationship diagram) – це семантична модель даних, яка призначена для спрощення процесу проектування бази даних. З ER-моделі можуть бути породжені всі види баз даних: реляційні, ієрархічні, мережні, об’єктні. В основі ER-моделі лежать поняття “сутність”, “зв’язок” та “атрибут”.

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

ER-модель – це представлення бази даних у вигляді наочних графічних діаграм. ER-модель візуалізує процес, що визначає деяку предметну область. Діаграма “сутність-зв’язок” – це діаграма, яка представляє в графічному вигляді сутності, атрибути і зв’язки.

ER-модель – це тільки концептуальний рівень моделювання. ER-модель не містить деталей реалізації. Для тієї самої ER-моделі деталі її реалізації можуть відрізнятися.

3. Що таке сутність в базі даних? Приклади

Сутність в базі даних – це будь-який об’єкт в базі даних, який можна виділити виходячи з суті предметної області для якої розробляється ця база даних. Розробник бази даних повинен вміти правильно визначати сутності.

Приклад 1. В базі даних книжного магазину можна виділити такі сутності:

  • книга;
  • постачальник;
  • розміщення в магазині.

Приклад 2. В базі даних обліку навчального процесу деякого навчального закладу можна виділити такі сутності:

  • студенти (учні);
  • викладачі;
  • групи;
  • дисципліни, що вивчаються.

4. Які існують різновиди типів сутностей? Позначення типів сутностей в ER-моделі

У моделі “сутність”-“звʼязок” розрізняють два різновиди типів сутностей:

  • слабкий тип. Цей тип сутності є залежним від сильної сутності;
  • сильний тип. Це самостійний тип сутності, який ні від кого не залежить.

На рисунку 1 зображено позначення слабого та сильного типу сутності в ER-моделі.

тип сутності рисунок

Рис. 1. Позначення сильного та слабкого типу сутності

5. Для чого призначені атрибути? Види атрибутів. Позначення атрибутів на ER-моделі

Кожен тип сутності має певний набір атрибутів. Атрибути призначені для опису конкретної сутності.

Розрізняють наступні види атрибутів:

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

На ER-діаграмі атрибути позначаються так, як зображено на рисунку 2. Як видно з рисунку, будь-який атрибут позначається у вигляді еліпсу з назвою всередині еліпсу. Якщо атрибут є первинним ключем, то його назву підкреслюють.

атрибути ER-модель рисунок

Рисунок 2. Представлення атрибутів на діаграмах ER-моделі

6. Як типи сутностей та атрибути ER-моделі реалізуються в реальних базах даних та управляючих ними програмах?

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

  • вибрати в якості джерела даних відому технологію (наприклад Microsoft SQL Server, Oracle Database, Microsoft Access, Microsoft ODBC Data Source тощо), яка вже досліджена, протестована, стандартизована та має потужний набір засобів керування базою даних;
  • розробити власний формат бази даних та реалізувати методи її обробки, а взаємодію з відомими джерелами даних реалізувати у вигляді спеціальних команд на зразок “Імпорт/Експорт”. У цьому випадку доведеться власноруч програмувати всю рутинну роботу з ведення та забезпечення надійної роботи бази даних;
  • реалізувати поєднання двох вищенаведених підходів. Сучасні засоби розробки програмного забезпечення мають потужний набір бібліотек для обробки складних наборів та візуалізації даних в них (колекції, масиви, компоненти візуалізації тощо).

Якщо база даних реалізується у відомих реляційних СКБД (наприклад Microsoft Access, Microsoft SQL Server тощо), то типи сутностей представляються таблицями. Атрибути з ER-моделі відповідають полям таблиці. Один запис в таблиці бази даних представляє один екземпляр сутності.

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

  • простий атрибут чи однозначний атрибут може бути представлений доступним набором базових типів, який є у будь-якій мові програмування. Наприклад, цілочисельні атрибути представляються типом int, integer, uint і т.д.; атрибути, що містять, дробову частину можуть бути представлені типом float, double; рядкові атрибути типом string і т.д.;
  • складений атрибут – це об’єкт, що включає в себе декілька вкладених простих атрибутів. Наприклад, в СКБД Microsoft Access складений атрибут деякої таблиці може формуватись на основі набору простих типів (полів). У мовах програмування об’єднання полів реалізується структурами або класами;
  • багатозначний атрибут може бути реалізований масивом або колекцією простих чи складених атрибутів;
  • довільний атрибут реалізується додатковим полем, яке обчислюється при звертанні до таблиці. Таке поле називається обчислювальним полем (calculated field) і формується на основі інших полів таблиці;
  • атрибут, що є первинним ключем може бути цілочисельним, рядковим чи іншого порядкового типу. У цьому випадку, значення кожної комірки таблиці, що відповідає первинному ключу, є унікальним. Найчастіше, в якості первинного ключа виступає цілий тип (int, integer).

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

7. Приклад фрагменту ER-моделі для типу сутності “Студент”

Наведений приклад демонструє фрагмент ER-моделі для типу сутності “Студент”.

ER-модель тип сутності фото

Рисунок 3. Фрагмент ER-моделі для типу сутності “Студент”

На вищенаведеному рисунку оголошуються наступні атрибути, які в СКБД (програмі) можуть мати наступні типи:

  • Атрибут Первинний ключ – є унікальним цілочисельним значенням яке формується автоматично. В СКБД це є поле-лічильник;
  • атрибут Рік вступу – простий атрибут, який можна реалізувати цілочисельним значенням (int, integer);
  • атрибут Номер телефону – багатозначний атрибут, який може бути реалізований як масив чи колекція тощо;
  • атрибут Номер залікової – простий атрибут, який можна реалізувати як рядок символів, оскільки номер залікової крім цифр може містити і літери;
  • атрибут Країна, Місто, Вулиця, Номер будинку – це атрибути, які утворюють складений атрибут Адреса. Всі ці атрибути можуть бути рядкового (текстового) типу (string, Text);
  • атрибут Прізвище, Ім’я, По-батькові – це прості атрибути, які є частиною складеного атрибуту Ім’я студента. Всі ці атрибути можуть бути рядкового (текстового) типу (string, Text);
  • атрибут День народження – простий атрибут типу Дата (DateTime);
  • атрибут Вік студента – розрахункове поле, яке визначається як різниця поточної (системної) дати та значення атрибуту День народження.


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