Отношения. Связи между объектами реального мира отражаются в виде связей (отношений, ассоциации) между сущностями

Связи между объектами реального мира отражаются в виде связей (отношений, ассоциации) между сущностями. Отношение – это ассоциация или "связь" между двумя сущностями. Отношение представляется в модели линией, соединяющей две сущности и именем отношения – глагольной конструкцией, которая описывает, как две сущности зависят друг от друга. Имена сущностей, соединенные именем отношения, должны образовывать осмысленную фразу, описывающую бизнес-правило отношения. Например, СТУДЕНТ <Обучается в > УЧЕБНАЯ ГРУППА. В примере имя отношения показано в угловых скобках. Отношения двунаправлены. Поэтому должны быть имена отношений в каждом направлении.

Отношение обладает следующими свойствами:

– Степень.

– Направленность

– Тип.

– Мощность.

– Обязательность.

Степень отношения представляет собой число сущностей, ассоциированных с отношением. Чаще всего используются бинарные отношения, связывающие две сущности. Унарные, или рекурсивные отношения представляют случаи, когда экземпляр сущности связан с другим экземпляром той же самой сущности. Часто унарные или рекурсивные отношения рассматриваются как бинарные рекурсивные отношения, связывающие экземпляр сущности с другим ее экземпляром.

Направленность отношения указывает на исходную сущность в отношении. Сущность, из которой отношение исходит, называется родительской сущностью. Сущность, в которой отношение заканчивается, называется подчиненной (дочерней) сущностью. Направленность отношения определяется взаимосвязью между сущностями и зависит от типа и мощности отношения (см. ниже). В отношении между независимой и зависимой сущностями отношение исходит из независимой сущности и заканчивается в зависимой сущности. Если обе сущности независимые, отношение симметрично. В отношении один-ко-многим родительской является сущность, входящая в отношение однократно. Отношения многие-ко-многим симметричны. Ключ родительской сущности мигрирует (повторяется) в дочерней сущности. Такой мигрировавший ключ в дочерней сущности называется внешним ключом. Как мы увидим далее, внешний ключ в зависимости от типа связи может стать частью составного ключа дочерней сущности или неключевым атрибутом дочерней сущности. С помощью внешнего ключа экземпляр дочерней сущности ссылается на соответствующий экземпляр родительской сущности.

В ERwin отношение между двумя сущностями, или сущности самой с собой, может принадлежать к одному из следующих типов:

– Идентифицирующее отношение.

– Неидентифицирующее отношение.

– Типизирующее отношение.

– Отношение многие-ко-многим.

– Рекурсивное отношение.

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

Идентифицирующим является отношение между двумя сущностями, в котором каждый экземпляр подчиненной сущности идентифицируется значениями атрибутов родительской сущности. Это означает, что экземпляр подчиненной сущности зависит от родительской сущности и не может существовать без экземпляра родительской сущности. В идентифицирующем отношении единственный экземпляр родительской сущности связан с множеством экземпляров подчиненной. Атрибуты первичного ключа родительской сущности мигрируют в атрибуты подчиненной, чтобы стать там атрибутами первичного ключа. На рис. 4.2 представлено идентифицирующее отношение между сущностями Заказ и Состав заказа. В сущности Заказ использованискусственный первичный ключ ID заказа (Идентификатор заказа), который мигрировал в дочернюю сущность Состав заказа и стал там первичным ключом. В реальной диаграмме атрибут Заказчик, скорее всего, будет являться мигрировавшим ключом сущности, описывающей заказчиков. Пример рис. 4.2 показывает, что дочерняя сущность не может существовать без родительской. Этот пример демонстрирует также, как показать переменный состав заказа: в заказ может входить произвольное количество товаров.

Рис. 4.2. Пример идентифицирующего отношения

Неидентифицирующим называется отношение между двумя сущностями, в котором каждый экземпляр подчиненной сущности не зависит от значений атрибутов родительской сущности. Это означает, что экземпляр подчиненной сущности не зависит от родительской сущности и может существовать без экземпляра родительской сущности. В неидентифицирующем отношении единственный экземпляр родительской сущности связан с множеством экземпляров подчиненной. Атрибуты первичного ключа родительской сущности мигрируют в подчиненную, чтобы стать там неключевыми атрибутами. На рис. 4.3 показано неидентифицирующее отношение между сущностями Группа и Студент. Каждое из этих отношений имеет собственный первичный ключ. Первичного ключа родительской сущности Группа мигрировал в подчиненную сущность Студент и стал там неключевым атрибутом.

Рис. 4.3. Пример обязательного неидентифицирующего отношения

