Связь частичная для обеих сущностей

Пусть существуют преподаватели, которые ничего не читают, и дисциплины, которые никем не читаются (рисунок 7.3).

Связь частичная для обеих сущностей - student2.ru

Рисунок 7.3 – Связь частичная для обеих сущностей

В этом случае для решения проблемы вставки необходимо создать три отношения:

ПРЕПОДАВАТЕЛЬ (Табельный номер, ФИО, Кафедра);

ДИСЦИПЛИНА (Код дисциплины, Название дисциплины);

ЧИТАЕТ (Табельный номер чит, Код дисциплины).

В отношении ЧИТАЕТ в качестве ключа выбран Табельный номер. Чтобы избежать появления в модели двух отношений с одинаковыми ключами, имя этого атрибута уточняется с учётом его роли – ключ того преподавателя, который реально читает лекции по этой дисциплине.

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

Реализация бинарной связи 1:m

Связь всюду определённая для m-связной сущности

Пусть преподаватель читает много дисциплин или ничего, но каждая дисциплина обязательно кем-то читается (рисунок 7.4).

Связь частичная для обеих сущностей - student2.ru Связь частичная для обеих сущностей - student2.ru

Рисунок 7.4 – Связь всюду определённая для m-связной сущности

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

Для исключения указанных проблем создадим два отношения:

ПРЕПОДАВАТЕЛЬ (Табельный номер, ФИО, Кафедра);

ДИСЦИПЛИНА (Код дисциплины, Название дисциплины, Табельный номер).

Правило. Если связь 1:m носит обязательный характер для m-связной сущности, то для каждой сущности создаётся отдельное отношение; ключ сущности с необязательной связью добавляется в качестве внешнего ключа в другое отношение.

Связь частичная для m-связной сущности

Пусть существуют дисциплины, которые никем не читаются (рисунок 7.5).

Связь частичная для m-связной сущности

Связь частичная для обеих сущностей - student2.ru Связь частичная для обеих сущностей - student2.ru

Рисунок 7.5 - Связь частичная для m-связной сущности

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

ПРЕПОДАВАТЕЛЬ (Табельный номер, ФИО, Кафедра);

ДИСЦИПЛИНА (Код дисциплины, Название дисциплины);

ЧИТАЕТ (Табельный номер, Код дисциплины чит).

В отношении ЧИТАЕТ изменено имя первичного ключа (см. 7.1.3).

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

Бинарная связь n:m

Пусть преподаватель читает много дисциплин или ничего, и каждая дисциплина читается несколькими преподавателями или никем (рисунок 7.6).

Связь n:m

Связь частичная для обеих сущностей - student2.ru Связь частичная для обеих сущностей - student2.ru

Рисунок 7.5 – Связь n:m

Очевидно, что в этом случае устранить избыточность можно только путём создания трёх отношений:

ПРЕПОДАВАТЕЛЬ (Табельный номер, ФИО, Кафедра);

ДИСЦИПЛИНА (Код дисциплины, Название дисциплины);

ЧИТАЕТ (Табельный номер, Код дисциплины).

В отношении ЧИТАЕТ между внешними ключами не существует функциональной зависимости, и свойством уникальности обладает только их сочетание, поэтому первичным ключом отношения для связи становится составной ключ.

Если предположить, что связи ЧИТАЕТ и ЧИТАЕТСЯ носят обязательный характер, то рассуждая аналогично предыдущему, получим такой же результат: три отношения. Поэтому правило для связи n:m не включает характеристику обязательности связи.

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

Наши рекомендации