Связи (relationships) в ERwin
Связь - это функциональная зависимость между двумя сущностями (в частности, возможна связь
сущности с самой собой). Например, важно знать фамилию сотрудника, и не менее важно знать, в
каком отделе он работает. Таким образом, между сущностями "отдел" и "сотрудник" существует связь
"состоит из" (отдел состоит из сотрудников). Связь - это понятие логического уровня, которому
соответствует внешний ключ на физическом уровне. В ERwin связи представлены пятью основными
элементами информации:
- тип связи (идентифицирующая, неидентифицирующая,
полная/неполная категория, неспецифическая связь);
- родительская сущность;
- дочерняя (зависимая) сущность;
- мощность связи (cardinality);
- допустимость пустых (null) значений.
Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется через ее
связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности,
при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при идентифицирующей
связи всегда является зависимой.
Связь называется неидентифицирующей, если экземпляр дочерней сущности идентифицируется иначе,
чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской
сущности, при этом входят в состав неключевых атрибутов дочерней сущности.
Для определения связей ERwin выбирается тип связи, затем мышью указывается родительская и
дочерняя сущность. Идентифицирующая связь изображается сплошной линией; неидентифицирующая
- пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности.
При определении связи происходит миграция атрибутов первичного ключа родительской сущности в
соответствующую область атрибутов дочерней сущности. Поэтому такие атрибуты не вводятся
вручную.
Атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами.
ERwin позволяет ввести для них роли, т.е. новые имена, под которыми мигрирующие атрибуты будут
представлены в дочерней сущности.
В случае неоднократной миграции атрибута такое
переименование необходимо. Например, сущность "посредническая сделка" имеет атрибут "код
предприятия-продавца" и "код предприятия-покупателя". В данном случае первичный ключ сущности
"предприятие" ("код предприятия") имеет две роли в дочерней сущности.
На физическом уровне имя роли - это имя колонки внешнего ключа в дочерней таблице.
Мощность связи представляет собой отношение количества экземпляров родительской сущности к
соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме
неспецифической, эта связь записывается как 1:n.
ERwin в соответствии с методологией IDEF1X предоставляет 4 варианта для n, которые
изображаются дополнительным символом у дочерней сущности: ноль, один или больше (по
умолчанию); ноль или один; ровно N, где N - конкретное число.
Допустимость пустых (NULL) значений в неидентифицирующих связей ERwin изображает пустым
ромбиком на дуге связи со стороны родительской сущности.
Обозначения мощности соответственно ноль, один или больше, один или больше, ноль или один в
нотации IE приведены на рис. 1.