Модель діаграми зв’язків сутностей (ER) із прикладом СУБД

⚡ Розумний підсумок

Модель діаграми сутностей та зв'язків (ER) з прикладом СУБД ілюструє структурований метод візуального представлення даних та їх взаємозв'язків у реляційних базах даних. Запропонований Пітером Ченом, він забезпечує основу концептуального моделювання для точного визначення сутностей, атрибутів, зв'язків та їх кардинальності.

  • 🔍 Основна концепція: ER-діаграми визначають структуру бази даних через три основні компоненти — сутності, атрибути та зв'язки, — забезпечуючи чітке зіставлення між об'єктами даних та їх взаємодією.
  • 🧱 Структурні символи: Прямокутники позначають сутності, еліпси представляють атрибути, а ромби ілюструють зв'язки; сполучні лінії вказують на логічні зв'язки, а підкреслені атрибути позначають первинні ключі.
  • ⚙️ Класифікація об'єктів: Сутності групуються в набори, кожен з яких ідентифікується унікальними ключами або атрибутами. Слабкі сутності не мають незалежних ключів і покладаються на сильні сутності для ідентифікації, використовуючи подвійні прямокутники та пунктирне підкреслення.
  • 🔗 Визначення стосунків: Зв'язки виражають асоціації між сутностями (наприклад, «Студент записався на курс») та класифікуються за кардинальністю — один до одного, один до багатьох, багато до одного або багато до багатьох.
  • 🧩 Типи атрибутів: Атрибути можуть бути простими, складеними, похідними або багатозначними, що визначають окремі властивості даних, такі як імена, дати та обчислювані поля.
  • 🧭 Кроки створення ERD: Визначте сутності, встановіть зв'язки, визначте потужності елементів, призначте атрибути та визначте первинні ключі, перш ніж побудувати повну діаграму.
  • 📈 Практика оптимізації: Видаліть надлишки, позначте всі компоненти та збережіть унікальні екземпляри сутностей для ясності, забезпечуючи відповідність діаграми всім необхідним вимогам до зберігання даних.

Діаграма взаємозв'язків сутностей

Що таке ER-діаграма?

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

ER-діаграми містять різні символи, які використовують прямокутники для представлення сутностей, овали для визначення атрибутів та ромбоподібні форми для представлення зв'язків.

На перший погляд, ER-діаграма дуже схожа на блок-схему. Однак, ER-діаграма містить багато спеціалізованих символів, і її значення роблять цю модель унікальною. Мета ER-діаграми — представити інфраструктуру Entity Framework.

Приклади діаграм ER
Приклад діаграми зв’язків сутності

Історія ER-моделей

Пітер Чен запропонував ER-діаграму в 1976 році у своїй фундаментальній статті «Модель сутність-зв'язок: до єдиного подання даних». Його метою було створити єдину конвенцію, яку можна було б використовувати як для реляційних баз даних, так і для мереж. Чен уявляв ER-модель як концептуальний підхід до моделювання, який би подолав розрив між реальними вимогами та технічною реалізацією баз даних.

Відтоді модель ER розвивалася завдяки різним системам нотації, включаючи нотацію Чена (оригінальна), нотацію «воронячої ноги» (популярна в сучасних інструментах) та підходи на основі UML. Незважаючи на ці відмінності, основні концепції залишаються незмінними в усіх реалізаціях.

Навіщо використовувати ER-діаграми?

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

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

Компоненти ER-діаграми

Кожна ER-діаграма побудована з трьох основних компонентів: сутностей, атрибутів та зв'язків. Розуміння кожного компонента та того, як вони взаємодіють, є важливим для створення ефективних проектів баз даних.

Приклади діаграм ER

Наприклад, у базі даних університету ми можемо мати сутності для студентів, курсів та викладачів. Сутність студента може мати такі атрибути, як номер облікового запису, ім'я та ідентифікатор відділу. Вони можуть мати зв'язки з курсами та викладачами.

Компоненти діаграми ER

Компоненти діаграми ER

Суб'єкти

