Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по предмету_ТП.doc
Скачиваний:
26
Добавлен:
11.05.2015
Размер:
6.01 Mб
Скачать

5.2. Связи и отношения

В процессе моделирования сущности связываются отношениями, например, отдел А «состоит из» из сотрудников В, сотрудник из В «пишет» программу С и Д. В данном случаи, связь является логическим отношением между сущностями. При таком связывании сущность А является родительской для сущности В, а сущность В является потомком (дочерней) для сущности А.

Сами сущности могут быть «зависимые» и «независимые», а связи «идентифицирующими» – между «независимой» и «зависимой» сущностями или «не идентифицирующими», дочерняя сущность остается независимой. В случае если потомок связан «идентифицирующей» связью, дочерняя сущность «зависит» от родительской, то каждое значение родительской сущности связано с одним или более значениями дочерней сущности, и отображает связи, которые не могут быть без родительской сущности. В этом случае, любое значение дочерней сущности идентифицируется с помощью некоторого значения родительской сущности и атрибуты первичного ключа родительской сущности мигрируют в атрибуты первичного ключа дочерней сущности.

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

5.2.1. Мощность связей

Спецификация мощности связей (отношений) служит для обозначения количества экземпляров (значений) дочерних сущностей связанных с соответствующим значением родительской сущности. Здесь приняты следующие обозначения: Ра – родительская сущность, Сh – дочерняя:

Рa Сh 0, 1 или много

Pa Ch 1 или много

Р

Pa Ch 0 или 1

z

Pa Ch точно N (7)

7

Pa Ch от n до m

N – m

Pa Ch многие – ко многим, отношения не установлены, должны быть разрешены позже.

На рис. 5.2. приведен диалог установления мощности отношений.

Рис. 5.1. Пример идентифицирующей связи

Рис. 5.2. Мощности отношений

5.3. Ключи

Как уже отмечалось выше, каждый экземпляр сущности должен быть уникален, и каждое значение атрибутов должно отличаться одно от другого. Для идентификации каждого экземпляра сущности используется первичный ключ – PK (Primary Key).

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

уникально идентифицировать значение сущности;

не должны включать значение NULL;

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

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

Связи между сущностями реализуются с помощью внешних ключей – FK (Foreign Key), которые образуются из PK путем их миграции из родительской сущности в дочернюю сущность. Сущности и их связи, ключи PK и FK – это основные элементы модели данных. Кроме ключей PK и FK – при построении модели данных, используются альтернативные и инверсные ключи – AK (Alternate Key) и IK (Inversion Key). Альтернативные ключи, так же как и PK, обеспечивают уникальный доступ к значениям сущности, но по другим наборам атрибутов, а инверсные ключи, обеспечивают доступ к некоторому набору значений сущности, имеющего общие характеристики.