У світі баз даних і моделювання даних сутності, атрибути та відносини сутностей складають основу ефективної організації даних. Незалежно від того, чи будуєте ви просту базу даних чи проектуєте складну реляційну систему, розуміння цих концепцій є важливим. Ця стаття докладно пояснює ці основні компоненти, розглядаючи їх визначення, типи та реальні застосування.
1. Що таке сутності?
Сутність представляє реальний об'єкт або концепцію, про яку можна зберігати дані в базі даних. Вона є основним будівельним блоком моделі "сутність-відносини" (Entity-Relationship Model, ERM).
Ключові характеристики сутностей
- Унікальність: Кожна сутність є унікальною та ідентифікованою.
- Представлення реального світу: Сутності відповідають конкретним або абстрактним об'єктам, таким як людина, місце чи процес.
Типи сутностей
- Сильні сутності:
- Існують незалежно від інших сутностей.
- Мають первинний ключ для унікальної ідентифікації кожного екземпляра.
- Приклад: у базі даних університету сутності, такі як Студент або Курс, є сильними сутностями.
2. Слабкі сутності:
- Залежать від сильної сутності для свого існування.
- Не мають первинного ключа, але використовують комбінацію своїх атрибутів та первинний ключ пов'язаної сильної сутності як складений ключ.
- Приклад: сутність Залежна в базі даних страхування (залежить від сутності Поліс).
2. Що таке атрибути?
Атрибути описують властивості або характеристики сутності. Вони представляють дані, які ми хочемо зберегти про сутність.
Ключові характеристики атрибутів
- Кожен атрибут містить одне значення інформації про сутність.
- Атрибути — це стовпці в таблиці бази даних для відповідної сутності.
Типи атрибутів
Прості атрибути:
- Містять атомарні значення, які не можна поділити на частини.
- Приклад:
Ім'я
,Вік
.
- Складені атрибути:
- Можуть бути поділені на менші частини.
- Приклад:
Повне ім'я
можна розділити наІм'я
таПрізвище
.
2. Виведені атрибути:
- Не зберігаються безпосередньо, але виводяться з інших атрибутів.
- Приклад:
Вік
можна вивести зДати народження
.
3. Багатозначні атрибути:
- Можуть мати кілька значень для одного екземпляра сутності.
- Приклад: сутність Людина може мати атрибут
Телефони
.
4. Ключові атрибути:
- Унікально ідентифікують екземпляр сутності.
- Приклад:
ID студента
для сутності Студент.
3. Що таке відносини?
Відносина визначає, як дві або більше сутностей пов'язані між собою. Вона встановлює асоціації між сутностями в базі даних.
Ключові характеристики відносин
- Представляються як дієслово або фраза (наприклад, "записується на", "керує").
- Може включати дві або більше сутностей.
Типи відносин
- Один до одного (1:1):
- Кожен екземпляр сутності A пов'язаний з одним і тільки з одним екземпляром сутності B, і навпаки.
- Приклад: кожна людина в компанії має один паспорт.
2. Один до багатьох (1:N):
- Один екземпляр сутності A пов'язаний з кількома екземплярами сутності B, але сутність B пов'язана лише з одним екземпляром сутності A.
- Приклад: вчитель може навчати кількох студентів.
3. Багато до багатьох (M:N):
- Кілька екземплярів сутності A пов'язані з кількома екземплярами сутності B.
- Приклад: студенти записуються на кілька курсів, і кожен курс може мати кілька студентів.
4. Самозв'язкові відносини:
- Сутність пов'язана сама з собою.
- Приклад: працівники можуть керувати іншими працівниками.
Діаграма сутностей і відносин (ERD)
ERD візуально представляє сутності, атрибути та відносини, що полегшує розуміння та проектування баз даних.
Компоненти ERD
- Сутності: представлені прямокутниками.
- Атрибути: представлені овали, підключені до їхніх сутностей.
- Відносини: представлені діамантами між сутностями.
- Кардинальність: вказує кількість екземплярів, залучених у відносини.
Приклад ERD
Розглянемо просту базу даних університету:
- Сутності: Студент, Курс, Запис.
- Атрибути:
StudentID
,Name
,CourseID
,CourseName
. - Відносини: Студент записується на Курс.
+--------------+
| Student |
+--------------+
| StudentID |
| Name |
+--------------+
^
|
is enrolled in
|
v
+--------------+
| Course |
+--------------+
| CourseID |
| CourseName |
+--------------+
5. Реальні застосування
Електронна комерція:
Сутності: Клієнт, Замовлення, Продукт.
Відносини: Клієнти роблять замовлення, а замовлення включають продукти.
Охорона здоров’я:
Сутності: Пацієнт, Лікар, Запис на прийом.
Відносини: Пацієнти записуються на прийом до лікаря.
Соціальні мережі:
Сутності: Користувач, Пост, Коментар.
Відносини: Користувачі створюють пости та коментують пости.
6. Приклад для підсумку всього
Розглянемо двох друзів, Deepanshu та Gaurang, як приклад для розуміння сутностей, атрибутів та відносин сутностей.
Сутність
Сутність — це людина, об'єкт або річ, про яку ми хочемо зберігати інформацію. У цьому випадку Deepanshu та Gaurang — це дві сутності в категорії Людина.
Атрибути
Атрибути — це деталі про сутність. Для сутностей Deepanshu та Gaurang атрибути можуть бути:
- Ім'я: Deepanshu, Gaurang
- Вік: 22, 21
- Хобі: Подорожі, Геймінг
- Місто: Ноїда, Делі
Відносина сутностей
Відносини показують, як сутності пов'язані між собою. Наприклад:
- Відносина дружби: Deepanshu та Gaurang — друзі.
Цю відносину можна представити так:
Deepanshu ← — є другом — → Gaurang
Простий реальний приклад бази даних
Якщо ми зберігатимемо це в базі даних:
- Сутності (Таблиця Person):
2. Відносина (Таблиця Friendship):
Цей простий приклад показує, як сутності, їхні атрибути та відносини працюють у базі даних!
6. Кращі практики для проектування сутностей та відносин
- Чітко визначте всі сутності та атрибути перед проектуванням бази даних.
- Уникайте надмірних атрибутів і відносин.
- Використовуйте змістовні назви для сутностей, атрибутів і відносин.
- Нормалізуйте базу даних, щоб зменшити надмірність і покращити узгодженість.
- Переконайтеся, що відносини та кардинальності точно відображають вимоги реального світу.
Перекладено з: Understanding Entities, Attributes, and Entity Relationships