ER-диаграмма (диаграмма сущность-связь, ERD). Что это?

er диаграмма, диаграмма сущность связь, er диаграмма данных, er диаграмма базы, er диаграмма базы данных, пример er диаграммы, диаграмма er отображает, нотации er диаграмм, построение er диаграммы, построить er диаграмму

ER-диаграмма. Что это?

ER-диаграмма (диаграмма сущность-связь, ERD) — это концептуальная графическая модель данных, которая используется для визуализации, описания и анализа структуры данных или информационного окружения в системе. Она представляет собой схематическое отображение и взаимодействие ключевых элементов системы, таких как сущности (часто сопоставимые с реальными объектами или концепциями), атрибуты (которые представляют собой характеристики или детали этих сущностей) и связи (показывающие механизмы взаимодействия и взаимосвязи между сущностями).

ER-диаграмма отображает информацию на высоком уровне абстракции, предоставляя упрощенное, но всеобъемлющее представление о сложных структурах данных. Она играет ключевую роль в проектировании и развитии баз данных и информационных систем, служа как инструмент для методического анализа и валидации системных требований, а также в качестве чертежа, помогающего программистам и другим участникам проекта лучше понимать структуру и дизайн системы. Задача ER-диаграммы – эффективно облегчить процесс проектирования базы данных, снизить вероятность ошибок и недопониманий и обеспечить более точное и безошибочное исполнение требований системы.

Элементы диаграммы

Сущности

Сущности являются самыми фундаментальными объектами на диаграмме ER. Они прямоугольные боксы, обозначающие реальные или абстрактные объекты, которые принимают активное участие в бизнес-процессе или событии, имеют важное значение для системы и могут быть идентифицированы отдельно. Например, в системе управления литературой библиотеки сущностями могут быть «Книга», «Автор», «Читатель», «Издатель» и т.д.

Атрибуты

Атрибуты представляют собой характеристики или свойства сущности. Они описывают данные, которые связаны с каждой записью сущности. Овалы изображают атрибуты и связывают их с соответствующей сущностью. Например, для сущности «Пользователь» атрибутами могут быть «Имя», «Фамилия», «Email». Атрибуты также имеют типы данных, такие как строка, число, дата и другие, которые определяют, какую информацию они могут содержать..

Связи

Связи отражают отношения между двумя или более сущностями. Они помогают описать взаимодействия, которые имеют место между сущностями в системе. Линии, соединяющие сущности, и ромбы с их названиями изображают связи. Например, название связи может быть «Написал» между «Автором» и «Книгой», указывая на том, что автор написал книгу.

Кардинальность

Кардинальность указывает на количество инстанций одной сущности, связанных с инстанциями другой сущности.

Связи могут быть одним из трех типов:

  • Один к одному (One-to-One): Один объект связан с одним объектом другой сущности.
  • Один ко многим (One-to-Many): Один объект связан с несколькими объектами другой сущности.
  • Многие ко многим (Many-to-Many): Множество объектов одной сущности связаны с множеством объектов другой сущности. Для представления такой связи обычно используется вспомогательная таблица.

Например, один автор может написать несколько книг, но каждую книгу написал только один автор, поэтому отношение здесь – один ко многим.

Свойства связей (Relationship Attributes)

Кроме атрибутов связей, вы можете указать дополнительные свойства для связей, такие как название, описание или ограничения, которые помогают более подробно описать взаимосвязь.

Уникальные идентификаторы (первичные ключи)

Уникальные идентификаторы или первичные ключи служат для уникальной идентификации каждого экземпляра сущности. Они помечаются подчеркнутыми на диаграмме ER и обеспечивают уникальность записей в базе данных.

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

Нотации ER-диаграммы

Существует несколько нотаций для ER-диаграмм (Entity-Relationship diagrams), которые используются для визуального моделирования структуры данных и их взаимосвязей. Вот некоторые из наиболее распространенных нотаций для ER-диаграмм:

Нотация Чена (Chen Notation)

Пример ER диаграммы в нотации Чена
Пример ER диаграммы в нотации Чена

Сущности

Сущность в нотации Чена представлена прямоугольником с названием сущности внутри

