Типы сущностейОсновные компоненты диаграммы сущность – связь - это сущности, атрибуты и связи. Каждая сущность является множеством подобных индивидуальных объектов, называемых экземплярами. Каждый экземпляр индивидуален и должен отличаться от всех остальных экземпляров. Атрибут выражает определенное свойство объекта. С точки зрения теории БД, сущности соответствует таблица, экземпляру сущности - строка в таблице, а атрибуту - колонка таблицы. Построение модели данных предполагает определение сущностей и атрибутов, т.e. необходимо определить, какая информация будет храниться в конкретной сущности или атрибуте. Сущность можно определить как объект, событие или концепцию, информация о которой должна сохраняться. Определено два вида сущностей: - независимая - экземпляр сущности может создаваться независимо от других сущностей. Изображается прямоугольником. - зависимая - экземпляр сущности может создаваться только при существовании родительской сущности. Изображается прямоугольником с закругленными углами. На основе трех видов сущностей можно определить типы сущностей: - Характеристическая - зависимая дочерняя сущность, связанная только с одной родительской сущностью и по смыслу хранящая информацию о ее характере. - Ассоциативная - связанная с несколькими родительскими сущностями и содержащая информацию о связи. - Именующая - частный случай ассоциативной, но без собственных атрибутов. - Категориальная - дочерняя сущность, входящая в иерархию (дерево) наследования сущностей. Атрибут - это свойство сущности, уникальное и отличающее ее от других. Определены следующие виды атрибутов: - Первичный PK - это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности. Атрибуты первичного ключа на диаграмме не требуют специального обозначения - это те атрибуты, которые находятся в списке атрибутов выше горизонтальной линии. Ключи могут быть сложными, т. e. содержащими несколько атрибутов. Сложные первичные ключи не требуют специального обозначения - это список атрибутов выше горизонтальной линии. - Альтернативный AK - это ключ, не ставший первичным. - Внешний FK - перемещаемый в дочернюю сущность. - Инверсные входы IK - группа неуникальных атрибутов для частого обращения к экземплярам сущности. Типы связей. Связь является логическим соотношением между сущностями. Каждая связь (Relationship Verb Phrases) должна именоваться глаголом или глагольной фразой. Имя связи выражает некоторое ограничение или правило и облегчает чтение диаграммы, например: - Каждый КЛИЕНТ < размещает > заказы; - Каждый ЗАКАЗ < выполняется > сотрудником. На логическом уровне можно установить следующие виды связей: - идентифицирующую связь один-ко-многим; - идентифицирующую связь один-к-одному; - не идентифицирующую связь один-ко-многим; - не идентифицирующую связь один-к-одному; - связь многие-ко-многим. Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Когда устанавливается идентифицирующая связь, ERwin автоматически преобразует дочернюю сущность в зависимую. При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. Эта операция дополнения атрибутов дочерней сущности при создании связи называется миграцией атрибутов. В дочерней сущности новые атрибуты помечаются как внешний ключ - (FK). В дальнейшем, при генерации схемы БД атрибуты первичного ключа получат признак NOT NULL, что означает невозможность внесения записи в дочернюю таблицу без информации из родительской таблицы. Идентифицирующая связь показывается на диаграмме сплошной линией с жирной точкой на дочернем конце связи. При установлении не идентифицирующей связи дочерняя сущность остается независимой, а атрибуты первичного ключа родительской сущности мигрируют в состав не ключевых компонентов дочерней сущности. Не идентифицирующая связь служит для связывания независимых сущностей. При такой связи допускается нулевое значение внешнего ключа. Не идентифицирующая связь показывается на диаграмме пунктирной линией с жирной точкой на дочернем конце связи. Для не идентифицирующей связи можно указать обязательность (Nulls). В случае обязательной связи (No Nulls) при генерации схемы БД атрибут внешнего ключа получит признак NOT NULL, несмотря на то, что внешний ключ не войдет в состав первичного ключа дочерней сущности. В случае необязательной связи (Nulls Allowed) внешний ключ может принимать значение 0 (NULL). Необязательная не идентифицирующая связь помечается прозрачным ромбом со стороны родительской сущности. Мощность связи (Cardinality) - служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней. Различают четыре типа мощности: - общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или много экземпляров дочерней сущности, не помечается каким-либо символом; - символом Р помечается случай, когда одному экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено нулевое значение); - символом Z помечается случай, когда одному экземпляру родительской сущности соответствуют 0 или 1 экземпляр дочерней сущности (исключены множественные значения); - цифрой помечается случай точного соответствия, когда одному экземпляру родительской сущности соответствует заранее заданное число экземпляров дочерней сущности. Имя связи (Verb Phrase) - фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим, идентифицирующей или не идентифицирующей, достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent.
|