logo
БД / test

5. Правила Джексона и их применение.

Физические модели баз данных могут быть построены вручную. Модель "сущность-связь" можно преобразовать в систему отношений, пользуясь алгоритмом, известным как Правила Джексона. Этот алгоритм является эвристическим, но для диаграмм "сущность-связь", содержащих не более 20 – ти сущностей, дает хорошие результаты.

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

ПРАВИЛО 1.

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

Пример связи

Отношение

ПРАВИЛО 2.

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

Пример связи

Отношение

ПРАВИЛО 3.

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

Пример связи

Отношение

ПРАВИЛО 4.

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

Пример связи

Отношение

ПРАВИЛО 5.

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

Пример связи

Отношение

ПРАВИЛО 6.

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

Пример связи

Отношение