Слабая сущность — это сущность, которую невозможно уникально идентифицировать только по её атрибутам. Существование слабой сущности зависит от другой сущности, называемой владельцем (owner entity). Идентификатор слабой сущности представляет собой комбинацию идентификатора владельца и частичного ключа слабой сущности.

Слабая ассоциативная сущность — это сущность, используемая в отношении «многие-ко-многим» (представляет собой дополнительную таблицу). Все связи для слабой ассоциативной сущности должны быть связями «многие».

Представление сущностей в нотации Чена
Представление сущностей в нотации Чена

Атрибуты

Атрибуты в нотации Чена представлены овалом, содержащим имя атрибута и связаны с сущностью прямыми линиями. Существуют некоторые специфические типы атрибутов:

Ключевой атрибут — атрибут, который уникально идентифицирует конкретную сущность. Имя ключевого атрибута подчеркивается:

Атрибут-дискриминатор (частичный ключ) — атрибут, который в сочетании с ключевым атрибутом владельца обеспечивает уникальную идентификацию слабой сущности. Мы подчеркиваем дискриминатор пунктирной линией.

Многозначный атрибут — атрибут, который может иметь много значений (в одном и том же столбце таблицы вводится много различных значений). Многозначный атрибут изображается двойным овалом.

Производный атрибут (или вычисляемый атрибут) — атрибут, значение которого вычисляется (производится) из других атрибутов. Производный атрибут может быть хранящимся или не хранящимся в базе данных. В нотации Чена этот атрибут изображается пунктирным овалом.

Представление атрибутов в нотации Питера Чена
Представление атрибутов в нотации Питера Чена

Связи

В нотации Чена связь представляется ромбом, внутри которого указывается имя связи.

Различают два вида связей:

Сильная связь — это связь, в которой сущность существует независимо от других сущностей, и первичный ключ дочерней сущности (Child) не содержит компонент первичного ключа родительской сущности (Parent). Сильная связь представлена одним ромбом:

Слабая (идентифицирующая) связь — это связь, в которой сущность Child зависит от сущности Parent, и первичный ключ сущности Child (Child Entity) содержит компонент первичного ключа сущности Parent (Parent Entity). Эту связь представляют двойным ромбом:

Опциональность связи

Аналогично нотации Баркера, обязательная связь представлена сплошной линией. Опциональная связь представлена пунктирной линией, как и в нотации Баркера.

Опциональность связей в нотации Питера Чена
Опциональность связей в нотации Питера Чена
Мощность связи (кардинальность)

Степень связи (кардинальность) представляется символами «1», «N» или «M», обычно размещенными на концах связей.

Один-к-одному (1:1) Сотрудник может управлять только одним отделом, и каждый отдел может управляться только одним сотрудником.

Связь один к одному в нотации Питера Чена
Связь один к одному в нотации Питера Чена

Один-ко-многим (1:N) Клиент может размещать много заказов, но каждый заказ может быть размещен только одним клиентом.

Связь один ко многим в нотации Питера Чена
Связь один ко многим в нотации Питера Чена

Многие-к-одному (N:1) Много сотрудников может принадлежать к одному отделу, но один конкретный сотрудник может принадлежать только одному отделу.

Связь многие к одному в нотации Питера Чена
Связь многие к одному в нотации Питера Чена

Многие-ко-многим (M:N)  Один студент может быть членом более одной студенческой организации, и одна организация может принимать более одного студента.

Связь многие ко многим в нотации Питера Чена
Связь многие ко многим в нотации Питера Чена

Ограничения участия Набор сущностей может участвовать в связи либо полностью, либо частично.

Полное участие означает, что каждая сущность в наборе участвует в связи. Например, каждому студенту должен быть назначен преподаватель (не существует студентов, которым не назначен ни один преподаватель). В нотации Чена такого рода отношение изображается двойной линией.

Частичное участие означает, что не все сущности в наборе участвуют в связи. Например, не каждый преподаватель руководит студентом (есть преподаватели, которые этого не делают). В нотации Чена, частичное участие изображается одной линией.

Связь, показанная выше, означает, что каждому студенту, без исключения, должен быть назначен один выбранный преподаватель, и в то же время, не каждый преподаватель может руководить многими студентами. Таким образом, нет студентов, которым не руководит ни один преподаватель, и, с другой стороны, могут быть преподаватели, которые не руководят ни одним студентом.

