Рис. 28. Зависимая и независимая сущности
Каждая сущность может обладать любым количеством связей с другими сущностями модели. Одна из участвующих в связи сущностей называется родительской сущностью, другая – дочерней или сущностью-потомком.
Связиименуются глаголами или глагольными фразами, которые выражают некоторые бизнес-правила и облегчают чтение диаграмм. Связь сотрудника с заказом может быть определена следующим образом (рис. 29):
·Сотрудник выполняет один или более Заказов;
· Заказ должен выполняться ровно одним Сотрудником.
Рис. 29. Связи на диаграмме
На логическом уровне можно установить:
1) идентифицирующую связь один-ко-многим (обозначается ѕ·);
2) неидентифицирующую связь один-ко-многим (обозначается ----·);
3) связь многие-ко-многим (обозначается ·ѕ·).
При установлении идентифицирующей связи дочерняя сущность автоматически превращается в зависимую. Атрибуты первичного ключа родительской сущности автоматически мигрируют в зону атрибутов первичного ключа дочерней сущности как внешние ключи (Foreign Key) (рис. 30).
Рис. 30. Идентифицирующая связь
При установлении неидентифицирующей связи дочерняя сущность не превращается в зависимую, а ключевые атрибуты родительской сущности мигрируют в область неключевых атрибутов дочерней сущности (рис. 31).
Рис. 31. Неидентифицирующая связь
В случае обязательной связи при генерации схемы БД атрибут внешнего ключа получит признак NOT NULL, хотя внешний ключ не войдет в состав первичного ключа дочерней сущности. В случае необязательной связи внешний ключ может принимать значение Null. Необязательная неидентифицирующая связь помечается прозрачным ромбом со стороны родительской сущности.
предыдущаяследующая