ER-модель. Понятие связи. Мощность связи. Типы связей. Примеры

ER-модель. Понятие связи. Мощность связи. Типы связей. Примеры

Рекомендуется перед изучением данной темы ознакомиться с следующими темами:


Содержание


1. Что такое связь в ER-модели? Пример

Между двумя сущностями может быть установлена связь. Отношения между сущностями характеризуются глаголом, который можно применить для взаимодействия между ними. Связь – это некое отношение между двумя типами сущностей.

Например. Приведенный пример демонстрирует определение связи между типами сущностей Студент, Дисциплина, Группа.
Студент изучает дисциплину – выделяется глагол «изучает».
Студент учится в группе – выделяется глагол «учится».

2. Как связи обозначаются в ER-модели?

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

3. Какие типы связей различают в ER-модели?

Между типами сущностей различают следующих 3 типа связей:

  • «один-к-одному» или 1:1. Это значит, что одному экземпляру некоторой сущности может соответствовать только один экземпляр другой сущности;
  • «один-ко-многим» или 1:M. Это значит, что одному экземпляру сущности может соответствовать любое количество (M) экземпляров другой сущности. Если известно значение максимального количества экземпляров, то это значение указывается вместо символа М;
  • «много-к-многим» или M:N. Это означает, что нескольким экземплярам одной сущности может соответствовать несколько экземпляров другой сущности.


4. Пример связи типа «один ко многим» – 1:М

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

связь сущность ER-модель рисунок

Рис. 1. Связь между типами сущностей Студент и Группа

На вышеприведенном рисунке изображены два типа сущностей Студент и Группа. Между типами сущностей Студент и Группа есть связь, так как студент учится в группе (ромб с текстом «учиться»).
В группе может быть много студентов. Студент может учиться только в одной группе, в двух и более группах студент учиться не может. Поэтому, на рисунке тип связи обозначен как 1:М, что значит «один ко многим». Обозначение М находится возле типа сущности Студент (много студентов), обозначение 1 находится возле сущности Группа (одна группа).
Тип сущности Студент обозначен как «слабая» сущность. Тип сущности Группа обозначен как сильная сущность. Это значит, что студент находится в подчиненном состоянии к группе, в которой он учится.

5. Что такое мощность связи? Пример

Мощность связи – это значение максимального количества конкретных экземпляров сущностей, которые могут использоваться для данной связи. Мощность связи 5 говорит о том, что в данной связи может быть использовано не более 5 разных экземпляров сущностей. Или, иными словами, не более 5 отличных между собой значений.

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

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

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

Если количество значений экземпляров сущностей произвольно, то мощность связи наиболее часто представляется символом M или знаком (бесконечность).
Использование конкретных числовых значений в мощности связи есть удобным при разработке программного обеспечения, поскольку можно более качественно реализовать структуры данных зная их максимальный размер.

6. Пример связи типа «много ко многим»

Пусть заданы два типа сущностей: Студент и Дисциплина. Если студент (тип сущности Студент) изучает некую дисциплину (тип сущности Дисциплина), то на 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-диаграмме


Связанные темы