Сутність являє собою будь-який об'єкт реального світу — живий чи неживий — який можна чітко ідентифікувати та про який можна зберігати дані. Це може бути фізична річ, факт про підприємство або подія, що відбувається в реальному світі. Сутності можуть включати людей, місця, об'єкти, події або концепції.

Приклади сутностей за категоріями:

  • Особа: Працівник, Студент, Пацієнт, Клієнт
  • Місце: Магазин, будівля, офіс, склад
  • Об'єкт: Машина, продукт, автомобіль, книга
  • Подія: Продаж, реєстрація, поновлення, транзакція
  • Концепція: Обліковий запис, курс, відділ, проект

приклади сутностей у СУБД

Набір сутностей

Набір сутностей – це група подібних сутностей, які мають спільні атрибути. Наприклад, усі студенти університету утворюють набір сутностей «Студент». Сутності представлені на ER-діаграмах за допомогою прямокутників, всередині яких пишеться назва сутності.

Сутності представлені своїми властивостями, які також називаються атрибутами. Усі атрибути мають свої окремі значення. Наприклад, сутність студента може мати ім'я, вік та клас як атрибути.

Сутність

Сильні сутності проти слабких сутностей

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

Сильна сутність має власний первинний ключ і може існувати незалежно. Наприклад, сутність «Студент» може бути однозначно ідентифікована за допомогою Student_ID, незалежно від будь-якої іншої сутності.

Слабка сутність не має власного первинного ключа та залежить від сильної сутності (так званої сутності-власника) для своєї ідентифікації. Вона використовує частковий ключ (дискримінатор) у поєднанні з первинним ключем власника для досягнення унікальності. Наприклад, у банківській системі сутність «Транзакція» залежить від сутності «Рахунок» — сам по собі номер транзакції не є унікальним у всій базі даних, але в поєднанні з номером рахунку він стає унікальним.

Слабкі сутності

Сильна сутність Слабка сутність
Має свій власний первинний ключ Не має первинного ключа; використовує частковий ключ
Представлено одним прямокутником Представлено подвійним прямокутником
Первинний ключ підкреслено суцільною лінією Частковий ключ підкреслено пунктирною лінією
Може існувати незалежно Залежить від власника-сутності для існування
Пов'язано з одним діамантом Пов'язано з подвійним діамантом (ідентифікаційний зв'язок)
Приклад: Студент, Працівник, Продукт Приклад: Транзакція, Залежний, Елемент_замовлення

Зв'язок

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

Зв'язок

Суб'єкти беруть участь у відносинах. Ми часто можемо визначити зв’язки з дієсловами або дієслівними фразами.

Приклади:

  • Ви відвідуєте цю лекцію
  • Я читаю лекцію
  • Студент відвідує лекцію
  • Лектор читає лекцію

Attributes

Атрибут — це властивість або характеристика, яка описує сутність або зв'язок. Атрибути надають детальну інформацію, яка робить кожен екземпляр сутності унікальним та значущим. На ER-діаграмах атрибути представлені за допомогою овалів (еліпсів), з'єднаних з батьківською сутністю лінією.

Attributes

Наприклад, сутність «Студент» може мати такі атрибути, як «Ідентифікатор_студента», «Ім’я», «Дата_народження», «Електронна_адреса» та «Номер_телефону».

Типи атрибутів

Тип атрибута Опис Приклад
Простий (Atomic) Не можна розділити далі на менші компоненти Номер телефону, SSN, електронна пошта
Composite Можна розбити на менші підатрибути Повне ім'я (Ім'я, По батькові, Прізвище), Адреса (Вулиця, Місто, Поштовий індекс)
Отриманий Значення обчислюється з інших атрибутів; не зберігається безпосередньо Вік (визначається за датою народження), загальна ціна
Багатозначний Може містити кілька значень для однієї сутності Телефони Numbers, Адреси електронної пошти, Навички
Ключовий атрибут Унікально ідентифікує кожен екземпляр сутності (первинний ключ) Ідентифікатор_студента, Ідентифікатор_співробітника, ISBN

Порада: На ER-діаграмах ключові атрибути показані з підкресленими назвами. Похідні атрибути показані пунктирними овалами, а багатозначні атрибути – подвійними овалами.

