ER-модель. Поняття зв’язку. Потужність зв’язку. Типи зв’язків. Приклади

ER-модель. Поняття зв’язку. Потужність зв’язку. Типи зв’язків. Приклади

Рекомендується перед вивченням даної теми ознайомитись з наступними темами:


Зміст


1. Що таке зв’язок в ER-моделі? Приклад

Дві сутності можуть мати між собою зв’язок. Взаємовідносини між сутностями характеризуються дієсловом, яке можна застосувати для взаємодії між ними. Зв’язок – це деяке відношення між двома типами сутностей.

Наприклад. Наведений приклад демонструє визначення зв’язку між сутностями Студент, Дисципліна, Група.

Студент вивчає дисципліну – виділяється дієслово “вивчає”.

Студент навчається у групі – виділяється дієслово “навчається”.

2. Як зв’язки позначаються в ER-моделі?

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

3. Які типи зв’язків розрізняють в ER-моделі?

Розрізняють 3 типи зв’язків між сутностями:

  • “один до одного” або 1:1. Це означає, що одному екземпляру сутності може відповідати тільки один екземпляр іншої сутності;
  • “один до багатьох” або 1:M. Це означає, що одному екземпляру сутності може відповідати будь-яка кількість (M) екземплярів іншої сутності. Якщо відоме значення максимальної кількості екземплярів, то це значення вказується замість символу M;
  • “багато до багатьох” або M:N. Це означає, що декільком екземплярам однієї сутності може відповідати декілька екземплярів іншої сутності.


4. Приклад зв’язку типу “один до багатьох” – 1:М

На рисунку 1 зображено фрагмент ER-моделі, що демонструє зв’язок між типами сутностей Студент і Група.

зв'язок сутність рисунок

Рис. 1. Зв’язок між типами сутностей Студент та Група

На вищенаведеному рисунку зображено два типи сутностей Студент та Група. Між типами сутностей Студент та Група є зв’язок, тому що студент навчається в групі (ромб з текстом “навчаєтьлся”).

У групі може бути багато студентів. Студент може навчатись тільки в одній групі, у двох і більше групах студент навчатись не може. Тому, на рисунку тип зв’язку позначено як 1:М, що означає “один до багатьох”. Позначення М знаходиться біля типу сутності Студент (багато студентів), позначення 1 знаходиться біля сутності Група (одна група).

Тип сутності Студент позначено як “слабка” сутність. Тип сутності Група позначено як сильна сутність. Це означає, що студент знаходиться в підлеглому стані до групи, в якій він навчається.

5. Що таке потужність зв’язку? Приклад

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

Наприклад. Студент навчається у групі. Між типами сутностей Студент та Група можна встановими зв’язок 1:30, як показано на рисунку 2. Число 30 означає, що у групі може навчатись не більше 30 студентів.

ER-модель зв'язок сутність

Рисунок 2. Зв’язок між сутностями Студент та Група

Якщо кількість значень екземплярів сутностей довільна, то потужність зв’язку найчастіше представляється символом M або знаком  (нескінченість).

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

6. Приклад зв’язку типу “багато до багатьох” – M:N

Нехай задано два типа сутностей: Студент та Дисципліна. Якщо студент (тип сутності Студент) вивчає деяку дисципліну (тип сутності Дисципліна), то на ER-моделі зв’язок може бути відображений так як показано на рисунку 3.

зв'язок сутність ER-модель фото

Рисунок 3. Відображення зв’язку типу “багато до багатьох”

На рисунку 3 символами M та N позначено тип зв’язку “багато до багатьох”. Цей тип зв’язку вибрано, тому що один студент може вивчати декілька (багато) дисциплін, і, навпаки, одну дисципліну може вивчати декілька студентів.

7. Яка характерна відмінність типу зв’язку “один до одного” 1:1 порівняно з іншими типами?

Тип зв’язку “один до одного” 1:1 відрізняється від інших типів зв’язку тим, що він може бути замінений атрибутом. При проектуванні бази даних, розробник на власний розсуд повинен визначити, чи потрібно використовувати тип зв’язку 1:1, чи достатньо замінити його атрибутом. Все це залежить від специфіки вирішуваної задачі.

8. Які особливості реалізації зв’язку типу “багато до багатьох” або M:N? Як реалізувати зв’язок “багато до багатьох”? Приклад

Зв’язок “багато до багатьох” складно реалізувати програмно, тому що реляційні бази даних підтримують зв’язок “один до багатьох”. Щоб вирішити цю проблему, розробник бази даних створює штучний тип сутності, який виконує функції комутатора між двома основними сутностями.

Приклад. Для двох типів сутностей Студент та Дисципліна можна реалізувати штучний тип сутності, як показано на рисунку 4.

ER-модель сутність зв'язок діаграма

Рис. 4. Реалізація зв’язку “багато до багатьох” або M:N

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

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

сутність зв'язок ER-діаграма

Рис. 5. Реалізація спрощеного варіанту штучного типу сутності на ER-діаграмі


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