Що таке ER Modeling? Навчайтеся на прикладі

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

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

  • 🧩 Що це: ER-моделювання — це високорівнева графічна модель даних, яка визначає елементи даних та їх зв'язки.
  • 🗂️ Будівельні блоки: Сутності представляють реальні речі, атрибути описують їхні властивості, а зв'язки фіксують, як сутності взаємодіють.
  • 🔗 потужність: Зв'язки бувають один-до-одного, один-до-багатьох або багато-до-багатьох і вирішуються за допомогою сутності з'єднання.
  • ???? Модель EER: Модель Enhanced ER використовує нотацію UML та додаткові конструкції для дуже складних баз даних.
  • 🎬 Тематичне дослідження MyFlix: Приклад відеотеки відображає учасників, фільми, категорії, прокат та платежі на діаграмі ER.
  • 🤖 Допомога AI: Інструменти штучного інтелекту та GitHub Copilot перетворюють описи природною мовою на ER-діаграми та SQL-схеми.

ER моделювання

Що таке ER Modeling?

Модель зв'язку сутності (ER Modeling) — це графічний підхід до проектування бази даних. Це високорівнева модель даних, яка визначає елементи даних та їхній зв’язок для певної програмної системи. Модель ER використовується для представлення об’єктів реального світу.

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

  • Сутність має набір властивостей.
  • Властивості сутності можуть мати значення.

Давайте знову розглянемо наш перший приклад. Працівник організації є суб'єктом господарювання. Якщо «Пітер» є програмістом (співробітником) у Microsoft, він може мати такі атрибути (властивості), як ім'я, вік, вага, зріст тощо. Очевидно, що вони містять значення, що стосуються його.

Кожен атрибут може мати значення. У більшості випадків один атрибут має одне значення. Але атрибути також можуть мати кілька значень. Наприклад, вік Петра має одне значення. Але його властивість «номери телефонів» може мати кілька значень.

Сутності можуть мати зв'язки одна з одною. Розглянемо найпростіший приклад. Припустимо, що кожна Microsoft Програмісту дають комп'ютер. Зрозуміло, що комп'ютер Петра також є окремою сутністю. Петро використовує цей комп'ютер, і той самий комп'ютер використовує Петро. Іншими словами, між Петром та його комп'ютером існує взаємний зв'язок.

У моделюванні сутностей-зв'язків ми моделюємо сутності, їхні атрибути та зв'язки між сутностями.

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

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

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

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

Розширена модель взаємозв’язків сутностей (EER).

Модель розширених зв'язків між сутностями (EER) – це високорівнева модель даних, яка надає розширення оригінальної моделі зв'язків між сутностями (ER). Моделі EER підтримують більш детальне проектування. Моделювання EER виникло як рішення для моделювання дуже складних баз даних.

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

Розширена модель взаємозв’язків сутностей (EER).

Тематичне дослідження: ER-діаграма для відеотеки «MyFlix»

Тепер давайте попрацюємо з базою даних MyFlix Video Library, щоб зрозуміти концепцію ER-діаграм. Ми використовуватимемо цю базу даних для всієї практичної роботи в цьому посібнику.

MyFlix — це суб’єкт господарювання, який здає фільми напрокат своїм членам. MyFlix зберігає свої записи вручну. Тепер керівництво хоче переїхати до а СУБД.

Давайте розглянемо кроки для розробки діаграми EER для цієї бази даних:

  1. Визначте сутності та визначте зв’язки, які існують між ними.
  2. Кожна сутність, атрибут і зв'язок повинні мати відповідні назви, які можуть бути легко зрозумілі навіть людям без технічних знань.
  3. Відносини не повинні бути пов'язані безпосередньо один з одним. Відносини повинні з’єднувати сутності.
  4. Кожен атрибут у певній сутності повинен мати унікальне ім’я.

Сутності в бібліотеці «MyFlix»

Суб’єкти, які будуть включені до нашого ER діаграма є:

  • Учасники – ця організація зберігатиме інформацію про учасників.
  • Фільми – цей об’єкт міститиме інформацію про фільми.
  • Категорії – ця сутність міститиме інформацію, яка розподіляє фільми за різними категоріями, такими як «Драма», «Бойовик» та «Епічний» тощо.
  • Прокат фільмів – ця організація зберігатиме інформацію про фільми, здані в оренду учасникам.
  • Платежі – ця організація зберігатиме інформацію про платежі, здійснені учасниками.