Кардинальність (типи зв'язків)

Кардинальність визначає числові обмеження зв'язку, зокрема, скільки екземплярів однієї сутності можна пов'язати з екземплярами іншої сутності. Розуміння кардинальності є важливим для проектування ефективних структур баз даних.

Кардинальність

1. Індивідуальна співпраця (1:1)

Одна сутність з множини A може бути пов'язана щонайбільше з однією сутністю з множини B, і навпаки.

Приклад: Одному студенту присвоюється рівно один ідентифікатор студента, і кожен ідентифікатор студента належить рівно одному студенту.

Кардинальність один до одного

2. Один до багатьох (1:N)

Одна сутність з множини A може бути пов'язана з кількома сутностями з множини B, але кожна сутність у B пов'язана лише з однією сутністю в A.

Приклад: Один клас складається з кількох учнів.

Кардинальність один до багатьох

3. Багато до одного (N:1)

Кілька сутностей з множини A можуть бути пов'язані з однією сутністю з множини B.

Наприклад, багато учнів належать до одного класу.

Від багатьох до одного

4. Багато до багатьох (M:N)

Кілька сутностей з множини A можуть бути пов'язані з кількома сутностями з множини B, і навпаки.

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

Чисельність від багатьох до багатьох

Символи та позначення діаграми ER

ER-діаграми використовують стандартизовані символи для представлення різних компонентів. Хоча існує кілька систем позначення, дві найпоширеніші - це нотація Чена та нотація «вороняча лапка».

Нотація Чена

Нотація Чена, розроблена Пітером Ченом у 1976 році, використовує геометричні фігури для представлення різних елементів:

Symbol ІМ'Я Представляє
Прямокутник Сутність Сильна сутність (наприклад, Студент, Продукт)
Double Прямокутник Слабка сутність Сутність, що залежить від іншої (наприклад, транзакція)
Еліпс/Овал атрибут Властивість сутності (наприклад, назва, ідентифікатор)
Double Еліпс Багатозначний атрибут Атрибут з кількома значеннями (наприклад, Телефон Numbers)
Пунктирний еліпс Похідний атрибут Розраховане значення (наприклад, вік від дати народження)
ромб Зв'язок Зв'язок між сутностями (наприклад, реєстраціями)
Double ромб Визначення зв'язку Зв'язок зі слабкою сутністю
Лінія посилання З'єднує компоненти разом
Підкреслений текст Первинний ключ Унікальний ідентифікатор для сутності

Нотація «вороняча лапка»

Нотація «вороняча лапка» (також відома як нотація IE) частіше використовується в сучасних інструментах проектування баз даних. Вона використовує різні закінчення рядків для представлення потужності елементів і особливо ефективна для відображення зв'язків типу «багато».

Symbol Descriptіон Сенс
Одинарна вертикальна лінія (|) Обов'язковий один (рівно один)
Коло з лінією (O|) Необов'язково Один (нуль або один)
Гусяча лапка з лінією (>|) Обов'язкове Багато (один або декілька)
Гусяча лапка з колом (>O) Необов'язково Багато (нуль або більше)

Нотація Чена проти «воронячої лапки»: коли використовувати кожну з них

Аспект Нотація Чена Нотація «вороняча лапка»
Best For Концептуальне моделювання, академічне використання Фізичне/логічне моделювання, використання в галузі
Відображення атрибутів Візуально показує всі атрибути Перелічує атрибути всередині блоку сутності
Кардинальність Використовує числа (1, N, M) Використовує візуальні символи
складність Може стати захаращеним Компактніший та чистіший
Підтримка інструментів Обмежена підтримка сучасних інструментів Широко підтримується інструментами

Як створити діаграму зв’язків сутностей (ERD)

Тепер у цьому посібнику з ER-діаграми (ERD) ми дізнаємося, як створити ER-діаграму. Нижче наведено кроки для створення ER-діаграми:

Створіть діаграму зв’язку сутності

Кроки для створення діаграми ER

Давайте вивчимо їх на прикладі діаграми зв’язків сутностей:

В університеті студент записується на курси. Студент повинен бути призначений принаймні на один курс. Кожен курс викладає один професор. Для підтримки якості навчання професор може читати лише один курс.

Крок 1) Ідентифікація сутності

