Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по IDEF1x.doc
Скачиваний:
19
Добавлен:
28.09.2019
Размер:
671.74 Кб
Скачать
      1. Обозначение альтернативных ключей

ИМЯ-АТРИБУТА (АКn)[(AKm)…]

Или ИМЯ-АТРИБУТА (АКn [, AKm…])

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

Правила для первичных и альтернативных ключей см. в Приложении 3.

5.5. Внешние ключи.

Атрибуты, которые образуют первичный и альтернативные ключи сущности, могут как принадлежать этой сущности (быть собственными атрибутами сущности), так и мигрировать посредством отношения. Если между двумя сущностями существует определенное отношение связи или категоризации, то атрибуты, формирующие первичный ключ родительской или общей сущности мигрируют к сущности-потомку или сущности-категории. Эти мигрирующие атрибуты называются «внешними ключами». Например, если существует отношение связи между сущностью-родителем НАПРАВЛЕНИЕ и сущностью-

потомком ЗАПИСЬ_НАПРАВЛЕНИЯ, то атрибуты первичного ключа сущности НАПРАВЛЕНИЕ будут мигрирующими атрибутами для сущности

ЗАПИСЬ_НАПРАВЛЕНИЯ. Например, если атрибут КОД-НАПРАВЛЕНИЯ является первичным ключом сущности НАПРАВЛЕНИЕ, то КОД-НАПРАВЛЕНИЯ будет мигрирующим атрибутом или внешним ключом сущности ЗАПИСЬ_НАПРАВЛЕНИЯ.

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

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

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

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

Рис. V 4. Пример мигрирующих атрибутов.

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

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

ключ образуется путем миграции первичного ключа общей сущности. Например, если СОТРУДНИК_МУЖЧИНА и СОТРУДНИК_ЖЕНЩИНА – сущности-категории, а СОТРУДНИК – общая сущность, то атрибут КОД_СОТРУДНИКА, являющийся первичным ключом сущности СОТРУДНИК будет также первичным ключом для сущностей СОТРУДНИК_МУЖЧИНА и СОТРУДНИК_ЖЕНЩИНА. Правила для внешних ключей см. в Приложении 3.