Визначення зв'язків між сутностями

Учасники та фільми

Стосовно взаємодії між двома сутностями справедливо наступне.

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

З наведеного вище сценарію видно, що характер зв'язку – багато-до-багатьох. Реляційні бази даних не підтримують зв'язки «багато-до-багатьох». Нам потрібно ввести сутність-сполучник. Цю роль відіграє сутність MovieRentals. Вона має зв'язок «один-до-багатьох» з таблицею Members та ще один зв'язок «один-до-багатьох» з таблицею Movies.

Фільми та категорії сутностей

Про фільми та категорії справедливо наступне.

  • Фільм може належати лише до однієї категорії, але категорія може містити більше одного фільму.

З цього можна зробити висновок, що характер зв'язку між категоріями та таблицями фільмів є один-до-багатьох.

Учасники та платіжні організації

Наступне стосується членів та платежів.

  • Учасник може мати лише один рахунок, але може здійснювати кілька платежів.

З цього можна зробити висновок, що характер взаємовідносин між учасниками та платіжними суб'єктами є один-до-багатьох.

Створіть модель EER за допомогою MySQL Верстак

In MySQL Верстак, натисніть кнопку «+».

Створіть модель EER за допомогою MySQL Верстак

Double Натисніть кнопку «Додати діаграму», щоб відкрити робочу область для ER-діаграм.

Додати діаграму в MySQL Верстак

З'явиться наступне вікно.

MySQL Середовище моделювання EER Workbench

Давайте розглянемо два об'єкти, з якими ми будемо працювати.

  • Об'єкт таблиці настільний інструмент дозволяє нам створювати сутності та визначати атрибути, пов'язані з певною сутністю.
  • Зв'язок з місцем інструмент для визначення зв'язків між місцями Кнопка дозволяє нам визначити зв'язки між сутностями.

Сутність «Учасники» матиме такі атрибути

  • Членський номер
  • Повні імена
  • Стать
  • Дата народження
  • Фізична адреса
  • Поштова адреса

Тепер створимо таблицю "Учасники"

1. Перетягніть об’єкт таблиці з панелі інструментів.

2. Перетягніть його в робочу область. З’явиться сутність з назвою таблиця 1.

3. Double натисніть на нього. З’явиться вікно властивостей, показане нижче.

Властивості таблиці учасників у MySQL Верстак

Далі,

  1. Змініть таблицю 1 на Учасники.
  2. Змініть значення idtable1 за замовчуванням на membership_number.
  3. Натисніть на наступний рядок, щоб додати наступне поле.
  4. Зробіть те саме для всіх атрибутів, визначених у сутності "Учасники".

Тепер ваше вікно властивостей має виглядати так.

Визначення атрибутів сутності учасників

Повторіть описані вище дії для всіх ідентифікованих об’єктів.

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

Суб'єкти MyFlix у робочій області діаграми

Давайте створимо зв'язок між учасниками та прокатом фільмів

  1. Виберіть зв'язок розташування за допомогою інструмента існуючих колонок.
  2. Клацніть на membership_number у таблиці «Учасники».
  3. Клацніть на reference_number у таблиці MovieRentals.

Створення зв'язку між учасниками та MovieRentals

Повторіть вищезазначені кроки для інших зв'язків. Ваша ER-діаграма тепер має виглядати так:

Завершена діаграма MyFlix ER

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

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

Поширеними типами атрибутів є прості (атомні), складені (подільні), похідні (обчислювані), багатозначні (кілька значень) та ключові атрибути, що ідентифікують сутність.

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

Сильна сутність має власний первинний ключ і існує самостійно. Слабка сутність не має повного ключа та залежить від сутності-власника.

Нотація «вороняча лапка» показує потужність елементів за допомогою кінців ліній, що нагадують пташину лапку. Зубці позначають сторону «багато»; риски та кола показують одиницю та необов'язкову сторону.

ER-модель — це високорівневий візуальний план сутностей та зв'язків. Реляційна модель реалізує їх як таблиці, рядки, стовпці та ключі всередині СУБД.

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

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

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