Нотация Баркера (Barker Notation)

При изучении различных видов нотаций сущность-связь (Entity-Relationship Diagram, ERD) трудно не встретить нотацию Баркера, которая широко используется для описания данных в Oracle. Ричард Баркер и его коллеги разработали эту нотацию ERD, работая в британской консалтинговой фирме CACI примерно в 1981 году. И когда Баркер присоединился к Oracle, компания приняла его нотацию.

Пример ER диаграммы в нотации Бакера
Пример ER диаграммы в нотации Бакера

Сущность

Сущность представляется в виде прямоугольника с закругленными углами. Название сущности должно находиться в верхней части прямоугольника и быть в единственном числе.

Обозначение сущности в нотации Бакера
Обозначение сущности в нотации Бакера

Атрибуты

Атрибуты описывают характеристики конкретного экземпляра сущности. Атрибут может быть трех типов:

  1. Уникальный идентификатор — уникально идентифицирует экземпляр сущности, обозначается символом #.
  2. Обязательный — его значение не может быть нулевым, обозначается символом *.
  3. Опциональный — его значение может быть нулевым, обозначается символом О.

    Обозначение атрибутов сущности в нотации Бакера
    Обозначение атрибутов сущности в нотации Бакера

Связи

Связь объединяет два или более экземпляра сущностей. Связь на диаграмме представляет прямая линия.

Опциональность связи

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

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

Опциональность связей в нотации Бакера
Опциональность связей в нотации Бакера

В нотации Баркера разрешаются только двоичные связи.

Степень связей

  • Один-к-одному: Каждый экземпляр сущности имеет только одну связь с другим экземпляром сущности.
  • Один-ко-многим: Каждый экземпляр сущности связан с несколькими экземплярами другой сущности.
  • Многие-ко-многим: Несколько экземпляров сущностей связаны с несколькими экземплярами другой сущности.

    Кардинальность связей в нотации Бакера
    Кардинальность связей в нотации Бакера

UID-полоса

Полоса «|» на одном из концов связи указывает, что связь является компонентом первичного идентификатора для типа сущности с тем концом.

Связь уникального идентификатора
Связь уникального идентификатора

IDEF1X (Integration Definition for Information Modeling):

Сущности: Представляются прямоугольниками с именами сущностей внутри.

Атрибуты: Описываются внутри сущности в виде овалов и имеют специальные обозначения для ключевых атрибутов.

Связи: Показываются линиями, которые соединяют сущности, и имеют специфические обозначения для указания типа отношения и множественности.

IDEF1X (Integration DEFinition for Information Modeling) — это метод проектирования реляционных баз данных с синтаксисом, который поддерживает конструкции для разработки концептуальной схемы.

Но не каждый знает, что у этой нотации есть интересная история. Действительно, ВВС США впервые признали потребность в семантических моделях данных в середине 1970-х годов. В результате этого была создана программа ICAM (она выявила потребность в более эффективных методиках анализа и коммуникации для лиц, занимающихся улучшением производительности производства), которая позднее разработала ряд методик, известных как IDEF; IDEF1X — одна из них.

Пример ER диаграммы в нотации IDEF1X
Пример ER диаграммы в нотации IDEF1X

Сущности

Прямоугольник с закругленными углами представляет слабую сущность (зависимую). Экземпляры зависимых сущностей-идентификаторов не имеют смысла (по определению) без связанного экземпляра другой сущности.

Прямоугольник представляет сильную сущность (независимую). Экземпляры независимых сущностей-идентификаторов могут существовать без каких-либо других экземпляров сущностей.

Представление сущностей в нотации IDEF1X
Представление сущностей в нотации IDEF1X

Атрибуты

Для представления атрибутов сущности она разделяется на две части. В первой части находятся атрибуты первичного ключа, в то время как во второй части — остальные атрибуты. Кроме того, название сущности обычно располагается над прямоугольником. Каждый атрибут должен иметь значение (Правило No-Null), и ни один атрибут не может иметь несколько значений (Правило No-Repeat). У каждой сущности есть ровно один первичный ключ, отображаемый над горизонтальной линией внутри прямоугольника сущности. Внешние ключи обозначаются (FK), а альтернативные ключи представляются как (AK), чтобы показать, что они не принадлежат этой сущности.

