Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 8 Логическое проектирование.doc
Скачиваний:
29
Добавлен:
19.11.2019
Размер:
524.8 Кб
Скачать

1. Удаление связей типа m:n

Если в концептуальной модели присутствуют связи типа M:N ("многие ко мно­гим"), то их следует устранить путем определения некоторой промежуточной сущно­сти (см. раздел 5.2.1). Связь типа M:N заменяется двумя связями типа 1:М, устанав­ливаемыми со вновь созданной сущностью. В качестве примера рассмотрим связь ти­па M:N Newspaper Advertises Property (Газета печатает объявления об объектах, сдаваемых в аренду), представленную на рис. 8.1, а. С целью устранения связи Ad­vertises мы определяем промежуточную сущность Advert и создаем две новых связи типа 1:М (Lists и Advertisedin). В результате связь Advertises типа M:N будет заме­нена двумя связями — Newspaper Lists Advert и Property Advertisedin Advert (как по­казано на рис. 8.1, б).

Обратите внимание: сущность Advert показана как слабая сущность, поскольку ее суще­ствование зависит от сущностей-владельцев, а именно от сущностей Newspaper и Property.

2. Удаление сложных связей

Сложной называется связь, существующая между тремя и больше типами сущно­стей (см. раздел 5.1.3). Если в концептуальной модели присутствует сложная связь, ее следует устранить с помощью промежуточной сущности. Сложная связь заменяет­ся необходимым количеством бинарных связей типа 1:М, устанавливаемых со вновь созданной сущностью. Например, тройная связь Leases (Сдает внаем), отражает от­ношения, существующие между оформляющим аренду работником компании, зе­мельным участком и арендатором — как показано на рис. 8.2, а. Эту сложную связь можно упростить путем введения новой сущности и определения бинарных связей между нею и каждой из исходных сущностей сложной связи. В нашем примере связь Leases можно устранить посредством введения новой слабой сущности с именем Lease Agreement. Вновь созданная сущность будет связана с исходными сущностями тремя новыми бинарными связями:

S taff Organizes Lease_Agreement,

Property AssociatedWith Lease Agreement и Renter Holds Lease_Agreement - как показано на рис. 8.2, б.

3. Удаление рекурсивных связей

Рекурсивными называются такие связи, в которых сущность некоторого типа взаимодействует сама с собой (см. раздел 5.1.3). Если концептуальная модель содер­жит рекурсивные связи, они должны быть устранены посредством определения неко­торой промежуточной сущности. Например, для отображения ситуации, когда один из работников руководит группой других работников, может быть установлена ре­курсивная связь типа "один ко многим" (1:М) Staff Supervises Staff — как показано на рис. 8.3, а.

Рекурсивная природа этой связи требует особого подхода при работе с ней как на этапе логического проектирования, так и на этапе физической реализации базы дан­ных. Для упрощения данной рекурсивной связи типа 1:М мы заменим ее вновь соз­данной слабой сущностью Allocated Staff и дополнительной связью типа 1:1 с име­нем SupervisedBy — как показано на рис. 8.3, б.

Удаление рекурсивной связи типа M:N выполняется так же, как и бинарных свя­зей типа M:N, описанных выше.

4. Удаление связей с атрибутами

Если в концептуальной модели присутствуют связи, имеющие собственные атри­буты, они должны быть преобразованы путем создания новой сущности (см. раз­дел 5.1.4). Например, рассмотрим ситуацию, когда требуется фиксировать количест­во рабочих часов, отработанных временным персоналом каждого из отделений пред­приятия (рис. 8.4, а). Связь Staff WorksAt Branch имеет атрибут с именем Hours_Worked (Отработано часов). Преобразуем связь VorksAt в слабую сущность с именем Branch_Allocation, которой назначим атрибут Hours_Worked, после чего создадим две новых связи типа 1:М, как показано на рис. 8.4, б.