Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСА / 02 IDEF0 видео прокат.rtf
Скачиваний:
588
Добавлен:
25.12.2014
Размер:
46.49 Mб
Скачать

Связь (отношение)

Связь (отношение, relationship) — поименованная ассоциация между двумя сущностями, определяющая некоторое логическое соотношение между сущностями.

Каждая связь может именоваться глаголом или глагольной конструкцией. Связь определяет логическое ограничение или бизнес-правило.

На уровне конечной БД связи соответствует ограничение целостности.

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

В зависимости от характера связи, соединяющей сущности, в IDEF1X выделяются зависимые и независимые сущности. С этой точки зрения связи делятся на идентифицирующие и неидентифицирующие.

Полная идентификация: каждый экземпляр полностью идентифицируется своими собственными ключевыми атрибутами.

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

В случае связи «один ко многим» экземпляру родительской сущности соответствует произвольное, в том числе нулевое, количество экземпляров потомков, а экземпляр сущности-потомка ассоциирован с одним экземпляром родительской сущности:

При использовании отношения «один ко многим» может устанавливаться идентифицирующая (identifying) связь между одной независимой (родительской) и одной зависимой (дочерней) сущностью. Это означает, что экземпляр дочерней сущности не может существовать, если нет соответствующего ему экземпляра родительской сущности. Это достигается путем так называемой миграции атрибутов первичного ключа родительской сущности в состав первичного ключа дочерней сущности. Первичный ключ родительской сущности становится так называемым внешним ключом (foreign key) для дочерней сущности. При этом атрибуты первичного ключа родительской сущности становятся связанными с соответствующими им атрибутами первичного ключа дочерней сущности: удалением экземпляра родительской сущности приводит к принятию атрибутами внешнего ключа неопределенных значений и, соответственно, фактическому удалению тех экземпляров дочерней сущности, которые были связаны с удаленным экземпляром родительской. Действительно, внешний ключ входит в состав первичного ключа дочерней сущности и его атрибуты не могут принимать неопределенные значения без потери свойства однозначной идентифицируемости сущности.

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

Таким образом, с точки зрения наследования сущности делятся на родовые сущности и сущности-потомки (категориальные сущности).

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

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

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

Тип иерархии указывается через вид знака иерархии:

неполная

полная

Свойства наследования:

  1. категориальная сущность может иметь только одну родовую сущность;

  2. категориальная сущность может быть родовой в другом категориальном отношении;

  3. категориальная сущность может быть родовой в нескольких иерархиях (гроздях) категориальных отношений;

  4. первичный ключ категориальной сущности должен совпадать с первичным ключом родовой сущности (хотя допускается присваивание ролей);

  5. все экземпляры категориальной сущности имеют одинаковое значение дискриминатора; все экземпляры разных категориальных сущностей должны иметь различные значения дискриминатора (если родовая сущность у них одна);

  6. в иерархиях наследования не может быть циклов;

  7. дискриминатор в полной иерархии не может принимать неопределенное значение;

  8. категориальная сущность всегда является зависимой.

5.2 Концептуальная модель данных

Рис. 29. Концептуальная модель данных