Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
uch_pos.docx
Скачиваний:
213
Добавлен:
20.03.2016
Размер:
423.96 Кб
Скачать

4.2.3. Роли в связях

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

Пример 4.15. На рис. 50 изображена связь Быть_учеником множества Мастера с самим собой. Каждая связь – это связь между двумя мастерами, один из которых является учеником другого. Для различения этих двух мастеров, в рамках данной связи одна линия отмечена ролью Наставник, а другая ролью Ученик, которые обозначают мастера-наставника и его ученика соответственно. Предполагается, что у наставника может быть много учеников, но у каждого ученика есть только один наставник. Таким образом, стрелка E/R-диаграммы на рис. 50 показывает связь типа "многие-к-одному" множества Ученик с множеством Наставник.

Пример 4.16. В качестве примера, включающего в себя многостороннюю связь и множество сущностей со многими ролями, на рис. 51 дается более сложная версия связи Договоры, введенной в примере 4.5. Здесь показана связь Договоры между двумя цехами, мастером и изделием. Для иллюстрации предполагается, что цех, имеющий договор на пошив изделия с определенным мастером, может заключить со вторым цехом договор, позволяющий привлекать возможности другого цеха, например для получения каких-либо материалов или выполнения тонких работ. Такая связь описывается четверками вида:

(цех_1, цех_2, мастер, изделие),

причем цех_2 заключает с цехом_1 договор на привлечение мастера цеха1 для изделия цеха2.

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

Стрелки не указывают на Мастера или Изделия. При наличии мастера, "владеющего" им цеха и цеха, выпускающего изделия, может быть заключено множество договоров, позволяющих мастеру работать над различными изделиями. Значит, совсем не обязательно, что остальные три компонента в четверке данной связи определяют единственное изделие. Аналогично, производящий цех может заключать контракт с другими цехами об участии нескольких их мастеров при работе над одним своим изделием. Таким образом, мастер не определяется тремя остальными компонентами данной связи.

4.2.4. Атрибуты связей

Бывает удобно приписывать атрибуты к связи, а не к одному из множеств сущностей, находящихся в данной связи. Рассмотрим связь, представляющую договор мастера с цехом на изготовление изделия (рис. 49). Допустим, надо записать гонорар, указанный в этом договоре. Однако гонорар нельзя связать с мастером, так как он может получать разные гонорары за работу над разными изделиями. Не очень хорошо связывать договор с цехом (различным мастерам он может выплачивать разные гонорары) или с изделием (разные мастера получают за подобные изделия разные гонорары). Удобно связать гонорар с тройкой:

(мастер, изделие, цех)

во множестве отношений для связи Договоры. На рис. 52 показана схема рис. 49 вместе с атрибутами. Связь имеет атрибут гонорар, а множества сущностей имеют те же атрибуты, которые были показаны на рис. 47.

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

Пример 4.17. Изменим E/R-диаграмму (рис. 52), на которой связь Договоры имеет атрибут гонорар.

Создадим множество Гонорары с атрибутом гонорар (рис. 53).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]