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

В ключевых или атрибутивных представлениях каждая сущность должна иметь как минимум один возможный ключ. В некоторых случаях, сущность может иметь более одного атрибута или групп атрибутов, которые однозначно определяют экземпляры сущности. Например, атрибуты ИДЕНТИФИКАТОР-СОТРУДНИК и НОМЕР-СОЦИАЛЬНОЙ-СТРАХОВКИ-СОТРУДНИКА могут оба однозначно определить экземпляр сущности СОТРУДНИК. Если имеется более, чем один возможный ключ, назначается один «первичный ключ», другие ключи назначаются «альтернативными». Если имеется только один возможный ключ, он и назначается первичным.

3.8.2 Синтаксис первичных и альтернативных ключей

Атрибуты, определяющие первичный ключ располагаются вверху списка атрибутов, внутри рамки сущности и отделяется от других атрибутов горизонтальной линией. См. Рисунок 3 в Разделе 3.4.

Каждому альтернативномуключу присваивается уникальный номер. Справа возле каждого атрибута ключа в круглых скобках ставятся буквы «АК» и номер альтернативного ключа, например, «(АК1)». См. Рисунок 10. Каждый атрибут может являться частью более чем одного альтернативногоключа. Атрибут первичного ключа может одновременно являться частью альтернативногоключа.

Синтаксис альтернативногоключа

Имя_атрибута (АКn)[(AKm)…]

или

Имя_атрибута (АКn[, (AKm)…])

Где n, m и т.д. однозначно определяют каждый альтернативный ключ, который включает связанный атрибут и где альтернативныйключ состоит из атрибутов с одинаковыми идентификаторами.

Пример

Первичный ключ

 
 


Альтернативный ключ №1

 
Номер_Сотрудника

Номер_Социальной_Страховки  (АК1)

Альтернативный ключ №2

 
Имя (АК2)

Дата_Рождения (АК2)

Рис. 10 Синтаксис альтернативного ключа

3.8.3 Правила использования первичных и альтернативных ключей

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

б) Сущность может иметь любое количество альтернативныхключей.

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

г) Каждый атрибут может быть частью более, чем одного ключа, как первичного, так и альтернативного.

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

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

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

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

3.9 Внешние ключи

Внешние ключи – это атрибуты сущностей, которые указывают на экземпляры связанных сущностей.

3.9. Семантика внешних ключей

Если между двумя сущностями существует идентифицируемая связь или отношение категоризации, то атрибуты, формирующие первичный ключ родительской сущности, становятся атрибутами дочерней сущности. Эти переходящие атрибуты называют «внешними ключами». Например, если существует связь между родительской сущностью ПРОЕКТ и дочерней сущностью ЗАДАНИЕ, то атрибуты первичного ключа сущности ПРОЕКТ становятся атрибутами сущности ЗАДАНИЕ. Например, если атрибут ID-ПРОЕКТА является первичным ключом сущности ПРОЕКТ, то атрибут ID-ПРОЕКТА будет переходящим атрибутом или внешним ключом сущности ЗАДААНИЕ.

Переходящий атрибут может быть использован в качестве как части, так и целого первичного ключа, альтернативного ключа или не ключевого атрибута внутри сущности. Если все атрибуты первичного ключа родительской сущности переходят в дочернюю сущность, как части первичного ключа, то отношения между атрибутами переходят в «идентифицирующую связь». (См. Раздел 3.5.1.1). Если какой-либо из переходящих атрибутов не является частью первичного ключа дочерней сущности – это «неидентифицирующие отношения». (См. Раздел 3.5.1.2). Например, если задания в проекте однозначно пронумерованы, тогда переходящий атрибут ID-ПРОЕКТА будет состоять из собственного атрибута ID-ЗАДАНИЯ, чтобы определить первичный ключ сущности ЗАДАНИЕ. Сущность ПРОЕКТ будет связана с сущностью ЗАДАНИЕ идентифицирующим отношением. С другой стороны, если атрибут ID-ЗАДАНИЯ всегда уникален, даже среди всех проектов, то переходящий атрибут ID-ПРОЕКТА будет неключевым атрибутом сущности ЗАДАНИЕ. В таком случае, сущность ПРОЕКТ будет связана с сущностью ЗАДАНИЕ неидентифицирующим отношением. Если только часть переходящих атрибутов первичного ключа становится частью первичного ключа дочерней сущности, а оставшиеся атрибуты – неключевыми атрибутами, то получившийся внешний ключ называют «сцепленным ключом». Если ключ «сцепленный», отношения неидентифицирующие.

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