У нас є три суб'єкти:

  • студент
  • Курс
  • Професор

Ідентифікація суб’єкта

Крок 2) Ідентифікація стосунків

Ми маємо такі два зв'язки:

  • Учень є призначений курс
  • Професор постачає курс

Ідентифікація стосунків

Крок 3) Ідентифікація потужності

З формулювання задачі ми знаємо, що:

  • Студент може бути призначений множинний курси
  • Доставляти може лише професор один курс

Ідентифікація потужності

Крок 4) Визначте атрибути

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

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

Після завершення відображення визначте первинні ключі. Якщо унікальний ключ недоступний, створіть його.

Сутність Первинний ключ атрибут
студент Student_ID Ім'я студента
Професор Employee_ID ProfessorName
Курс Course_ID Назва курсу

Кроки для створення діаграми зв’язків сутностей

Для сутності курсу атрибутами можуть бути тривалість, кредити, завдання тощо. Для зручності ми розглянули лише один атрибут.

Крок 5) Створення ERD

Більш сучасне представлення прикладу діаграми зв'язків сутностей:

Створіть діаграму ERD

Найкращі практики для ефективних ER-діаграм

Дотримуйтесь цих інструкцій, щоб створити чіткі, зручні в підтримці та ефективні діаграми ER:

  • Усуньте надмірність: Видаліть дублікати сутностей, атрибутів або зв'язків.
  • Використовуйте чіткі правила іменування: Використовуйте узгоджені, описові назви. Уникайте скорочень.
  • Перевірити на відповідність вимогам: Переконайтеся, що діаграма підтримує всі потреби зберігання даних.
  • Не ускладнювати: Створюйте кілька діаграм на різних рівнях, а не одну захаращену діаграму.
  • Економно використовуйте колір: Використовуйте кольори послідовно для виділення категорій.
  • Припущення щодо документа: Включіть примітки, що пояснюють припущення щодо бізнес-правил.
  • Revдумка із зацікавленими сторонами: Попросіть бізнес-користувачів та технічну команду переглянути схему.
  • Контроль версій: Підтримуйте версії в міру розвитку дизайну.

ER-діаграми проти діаграм класів UML

Хоча ER-діаграми та діаграми класів UML використовуються для моделювання даних, вони служать різним цілям та контекстам. Розуміння того, коли використовувати кожну з них, важливе для ефективного проектування системи.

Аспект Діаграма швидкої допомоги Діаграма класів UML
Основне призначення Дизайн бази даних Дизайн програмного забезпечення/об'єктів
Focus Дані та зв'язки Об'єкти, методи та поведінка
Методи/Operaвих Не підтримується Повністю підтримується
Спадкування Обмежено (лише в EER) Повна підтримка
Використання в промисловості Адміністратори баз даних, аналітики даних Розробники програмного забезпечення, архітектори

Поширені запитання

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

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

Щоб створити ER-діаграму: (1) Визначте ключові сутності з ваших вимог, (2) Визначте зв'язки між сутностями, (3) Призначте кардинальність елементів на основі бізнес-правил, (4) Визначте атрибути для кожної сутності, (5) Визначте первинні ключі та (6) Намалюйте діаграму, використовуючи відповідні позначення.

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

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

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

Хоча генеративний ШІ може пропонувати початкові моделі ER на основі бізнес-вимог або існуючих наборів даних, людський нагляд залишається критично важливим для перевірки зв'язків, забезпечення обмежень, забезпечення логічної узгодженості та перевірки відповідності фактичним бізнес-правилам у виробничих системах.

Зв'язки «багато до багатьох» не можуть бути безпосередньо реалізовані в реляційних базах даних. Потрібно створити асоціативну сутність (таблицю з'єднань), яка розбиває зв'язок M:N на два зв'язки 1:N. Ця таблиця з'єднань містить зовнішні ключі, що посилаються на обидві вихідні сутності.

Підсумуйте цей пост за допомогою: