Сущности родительские и дочерние

Сущность - это важная вещь или объект, сведения о котором нужно сохранить. Не все вещи являются сущностями, а только те, данные о которых должны быть сохранены. Сведения о сущностях имеют вид атрибутов и/или связей. Если некий кандидат на то, чтобы быть сущностью, не имеет атрибутов или связей, в действительности он не является сущностью. В модели базы данных сущности представляются в виде прямоугольника с заголовком. Заголовок является именем сущности.

Независимыми в базе данных являются те таблицы (сущности) БД, среди колонок которых нет ссылок на другие таблицы.
Например, в такой схеме данных независмой будет таблица «Страна», поскольку ни одна из её колонок не ссылается на первичные ключи других таблиц.

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

Так же интересно смотрится связь «многие ко многим», где таблицы не зависят друг от друга напрямую, в такой схеме зависимой таблицей будет только та, что их связывает между собой:

Связь является логическим соотношением между сущностями. Связь имеет имя, мощность, тип.

Имя связи (Verb Phrase) – фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent.

Мощность связи (Cardinality) – служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней.

Различают четыре типа мощности:

Сущности родительские и дочерние - student2.ru
– общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или много экземпляров дочерней сущности (не помечается каким-либо символом);

Сущности родительские и дочерние - student2.ru
символом P помечается случай, когда одному

P экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено нулевое значение);

Сущности родительские и дочерние - student2.ru
символом Z помечается случай, когда одному

Z экземпляру родительской сущности соответствуют 0 или

1 экземпляр дочерней сущности (исключены множественные значения);

Сущности родительские и дочерние - student2.ru
цифрой помечается случай, когда одному экземпляру

N родительской сущности соответствует заранее заданное

число экземпляров дочерней сущности.

Различают два типа связей: идентифицирующая и неидентифицирующая.

Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Когда рисуется идентифицирующая связь, ERwin автоматически преобразует дочернюю сущность в зависимую. Зависимая сущность изображается прямоугольником со скругленными углами.

Экземпляр зависимой сущности определяется только через отношение к родительской сущности. При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. В дочерней сущности новые атрибуты помечаются как внешние ключи – (FK).

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

Идентифицирующая связь показывается на диаграмме сплошной линией с жирной точкой на дочернем конце связи, неидентифицирующая – пунктирной.

Для неидентифицирующей связи можно указать обязательность (Nulls). В случае обязательной связи (No Nulls) при генерации схемы БД атрибут внешнего ключа получит признак NOT NULL, несмотря на то, что внешний ключ не войдет в состав первичного ключа дочерней сущности. В случае необязательной связи (Nulls Allowed) внешний ключ может принимать значение NULL. Необязательная неидентифицирующая связь помечается прозрачным ромбом со стороны родительской сущности.

Атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами. ERwin позволяет ввести для них роли или функциональные имена (Rolename), т.е. новые имена, под которыми мигрирующие атрибуты будут представлены в дочерней сущности.

Наши рекомендации