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

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

Історія ER-моделей
Пітер Чен запропонував ER-діаграму в 1976 році у своїй фундаментальній статті «Модель сутність-зв'язок: до єдиного подання даних». Його метою було створити єдину конвенцію, яку можна було б використовувати як для реляційних баз даних, так і для мереж. Чен уявляв ER-модель як концептуальний підхід до моделювання, який би подолав розрив між реальними вимогами та технічною реалізацією баз даних.
Відтоді модель ER розвивалася завдяки різним системам нотації, включаючи нотацію Чена (оригінальна), нотацію «воронячої ноги» (популярна в сучасних інструментах) та підходи на основі UML. Незважаючи на ці відмінності, основні концепції залишаються незмінними в усіх реалізаціях.
Навіщо використовувати ER-діаграми?
ER-діаграми надають численні переваги для проектування та розробки баз даних:
- Візуальна комунікація: Вони забезпечують чітке візуальне представлення, яке можуть зрозуміти як технічні, так і нетехнічні зацікавлені сторони.
- План розвитку: Вони точно показують, як таблиці повинні з'єднуватися та які поля міститиме кожна таблиця.
- Готовий до перекладу: ER-діаграми можна безпосередньо перетворювати в реляційні таблиці, що дозволяє швидко створювати бази даних.
- Запобігання помилкам: Вони допомагають виявити недоліки дизайну та надлишки перед впровадженням, заощаджуючи час та ресурси.
- Документація: Вони слугують довгостроковою документацією, яка допомагає новим членам команди зрозуміти архітектуру системи.
- Системний аналіз: Вони допомагають ідентифікувати всі сутності, що існують у системі, та зв'язки між ними.
Компоненти ER-діаграми
Кожна ER-діаграма побудована з трьох основних компонентів: сутностей, атрибутів та зв'язків. Розуміння кожного компонента та того, як вони взаємодіють, є важливим для створення ефективних проектів баз даних.
Приклади діаграм ER
Наприклад, у базі даних університету ми можемо мати сутності для студентів, курсів та викладачів. Сутність студента може мати такі атрибути, як номер облікового запису, ім'я та ідентифікатор відділу. Вони можуть мати зв'язки з курсами та викладачами.
Суб'єкти
Сутність являє собою будь-який об'єкт реального світу — живий чи неживий — який можна чітко ідентифікувати та про який можна зберігати дані. Це може бути фізична річ, факт про підприємство або подія, що відбувається в реальному світі. Сутності можуть включати людей, місця, об'єкти, події або концепції.
Приклади сутностей за категоріями:
- Особа: Працівник, Студент, Пацієнт, Клієнт
- Місце: Магазин, будівля, офіс, склад
- Об'єкт: Машина, продукт, автомобіль, книга
- Подія: Продаж, реєстрація, поновлення, транзакція
- Концепція: Обліковий запис, курс, відділ, проект
Набір сутностей
Набір сутностей – це група подібних сутностей, які мають спільні атрибути. Наприклад, усі студенти університету утворюють набір сутностей «Студент». Сутності представлені на ER-діаграмах за допомогою прямокутників, всередині яких пишеться назва сутності.
Сутності представлені своїми властивостями, які також називаються атрибутами. Усі атрибути мають свої окремі значення. Наприклад, сутність студента може мати ім'я, вік та клас як атрибути.
Сильні сутності проти слабких сутностей
Сутності класифікуються як сильні або слабкі залежно від їхньої здатності існувати самостійно. Розуміння цієї відмінності є критично важливим для правильного проектування бази даних.
Сильна сутність має власний первинний ключ і може існувати незалежно. Наприклад, сутність «Студент» може бути однозначно ідентифікована за допомогою Student_ID, незалежно від будь-якої іншої сутності.
Слабка сутність не має власного первинного ключа та залежить від сильної сутності (так званої сутності-власника) для своєї ідентифікації. Вона використовує частковий ключ (дискримінатор) у поєднанні з первинним ключем власника для досягнення унікальності. Наприклад, у банківській системі сутність «Транзакція» залежить від сутності «Рахунок» — сам по собі номер транзакції не є унікальним у всій базі даних, але в поєднанні з номером рахунку він стає унікальним.
| Сильна сутність | Слабка сутність |
|---|---|
| Має свій власний первинний ключ | Не має первинного ключа; використовує частковий ключ |
| Представлено одним прямокутником | Представлено подвійним прямокутником |
| Первинний ключ підкреслено суцільною лінією | Частковий ключ підкреслено пунктирною лінією |
| Може існувати незалежно | Залежить від власника-сутності для існування |
| Пов'язано з одним діамантом | Пов'язано з подвійним діамантом (ідентифікаційний зв'язок) |
| Приклад: Студент, Працівник, Продукт | Приклад: Транзакція, Залежний, Елемент_замовлення |
Зв'язок
Зв'язок являє собою асоціацію між двома або більше сутностями. Зв'язки зазвичай ідентифікуються за допомогою дієслів або дієслівних фраз, які описують, як суті взаємодіють одна з одною. На ER-діаграмах зв'язки представлені за допомогою ромбоподібних фігур. Приклад: Том працює на хімічному факультеті.
Суб'єкти беруть участь у відносинах. Ми часто можемо визначити зв’язки з дієсловами або дієслівними фразами.
Приклади:
- Ви відвідуєте цю лекцію
- Я читаю лекцію
- Студент відвідує лекцію
- Лектор читає лекцію
Attributes
Атрибут — це властивість або характеристика, яка описує сутність або зв'язок. Атрибути надають детальну інформацію, яка робить кожен екземпляр сутності унікальним та значущим. На ER-діаграмах атрибути представлені за допомогою овалів (еліпсів), з'єднаних з батьківською сутністю лінією.
Наприклад, сутність «Студент» може мати такі атрибути, як «Ідентифікатор_студента», «Ім’я», «Дата_народження», «Електронна_адреса» та «Номер_телефону».
Типи атрибутів
| Тип атрибута | Опис | Приклад |
|---|---|---|
| Простий (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-діаграми:
Давайте вивчимо їх на прикладі діаграми зв’язків сутностей:
В університеті студент записується на курси. Студент повинен бути призначений принаймні на один курс. Кожен курс викладає один професор. Для підтримки якості навчання професор може читати лише один курс.
Крок 1) Ідентифікація сутності
У нас є три суб'єкти:
- студент
- Курс
- Професор
Крок 2) Ідентифікація стосунків
Ми маємо такі два зв'язки:
- Учень є призначений курс
- Професор постачає курс
Крок 3) Ідентифікація потужності
З формулювання задачі ми знаємо, що:
- Студент може бути призначений множинний курси
- Доставляти може лише професор один курс
Крок 4) Визначте атрибути
Вам потрібно вивчити файли, форми, звіти та дані, які наразі зберігаються в організації, щоб визначити атрибути. Ви також можете провести інтерв'ю з різними зацікавленими сторонами, щоб визначити сутності. Спочатку важливо визначити атрибути, не пов'язуючи їх з конкретною сутністю.
Після того, як у вас є список атрибутів, вам потрібно зіставити їх з ідентифікованими сутностями. Переконайтеся, що атрибут має бути пов'язаний лише з однією сутностю. Якщо ви вважаєте, що атрибут повинен належати кільком сутностям, використовуйте модифікатор, щоб зробити його унікальним.
Після завершення відображення визначте первинні ключі. Якщо унікальний ключ недоступний, створіть його.
| Сутність | Первинний ключ | атрибут |
|---|---|---|
| студент | Student_ID | Ім'я студента |
| Професор | Employee_ID | ProfessorName |
| Курс | Course_ID | Назва курсу |
Для сутності курсу атрибутами можуть бути тривалість, кредити, завдання тощо. Для зручності ми розглянули лише один атрибут.
Крок 5) Створення ERD
Більш сучасне представлення прикладу діаграми зв'язків сутностей:
Найкращі практики для ефективних ER-діаграм
Дотримуйтесь цих інструкцій, щоб створити чіткі, зручні в підтримці та ефективні діаграми ER:
- Усуньте надмірність: Видаліть дублікати сутностей, атрибутів або зв'язків.
- Використовуйте чіткі правила іменування: Використовуйте узгоджені, описові назви. Уникайте скорочень.
- Перевірити на відповідність вимогам: Переконайтеся, що діаграма підтримує всі потреби зберігання даних.
- Не ускладнювати: Створюйте кілька діаграм на різних рівнях, а не одну захаращену діаграму.
- Економно використовуйте колір: Використовуйте кольори послідовно для виділення категорій.
- Припущення щодо документа: Включіть примітки, що пояснюють припущення щодо бізнес-правил.
- Revдумка із зацікавленими сторонами: Попросіть бізнес-користувачів та технічну команду переглянути схему.
- Контроль версій: Підтримуйте версії в міру розвитку дизайну.
ER-діаграми проти діаграм класів UML
Хоча ER-діаграми та діаграми класів UML використовуються для моделювання даних, вони служать різним цілям та контекстам. Розуміння того, коли використовувати кожну з них, важливе для ефективного проектування системи.
| Аспект | Діаграма швидкої допомоги | Діаграма класів UML |
|---|---|---|
| Основне призначення | Дизайн бази даних | Дизайн програмного забезпечення/об'єктів |
| Focus | Дані та зв'язки | Об'єкти, методи та поведінка |
| Методи/Operaвих | Не підтримується | Повністю підтримується |
| Спадкування | Обмежено (лише в EER) | Повна підтримка |
| Використання в промисловості | Адміністратори баз даних, аналітики даних | Розробники програмного забезпечення, архітектори |















