Комплексное определение для информационного моделирования (IDEF1X), страница 29

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

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

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

Процесс идентификации ключей состоит из:

a) Идентификация возможных ключей для объекта.

b) Выбор первичного ключа.

c) Выделение дополнительных ключей.

Так как некоторые возможные ключи могут быть результатом миграции ключей, выбор ключей - итерационный процесс.

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

Рисунок A3.12. Ключевые Формы

A3.4.4 Миграция первичных ключей

Миграция первичного ключа - процесс копирования первичного ключа одного объекта в другой, связанный с этим, объект. Точную копию называют внешним ключом. Значение внешнего ключа в каждом экземпляре класса второго объекта идентично значению первичного ключа первый объекта, их которого копируется ключевой элемент.

Это процесс того, как атрибут одной сущности становится атрибутом другой сущности.

Три правила управления миграцией первичного ключа:

a) Миграция всегда совершается от родительского или универсального объекта дочернего объекта или объекта категории.

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

c) Неключевые атрибуты никогда не перемещаются.

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

Таким образом, каждый атрибут в объекте или принадлежит самому объекту или принадлежит внешнему ключу объекта. В диаграммах внешние ключи отмечаются аналогично дополнительным ключам, то есть, “(FK)” ставится после каждого атрибута, который принадлежит внешнему ключу. Если данный атрибут также принадлежит первичному ключу, то он располагается выше горизонтальной строки; в противном случае - ниже.

Если первичный ключ дочернего объекта содержит все атрибуты во внешнем ключе, дочерний объект, как говорят, является “идентифицируемо зависимым” от родительскомго объекта, и отношения называют “идентифицируемые отношения.” Если какие-нибудь атрибуты во внешнем ключе не принадлежат первичному ключу дочернего объекта, дочерний объект не является идентифицируемо зависимым, и отношения называют "неидентифицируемыми". На Этапах 3 и 4 на диаграммах сплошными линиями изображаются только идентифицируемые отношения; неидентифицируемые показываются пунктирными линиями.

Объект, который является дочерним в одном или более идентифицируемых отношениях, называют “зависимым от идентификатора объектом.” Объект, который является дочерним и находится в только неидентифицируемых отношениях (или не является дочерним ни в каких отношениях) называют “независимым от идентификатора объектом.” На Этапах 3 и 4 независимые от идентификатора объекты показывают как поля с квадратными углами; зависимые  -  как поля с закругленными углами.

Пример миграции первичного ключа от родительского объекта к дочернему показан на рисунке A3.13.

Рисунок A3.13. Миграция Первичного ключа к Зависимому от идентификатора Объекту

В этом примере атрибут НОМЕР СЧЕТА КЛИЕНТА (первичный ключ объекта КЛИЕНТ) перемещается в объект ПРОВЕРКА (как внешний ключ). Таким образом, он используется в объекте ПРОВЕРКА в качестве части первичного ключа вместе с другим атрибутом КОНТРОЛЬНОЕ ЧИСЛО, которое принадлежит ПРОВЕРКЕ. Два атрибута (НОМЕР СЧЕТА КЛИЕНТА и КОНТРОЛЬНОЕ ЧИСЛО) вместе формируют первичный ключ для объекта ПРОВЕРКА.

Пример миграции первичного ключа от независимого от идентификатора объекта к другому независимому от идентификатора объекту показан на рисунке A3.14. В этом примере  атрибут НОМЕР ОТДЕЛА перемещается в объект РАБОТНИК. Однако, первичный ключ РАБОТНИКА – идентификационный номер работника. Поэтому НОМЕР ОТДЕЛА используется как внешний ключ и отображается ниже горизонтальной линии. Линия, отображающая отношения между объектами пунктирная, так как это - неидентифицируемые отношения.

Дочерний Объект имеет свой собственный уникальный идентификатор без идентификатора родителя.

Рисунок A3.14. Миграция к Независимому от идентификатора Объекту