Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
153
Добавлен:
02.05.2014
Размер:
1.63 Mб
Скачать

Предварительные отношения для бинарных связей степени 1:n.

На рис.23 показан экземпляр отношения ПРЕПОДАВАТЕЛЬ, для случая, когда каждый преподаватель может читать более чем одну дисциплину и нет дисциплин, которые не читаются и имеются преподаватели, которые ничего не читают. Кроме того, каждая дисциплина читается только одним преподавателем. Т.е. рассматривается случай, когда класс принадлежности сущности ПРЕПОДАВАТЕЛЬ является необязательным, а сущности ДИСЦИПЛИНА – обязательным, а степень связи 1:N.

ПРЕПОДАВАТЕЛЬ

нп

пфам

птел

нд

название

П1

Кулаков

523298

Д1

ВМ

П1

Кулаков

523298

Д2

ТМ

П1

Кулаков

523298

Д3

СМ

П2

Быков

536554

Д4

ХИМИЯ

П2

Быков

536554

Д5

Физика

П3

Пухова

426521

Д5

ВТ

П4

Ахмеров

348654

--

--

Рис.23. Использование одного отношения для бинарной связи типа 1:n в том случае, когда класс принадлежности n - связной сущности является обязательным, а 1 - связной необязательным.

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

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

ПРАВИЛО 4. Если степень бинарной связи равна 1:n и класс принадлежности n - связной сущности является обязательным, то достаточным является использование двух отношений, по одному на каждую сущность, при условии, что ключ сущности каждой сущности служит в качестве первичного ключа для соответствующего отношения. Дополнительно ключ 1 - связной сущности должен быть добавлен как атрибут в отношение, отводимое n - связной сущности. 

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

ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА

нп

пфам

птел

нд

название

нп

П1

Кулаков

523298

Д1

ВМ

П1

П2

Быков

536554

Д2

ТМ

П1

П3

Пухова

426521

Д3

СМ

П1

П4

Ахмеров

348654

Д4

ХИМИЯ

П2

Д5

Физика

П2

Д5

ВТ

П3

Рис. 24. Данные, приведенные на рис.23 после их разнесения по двум отношениям с помощью ПРАВИЛА 4.

На рис.25,а показан экземпляр отношения ПРЕПОДАВАТЕЛЬ для случая степени связи 1:n с необязательным классом принадлежности обоих сущностей.

ПРЕПОДАВАТЕЛЬ

нп

пфам

птел

нд

название

П1

Кулаков

523298

Д1

ВМ

П1

Кулаков

523298

Д2

ТМ

П1

Кулаков

523298

Д3

СМ

П2

Быков

536554

Д4

ХИМИЯ

П2

Быков

536554

Д5

Физика

--

--

--

Д5

ВТ

П4

Ахмеров

348654

--

--

а)

ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА

нп

пфам

птел

нд

название

нп

П1

Кулаков

523298

Д1

ВМ

П1

П2

Быков

536554

Д2

ТМ

П1

П4

Ахмеров

348654

Д3

СМ

П1

Д4

ХИМИЯ

П2

Д5

Физика

П2

Д5

ВТ

--

б)

Рис. 25. Использование одного отношения а) и двух отношений б) для бинарной связи типа 1:n в случае, когда класс принадлежности обеих сущностей является необязательным.

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

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

Если применить ПРАВИЛО 4 к этому случаю и сформировать два отношения (см. рис. 25,б), то все проблемы будут решены за исключением одной: не исчезнут пробелы в полях номера преподавателя в новом отношении ДИСЦИПЛИНА во всех тех местах, где дисциплина не читается.

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

ПРАВИЛО 5. Если степень бинарной связи равна 1:n и класс принадлежности n-связной сущности является необязательным, то необходимо формирование трех отношений: по одному для каждой сущности, причем ключ каждой сущности служит первичным ключом соответствующего отношения, и одного отношения для связи. Отношение, выделенное для связи должна иметь среди своих атрибутов ключ сущности от каждой сущности.

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

ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА

нп

пфам

птел

нд

название

нп

П1

Кулаков

523298

Д1

ВМ

П1

П2

Быков

536554

Д2

ТМ

П1

П4

Ахмеров

348654

Д3

СМ

П1

Д4

ХИМИЯ

П2

Д5

Физика

П2

ЧИТАЕТ

нп

нд

П1

Д1

П1

Д2

П1

Д3

П2

Д4

П2

Д5

Рис.26.Размещение данных в трех отношениях с помощью ПРАВИЛА 5.

В отношении ЧИТАЕТ нд является первичным ключом в силу существующей связи типа n:1 между нд и нп.

Соседние файлы в предмете Базы данных