Рассмотрим подробнее элементы ER диаграммы.
Сущности (Entities)
Определение сущности
Сущность в контексте сущностно-связной диаграммы (ERD) представляет собой объект или компонент, который можно чётко идентифицировать и который имеет собственное существование. Сущности используются для представления физических объектов (например, сотрудник, автомобиль), концепций или событий (например, курс, встреча), которые имеют значение для предметной области и данные о которых необходимо хранить в базе данных.
Типы сущностей
-
Сильные сущности: Сильные сущности - это сущности, которые могут существовать независимо от других сущностей в модели. Они имеют уникальный идентификатор, известный как первичный ключ, который позволяет уникально определить каждый экземпляр сущности. Примером сильной сущности может быть «Сотрудник», где первичный ключом может быть уникальный идентификационный номер сотрудника.
-
Слабые сущности: Слабые сущности не могут существовать самостоятельно и зависят от другой сущности, известной как родительская сущность, для идентификации. Слабые сущности не имеют своих собственных уникальных ключей и часто идентифицируются с помощью комбинации своих атрибутов и атрибутов родительской сущности. Например, сущность «Зависимый» может быть слабой, так как зависит от сущности «Сотрудник» для своего идентификации.
-
Ассоциативные сущности: Ассоциативные сущности, или связующие сущности, используются для моделирования отношения между двумя или более сущностями, где это отношение само по себе содержит атрибуты. Эти сущности часто представляют отношения многие-ко-многим. Например, сущность «Работа», которая связывает «Сотрудника» и «Проект», может иметь дополнительные атрибуты, такие как роль сотрудника в проекте или дата начала работы.
Обозначение сущностей на диаграмме
На ER-диаграмме сущности обозначаются прямоугольниками. Имя сущности указывается в верхней части прямоугольника и должно быть существительным в единственном числе. Первичный ключ сущности часто выделяется и помечается в списке атрибутов, находящихся внутри или под именем сущности на диаграмме. Слабые сущности дополнительно обозначаются двойным контуром прямоугольника, а ассоциативные сущности – соединительной линией, связывающей их с другими сущностями, и содержат атрибуты, описывающие природу связи.
Атрибуты (Attributes)
Определение атрибута
Атрибут в контексте ERD представляет собой характеристику или свойство сущности, которое помогает определить её и различать среди других экземпляров. Атрибуты используются для хранения данных, относящихся к сущности, и могут принимать конкретные значения, которые описывают каждый экземпляр сущности в базе данных.
Виды атрибутов
-
Простые атрибуты: Простые атрибуты не делятся на более мелкие составляющие и содержат единичное значение для каждого экземпляра сущности. Например, атрибут «Имя» сотрудника или «Дата рождения».
-
Составные атрибуты: Составные атрибуты состоят из нескольких компонентов, каждый из которых является отдельным атрибутом и может также иметь значение. Примером может служить атрибут «Адрес», разделяемый на улицу, город, почтовый индекс и страну.
-
Многозначные атрибуты: Многозначные атрибуты могут иметь несколько значений для одного экземпляра сущности. Например, атрибут «Телефонные номера» сотрудника может включать домашний, рабочий и мобильный телефоны.
Обязательные и необязательные атрибуты
Атрибуты могут быть классифицированы как обязательные или необязательные в зависимости от того, требуется ли их присутствие у каждого экземпляра сущности:
-
Обязательные атрибуты должны иметь значение у каждого экземпляра сущности. Они критичны для функционирования базы данных и часто включают ключевые поля, такие как идентификационные номера.
-
Необязательные атрибуты могут не иметь значения у некоторых экземпляров сущности. Это допускает более гибкое представление данных, позволяя атрибутам быть пустыми или неуказанными.
Доменные ограничения атрибутов
Доменные ограничения определяют множество допустимых значений для атрибута. Эти ограничения могут включать тип данных (например, целое число, строка, дата), диапазон значений (например, от 1 до 100), или специфические правила (например, формат электронной почты или телефонного номера). Доменные ограничения помогают обеспечить точность и целостность данных в базе данных, ограничивая типы данных, которые могут быть введены в каждый атрибут, и способствуя стандартизации введённых данных.
Подтипы и супертипы (Subtypes and Supertypes)
Понятие наследования и иерархии сущностей
Наследование в контексте ERD позволяет организовать и структурировать сущности в иерархии, где подтипы наследуют атрибуты и, возможно, связи от своих супертипов. Это понятие аналогично наследованию в объектно-ориентированном программировании. Супертип – это общая сущность, которая описывает общие характеристики группы подтипов. Подтипы – это специализированные версии супертипа, добавляющие уникальные атрибуты или переопределяющие унаследованные атрибуты.
Обозначение подтипов и супертипов на диаграмме
На ER-диаграмме супертипы и подтипы обозначаются следующим образом:
- Супертип представлен прямоугольником, как и обычная сущность, но он связан с одним или несколькими подтипами.
- Подтипы также представлены прямоугольниками, которые соединяются с прямоугольником супертипа через линию, обозначающую наследование. Эта линия может быть украшена стрелкой или треугольником, указывающим на супертип.
- Используются специальные символы (например, круг с символами ‘D’ или ‘I’), чтобы указать, является ли наследование полным (все экземпляры супертипа должны быть одним из подтипов) или частичным (некоторые экземпляры супертипа не обязательно являются подтипом), а также перекрывающимся (один экземпляр может принадлежать к нескольким подтипам) или неперекрывающимся (экземпляр принадлежит только одному подтипу).
Ограничения и правила наследования
-
Полнота: Ограничение полноты определяет, должен ли каждый экземпляр супертипа обязательно быть экземпляром как минимум одного из подтипов (полное наследование) или некоторые экземпляры супертипа могут не принадлежать ни к одному из подтипов (частичное наследование).
-
Исключительность: Ограничение исключительности (перекрывающееся или неперекрывающееся) определяет, может ли экземпляр супертипа одновременно быть экземпляром более чем одного подтипа. Перекрывающееся наследование позволяет экземпляру супертипа принадлежать к нескольким подтипам, тогда как неперекрывающееся ограничение требует, чтобы каждый экземпляр принадлежал только к одному подтипу.
Эти механизмы наследования позволяют более гибко и точно моделировать реальные сценарии в базах данных, способствуя созданию более структурированных и легко управляемых схем данных.
Ограничения целостности (Integrity Constraints)
Определение ограничения целостности
Ограничения целостности в контексте баз данных и ERD представляют собой правила, которые помогают поддерживать точность и надежность данных, хранящихся в базе данных. Они определяют условия, которые должны выполняться для всех операций вставки, обновления или удаления данных, чтобы гарантировать, что данные остаются точными, последовательными и в соответствии с логической структурой данных.
Типы ограничений
- Ключевые ограничения:
Ключевые ограничения обеспечивают уникальность данных в таблице. Существует два основных типа ключевых ограничений:
- Первичные ключи (Primary keys) обеспечивают, что каждая запись в таблице может быть уникально идентифицирована с помощью значения первичного ключа.
- Внешние ключи (Foreign keys) связывают записи в одной таблице с записями в другой, обеспечивая ссылочную целостность между таблицами.
-
Референциальные ограничения: Референциальные ограничения (также известные как ограничения внешнего ключа) управляют связями между таблицами. Они гарантируют, что значение внешнего ключа в одной таблице всегда соответствует значению первичного ключа в другой таблице, или же является NULL, если это допустимо.
- Доменные ограничения: Доменные ограничения определяют допустимый набор значений для атрибута. Это может включать тип данных, допустимые значения, минимальные и максимальные значения, или формат данных (например, регулярное выражение для проверки формата электронной почты).
Представление ограничений на диаграмме
На ER-диаграмме ограничения целостности обычно представляются следующим образом:
- Первичные ключи отображаются в атрибутах сущности, обычно подчеркнутыми или выделенными особым шрифтом для указания их статуса ключа.
- Внешние ключи могут быть обозначены стрелками, соединяющими атрибуты сущностей, или специальными символами, показывающими внешние связи.
- Доменные ограничения часто указываются в спецификациях атрибутов или в виде примечаний на диаграмме, описывающих допустимые значения или форматы данных.
Использование этих ограничений на ER-диаграммах помогает проектировщикам и разработчикам баз данных ясно понимать структуру данных и правила, которые управляют этой структурой, обеспечивая более высокую качество и надежность базы данных.
Рекурсивные связи (Recursive Relationships)
Понятие рекурсивной связи
Рекурсивная связь в контексте ERD представляет собой отношение, при котором сущность ассоциируется сама с собой. Такие связи используются для моделирования сценариев, где экземпляры одной и той же сущности могут взаимодействовать или быть связанными друг с другом. Рекурсивные связи также известны как отношения типа “сам-с-собой” и часто встречаются в схемах баз данных для представления иерархических отношений или сетевых структур.
Обозначение рекурсивных связей на диаграмме
На ER-диаграмме рекурсивные связи обозначаются как линия, исходящая из сущности и возвращающаяся к той же сущности. Эта линия может быть обозначена стрелками для указания направления отношения и снабжена метками, описывающими роль каждой стороны в отношении. Например, в отношении “руководитель-подчиненный”, линия может выходить из сущности “Сотрудник” и возвращаться к ней же, с метками “руководит” и “подчиняется”.
Примеры использования рекурсивных связей
-
Иерархия управления: В организационных структурах рекурсивные связи могут использоваться для представления отношений между сотрудниками, где один сотрудник (руководитель) управляет другими сотрудниками (подчиненные). Примером может служить сущность “Сотрудник” с рекурсивным отношением, показывающим, кто из сотрудников является непосредственным начальником для других.
-
Древовидные структуры: В системах управления контентом рекурсивные связи могут моделировать структуру категорий или разделов, где каждый раздел может содержать подразделы. Например, сущность “Категория” может иметь рекурсивное отношение “включает”, указывающее, что одна категория может быть подкатегорией другой.
-
Сетевые топологии: В базах данных, описывающих сетевые топологии, рекурсивные связи могут использоваться для представления связей между узлами сети, где каждый узел может быть связан с одним или несколькими другими узлами той же сети.
Рекурсивные связи являются мощным инструментом для представления сложных структур и отношений в предметных областях, где элементы взаимодействуют или связаны друг с другом в рамках одной и той же категории или группы.
Примечания и комментарии (Notes and Comments)
Назначение примечаний и комментариев
Примечания и комментарии на ER-диаграммах служат для дополнительной аннотации, уточнения и описания элементов модели, таких как сущности, связи и атрибуты. Они предоставляют дополнительные сведения, которые не всегда явно выражены через стандартные элементы диаграммы, такие как ключи или типы связей. Примечания могут использоваться для объяснения бизнес-правил, особых условий, исключений или любой другой важной информации, которая помогает пользователям и разработчикам понять контекст и требования предметной области.
Обозначение примечаний на диаграмме
На ER-диаграмме примечания обычно представлены в виде облачков или прямоугольников, соединённых линиями или стрелками с соответствующими элементами диаграммы, к которым они относятся. Эти примечания могут быть размещены рядом с сущностями, атрибутами или связями, чтобы прямо указать, к чему именно относится комментарий. Текст внутри примечания должен быть конкретным и кратким, чтобы он был понятен без дополнительных пояснений.
Использование примечаний для уточнения семантики элементов ERD
Примечания играют ключевую роль в уточнении семантики элементов ERD, особенно когда стандартные нотации и символы не могут полностью передать всю необходимую информацию. Например:
-
Уточнение бизнес-правил: Примечания могут содержать информацию о специфических бизнес-правилах или логике, которая должна быть реализована в базе данных. Например, правило, что сотрудник может быть назначен на проект только если он принадлежит к определённому отделу.
-
Описание ограничений: Комментарии могут детализировать ограничения, такие как форматы данных или дополнительные условия валидации, которые должны быть применены к атрибутам, но которые сложно выразить стандартными средствами ERD.
-
Разъяснение отношений: В сложных схемах, где отношения между сущностями могут быть многозначными или подразумевать несколько уровней взаимодействия, примечания могут помочь уточнить природу этих отношений, описывая, например, направление зависимости или условия, при которых связь активна.
Использование примечаний и комментариев на ER-диаграммах улучшает общее понимание структуры базы данных и способствует более эффективной коммуникации между разработчиками, аналитиками и конечными пользователями системы.