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

Правило 6.

Если связь бинарная, ее степень m:n, то при любых классах принадлежности обеих сущностей для хранения информации необходимо три отношения. В двух отношениях хранится информация о двух сущностях (по отношению на сущность). Ключами этих отношений будут ключи соответствующих сущностей. В третьем отношении хранится информация о связи. В него включаются ключевые атрибуты обеих сущностей. Ключом этого отношения будет пара этих атрибутов.

Пример проектирования с использованием связей степенью м:n

Проектируется БД, предназначенная для хранения информации о проводниках- рыболовах и об обслуживающих ими озерах. Профсоюз не возражает, чтобы сразу несколькими проводниками обслуживалось одно озеро. Туристы, нанимающие рыбаков, интересуются видами раб, которые водятся в озерах, самыми крупными экземплярами, пойманными за сезон в регионе и лучшей наживкой для каждого вида рыб в регионе.

Представляющими интерес атрибутами являются:

П_фам

-

Фамилия проводника

Т_ном

-

Номер телефона

Оплата

-

Оплата задень

Н_озера

-

Название озера

Размер

-

Максимальный размер группы

Оценка

-

Рыболовная оценка озера

Вид

-

Виды рыб

Вес

-

Вес самого большого экземпляра каждого вида

Рыб_наж

-

Лучшая наживка для каждого вида

Из предметной области выделяем:

Сущности

-

ПРОВОДНИК, ОЗЕРО, РЫБА

Связи

-

ОБСЛУЖИВАЕТСЯ, ВОДИТСЯ

Проводник

Озеро

Рыба

Рис. 7.43

Правило 4

Правило 6

Рис. 7.44

По ER-диаграмме составляем отношения:

для правила (4)

-

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

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

для правила (6 )

-

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

Рыба (вид,…)

Водится (Нозеро, вид,…)

Далее составим отношения для всей схемы в общем:

Проводник (Пфам, Тном, оплата, размер, Нозеро)

Озеро (Нозеро, оценка)

Рыба (вид, вес, наживка)

Водится (Нозеро, вид)

Проверяем возможность ключей и детерминантов:

Озеро

Водится

Рис. 7.45

Рис7.46

Проводник

Рыба

Рис. 7.46

Если анализировать данные отношения, то обнаружим, что все находятся в НФБК, следовательно аномалий не будет.

    1. Связи более высокого порядка

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

Проводник

Озеро

Рыба

Рис. 7.47

Связь между сущностями ПРОВОДНИК и РЫБА показали пунктиром.

Правило 4 (в)

Правило 4 (а)

Правило 6 (б)

Рис. 7.48

Определяем отношения:

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

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

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

Рыба (Вид,…)

Водится (озеро, вид,…)

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

Рыба (вид,…)

В данных отношениях есть повторяющиеся, вычеркиваем их (это Озеро,Рыба) и переписываем оставшиеся отношения для нашей БД:

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

Водится (озеро, вид,…)

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

Рыба (Вид,…)

Вывод: бинарных связей оказалось достаточно.

Усложним задачу. Предположим, что проводник может обслуживать несколько озер. При этом он может предпочитать ловить разную рыбу в разных озерах.

Например:

П1

обслуживает

О1 и О2

П2

обслуживает

О2

П1

предпочитает

Р1 в О1

П1

предпочитает

Р2 в О2

П2

предпочитает

Р2 в О2

Составим ER- диаграмму

Рис. 7.49

Изобразим ситуацию в виде диаграммы, в которой все связи бинарные:

Правило 6 (в)

Правило 6 (а)

Правило 6 (б)

Рис. 7.50

Строим отношения:

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

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

Обслуживает (Пфам, озеро)

Для б) Водится (озеро,…,вид)

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

Рыба (вид,…)

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

Рыба (вид,…)

Предпочитает (Пфам, вид,…)

Вычеркиваем из полученных отношений повторяющиеся:

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

Озеро (озеро)

Обслуживает (Пфам, озеро)

Водится (озеро,…,вид)

Рыба (вид,…)

Предпочитает (Пфам, вид,…) – некорректное отношение

Из полученных отношений можно заключить, что П1 обслуживает О1, в О1 водится Р2. П1 предпочитает ловить Р2. П1 предпочитает ловить в О1 Р2, что неверно. Следовательно, в данном случае только бинарными связями обойтись нельзя. Причина неудачи образования этой связи только с помощью бинарных связей заключается в следующем, что Пi проводник предпочитает ловить рыбу Рi в озере Оi т.е. здесь объединяются три сущности и такое высказывание нельзя заменить комбинациями из двух сущностей (т.е. заменить на бинарные связи).

Правильная модель должна использовать трехсторонний вид связи.

Рис. 7.51

И в этой форме зарисовываем нашу предыдущую запись:

Рис. 7.52

Рисуем ER–диаграмму:

Рис. 7.53

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