Представление атрибутов в нотации IDEF1X
Представление атрибутов в нотации IDEF1X

Связи

В нотации IDEF1X на диаграмме связи отображаются в виде сплошных или пунктирных линий с заполненными кругами на одном или обоих концах, показывая, как сущности взаимосвязаны между собой. Связи всегда между ровно двумя сущностями и подписываются глагольной фразой, описывающей отношение. Каждое отношение имеет связанную мощность (кардинальность), которая указывает количество экземпляров зависимой сущности, связанных с экземпляром независимой сущности.

Представление связей в нотации IDEF1X
Представление связей в нотации IDEF1X

Лучшие практики при построении ER-диаграмм

Следуйте соглашениям по наименованию

Использование СОГЛАШЕНИЙ ПО НАИМЕНОВАНИЯМ в вашей модели данных упрощает жизнь для тех, кто читает или изменяет модель. Соглашения по наименованиям полезны не только для всех объектов базы данных (таблиц, ссылок и т. д.), но также для функций, таких как имена моделей, теги, предметные области и сокращенные таблицы.

Документация по соглашениям по наименованию не всегда доступна при работе с моделями баз данных. В таком случае следуйте схеме наименования, используемой в модели, ради согласованности.

Избегайте перекрытия ссылок

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

Используйте цветовую разметку

Цветовая разметка объектов базы данных и элементов ER-диаграммы чрезвычайно недооценена. В модели звездной схемы вы можете использовать ЦВЕТОВУЮ РАЗМЕТКУ для обозначения типов фактов, измерений и таблиц истории. Вы также можете использовать разные цвета для таблиц, присутствующих в ER-модели, но больше не используемых.

Упростите с помощью сокращенных таблиц

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

Создавайте предметные области

Как приложение обычно можно разделить на несколько сервисов на основе домена, сущности ERD можно разделить на разные домены, называемые ПРЕДМЕТНЫМИ ОБЛАСТЯМИ. Предметные области улучшают читаемость и навигацию в ER-модели. они также соответствуют эстетическим вкусам просматривающих и создающих ERD.

Добавьте заметки к вашей ER-диаграмме

Сложные ER-диаграммы также создают еще одну проблему: часто бывает сложно понять контекст, лежащий в основе таблицы, столбца или любого другого типа объекта базы данных. Добавление заметки о причинах вашего решения — почему вы выбрали конкретный тип данных и т. д. — окажется крайне полезным для зрителя.

Построение ER-диаграммы (Entity-Relationship diagram)

Чтобы построить ER-диаграмму (Entity-Relationship Diagram) вам потребуется следовать определенным шагам и использовать специализированные инструменты. Вот пошаговая инструкция по созданию ER-диаграммы.

  1. Определение цели и требований.Прежде чем начать, определите цель создания ER-диаграммы и требования к вашей базе данных. Четкое понимание целей поможет определить, какие сущности и связи вам необходимо моделировать.
  2. Идентификация сущностей.Определите все сущности (объекты), которые будут присутствовать в вашей базе данных. Сущности представляют собой сущности, о которых вы хотите хранить информацию. Например, если вы создаете базу данных для онлайн-магазина, сущностями могут быть «Пользователь», «Товар», «Заказ» и т.д.
  3. Идентификация атрибутов.Для каждой сущности определите ее атрибуты — это характеристики или свойства, которые описывают каждую запись этой сущности. Например, для сущности «Пользователь» атрибутами могут быть «Имя», «Фамилия», «Email».
  4. Идентификация связей.Определите связи между сущностями, показывая, как они взаимодействуют друг с другом. Связи могут быть одним из трех типов: один к одному, один ко многим или многие ко многим. Например, связь «Пользователь делает заказ» связывает сущности «Пользователь» и «Заказ».
  5. Определение основных ключей.Для каждой сущности определите основной ключ, который уникально идентифицирует каждую запись этой сущности. Обычно это один или несколько атрибутов.
Техноблог
Добавить комментарий