Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УД Главы 6-7.docx
Скачиваний:
11
Добавлен:
21.11.2019
Размер:
421.6 Кб
Скачать

Правило 7

В случае многосторонней связи (N- сторонний) необходимо использовать N+1 отношение, по одному на каждую сущность, причем ключом каждой будет ключ соответствующей сущности. В одном отношении хранится информация о связи. В него включаются ключевые атрибуты всех сущностей охваченных N–сторонней связью.

Пример проектирования с использованием связей более высокого порядка

Если применить это правило к рассмотренному примеру:

Проводник (Пфам,…)

Озеро (Нозеро,…)

Рыба (вид,…)

П_О_Р (Пфам, Нозеро, вид,…) – первичный ключ не может быть определен до тех пор, пока не будут рассмотрены все другие атрибуты.

Если взять атрибуты из примера, то П_О_Р будет выглядеть: П_О_Р (Пфам, Нозеро, вид).

Если каждый проводник предпочитает ловить в каждом озере только один вид рыбы, то П_О_Р (Пфам, Нозеро, вид).

Если проводник может указать несколько предпочтительных видов для озера, то П_О_Р (Пфам, Нозеро, вид).

    1. Использование ролей

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

В качестве примера предположим, что для небольшого предприятия- поставщика автомобилей необходимо хранить информацию о производственном персонале. Различают две категории служащих: Мастеров и Сборщиков. Мастера получают фиксированный оклад, в то время как у сборщиков почасовая оплата.

Первый вариант ER-диаграммы:

Правило 4

Рис. 7.54

Записываем отношение:

Мастер (Таб.ном.маст.,…)

Сборщик (Таб.ном.сборщ.,…,Таб.ном.маст.)

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

Дадим обозначения:

Слфам

-

фамилия служащего

Ртел

-

рабочий телефон мастера

Дтел

-

домашний телефон служащего

Адр.сл.

-

адрес служащего

Тставка

-

почасовая тарифная ставка сборщика

Оклад

-

Месячный оклад мастера

Код.сб.

-

Код сборщика

Сф.ком

-

сфера компетенции мастера

Легко распределить почти все атрибуты, кроме Слфам, Дтел и Адр.сл..

Распределим атрибуты:

Ртел

-

Мастер

Тставка

-

Сборщик

Оклад

-

Мастер

Код.сб.

-

Сборщик

Сф.ком

-

Мастер

Остальные атрибуты можно распределить следующим образом: разбить общие атрибуты на этот же атрибут Мастер и Сборщик , т.е. Слфам служащего = Слфам. Мастера и Слфам сборщика.

Рис. 7.55

Но количество увеличивается, следовательно, возникнет дублирование. Лучшим решением является следующее: все Мастера и Сборщики рассматриваются как служащие, а мастера и Сборщики это те роли, которые данный служащий может играть (некоторые служащие являются Мастерами, другие Сборщиками).

Графически это изображается следующим образом:

Правило 4

Рис. 7.56

Служащий представляет собой сущность, ключом которой является табельный номер служащего (ТНС), а экземплярами данной сущности могут быть либо мастера, либо сборщики. Два ролевых набора Мастер и Сборщик соединяются связью “Руководит”. Стрелки идущие от сущности Служащий к сущностям Мастер и Сборщик, указывают на то, что сущность Служащий является исходной, а сущности Мастер и Сборщик только ролями.

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