На примере рис. 4.3 рассмотрим также понятие обязательности отношения. Неидентифицирующее отношение называется обязательным (No Nulls), если все экземпляры дочерней сущности должны участвовать в отношении. Неидентифицирующее отношение называется необязательным (Nulls Allowed), если некоторые экземпляры дочерней сущности могут не участвовать в отношении. Очевидно, что студент должен принадлежать одной из учебных групп. На рис. 4.4 показан пример необязательно отношения: допускается, что сотрудник может не принадлежать ни одному из отделов.

Рис. 4.4. Пример необязательного неидентифицирующего отношения

Типизирующими называются отношения между родительской и одной или более подчиненными сущностями, когда сущности разделяют общие характеристики. Такие отношения называются еще иерархией наследования или иерархией категорий. Типизирующие отношения используются в том случае, когда экземпляр родительской сущности определяет различные наборы атрибутов в подчиненных сущностях. Например, (рис. 4.5) имеются различные категории сотрудников, отличающиеся только небольшим количеством атрибутов. Для каждой категории необходимо указать дискриминатор –атрибут родительской сущности, показывающий, как отличить одну категориальную сущность от другой. На рис. 4.5 дискриминатором является атрибут Тип. На рис. 4.5 показана полная категория, т. е. каждый экземпляр сущности сотрудник относится к одной из перечисленных категорий. Возможна неполная категория, когда существуют экземпляры родительской сущности, не имеющие соответствующих экземпляров в дочерних сущностях (значок категории содержит одну горизонтальную линию).

Рис. 4.5. Пример полной категории иерархии наследования

Отношения многие-ко-многим возникают там, где один экземпляр одной сущности связан с несколькими экземплярами другой, и один экземпляр этой другой сущности также связан с несколькими экземплярами первой сущности. Эти отношения также называют неспецифическими. Отношения многие-ко-многим используются только на логическом уровне. На физическом уровне эти отношения разрешаются за счет использования ассоциативной сущности, содержащей ключи родительских сущностей и, возможно, дополнительные атрибуты. Для большей наглядности диаграммы желательно ввести ассоциативные сущности на логическом уровне. На рис. 4.6 показан пример связи "многие‑ко‑многим", а на рис. 4.7 – пример использования ассоциативной сущности.

Рис. 4.6. Пример связи "многие‑ко‑многим"

Рис. 4.7. Пример использования ассоциативной сущности

Рекурсивное отношение – это неидентифицирующее отношение между двумя сущностями, которое указывает, что экземпляр сущности может быть связан с другим экземпляром той же самой сущности. При рекурсивном отношении родительская и подчиненная сущности совпадают. На Рис. 4.8 показаны примеры двух реализаций рекурсивного отношения для сущности Сотрудник, с использованием имени роли и без него. Имя роли показывает, какую роль играет внешний ключ в сущности. В данном примере внешний ключ задает табельный номер. Обратите внимание, что ERwin "унифицирует" атрибуты внешнего ключа и первичного ключа, когда имя роли не используется. Использование имени роли приводит к размещению внешнего ключа в качестве неключевого атрибута.

Рис. 4.8 Примеры реализации рекурсивных отношений
с использованием имени роли и без него в сущности Сотрудник

Мощность отношения задает максимальное число экземпляров одной сущности, которые могут быть связаны с экземплярами другой сущности. Мощность отношения определяется для обеих сторон отношения – для исходной и завершающей сущностей. Количество элементов определяет максимальное количество экземпляров сущностей, участвующих в отношении, в то время как обязательность определяет минимальное число экземпляров. Количество элементов часто выражается как один или много. Один и много могут появляться в трех различных комбинациях:

Один-к-одному (1:1) – один и только один экземпляр сущности связан с одним и только одним экземпляром другой сущности.

Один-ко-многим (1:N) – один и только один экземпляр родительской сущности связан со многими экземплярами подчиненной сущности.

Многие-ко-многим (M:N) – много экземпляров одной сущности связаны с многими экземплярами другой сущности (также называется неспецифическим отношением).

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

В отношении один-ко-многим один и только один экземпляр родительской сущности связан со многими экземплярами дочерней сущности. Это наиболее распространенное отношение.

Отношение многие‑ко‑многим уже было рассмотрено.

В ERwin отношение изображается линией с точкой на конце "много". Кроме общего случая мощности отношения 0, 1 или много можно задать частные случаи отношений: 1или много (обозначается буквой p), 0 или 1 (обозначается буквой z), конкретное число экземпляров дочерней сущности (обозначается числом экземпляров, например, 6).

В ERwin реализована также методология IE (Information Engineering), которая принципиально не отличается от методологии IDEF1X [7].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: