Правила построения предварительных отношений

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

Правило 1

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

Пример:

Здесь может быть построено отношение .

Правило 2

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

Пример:

Здесь должны быть построены следующие отношения:

и .

Правило 3

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

Пример:

Здесь должны быть построены следующие отношения:

,

и

ЧИТАЕТ .

Правило 4

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

Пример:

Здесь должны быть построены следующие отношения:

,

.

Правило 5

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

Пример:

Здесь должны быть построены следующие отношения:

,

и

ЧИТАЕТ .

Правило 6

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

Пример:

Здесь должны быть построены следующие отношения:

,

и

ЧИТАЕТ .

Правило 7

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

Пример БД о преподавателях, читающих курсы на различных факультетах:

Здесь должны быть построены следующие отношения:

,

,

и

ЧИТАЕТ .

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

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

Решение этой задачи достигается, если рассматривать штатных преподавателей и аспирантов как преподавателей, которые исполняют роли либо штатных преподавателей, либо аспирантов, что на диаграмме ER-типа обозначается стрелками (рис. 2.13). Два ролевых набора - ШТАТНЫЙ и АСПИРАНТ - соединяются связью РУКОВОДИТ, как и обычные сущности.

Рис. 2.13. Диаграмма ER-типа с ролевыми наборами

При генерации предварительных отношений в данном случае следует руководствоваться следующим правилом:

Правило 8

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

С помощью данного правила получим набор предварительных отношений для БД о преподавателях:

,

,

ЧИТАЕТ ,

,

.

Здесь и - подмножества множества номеров преподавателей .

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

,

,

ЧИТАЕТ ,

,

.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: