Пример
производство: изготовленная_деталь является производство: деталь.
производство: купленная_деталь является производство: деталь.
(для всех *)
(если существует (производство: изготовленная_деталь): I
тогда существует (производство: деталь): I).
(для всех *)
(если существует (производство: купленная_деталь): I
тогда существует (производство: деталь): I).
(для всех *)
(не (существует (производство: изготовленная_деталь): I,
существует (производство: купленная_деталь): I)).
(для всех *)
(если существует (производство: деталь): I
тогда существует (производство: изготовленная_деталь): I
или существует (производство: купленная_деталь): I).
(для всех *)
(если представитель ([изготовленная_деталь, купленная_деталь], E),
существует (производство: E): I1,
существует (производство: E): I2
тогда (для некоторых D)
((производство: деталь): I1 имеет тип_детали: D,
(производство: деталь): I2 имеет тип_детали: D)).
(для всех *)
(если (производство: деталь): I1 имеет тип_детали: D,
(производство: деталь): I2 имеет тип_детали: D,
представитель ([изготовленная_деталь, купленная_деталь], E),
существует (производство: E): I1
тогда существует (производство: E ): I2).
Б.4.2.8 Первичный и альтернативный ключ
В IDEF1X, сущность имеет атрибуты только внутри представления. Представление изображается графически в виде диаграммы, на которой изображены атрибуты первичного и альтернативного ключа сущностей. Если имеется множество представлений (например, множество диаграмм), следующая процедура создает правила в теории, которые соотносятся с атрибутами первичного и альтернативного ключа сущностей в представлении.
Ч1. Для каждого представления, v, в множестве представлений, и для каждой сущности, e, в v, где e имеет атрибуты первичного ключа p1, p2, ..., pn и альтернативных ключей от 1 до m, состоящих из атрибутов
a11, a12, ..., a1n1
a21, a22, ..., a2n2
...
am1, am2, ..., amnm
сделайте следующее.
Ч1.1. Добавьте для первичного ключа правило уникальности
(для всех *)
(если ( v: e ): I1 имеет p1: P1,
( v: e ): I1 имеет p2: P2,
...
( v: e ): I1 имеет pn: Pn,
( v: e ): I2 имеет p1: P1,
( v: e ): I2 имеет p2: P2,
...
( v: e ): I2 имеет pn: Pn
тогда I1 = I2 )
к теории. (Правило о том, что первичные ключи не могут быть нулевыми, объявлено, как правило метамодели).
Ч1.2. Добавьте правило уникальности для каждого альтернативного ключа. Для 1≤i≤m, добавьте правило
(для всех *)
(если ( v: e ): I1 имеет ai1: A1,
( v: e ): I1 имеет ai2: A2,
...
( v: e ): I1 имеет aini: Ani,
( v: e ): I2 имеет ai1: A1,
( v: e ): I2 имеет ai2: A2,
...
( v: e ): I2 имеет aini: Ani
тогда I1 = I2 )
к теории.
Пример
Для компании Телекоммуникаций сущность покупная_деталь является результатом следующих аксиом.
(для всех *)
(если ( производство: покупная_деталь): I1 имеет имя_покупной_детали: P1,
(производство: покупная_деталь): I2 имеет имя_покупной_детали: P1,
тогда I1 = I2).
(для всех *)
(если (производство: покупная_деталь): I1 имеет стандартный_№_производителя: A1,
(производство: покупная_деталь): I1 имеет id_производителя_детали: A2,
(производство: покупная_деталь): I2 имеет стандартный_№_производителя: A1,
(производство: покупная_деталь): I2 имеет id_производителя_детали: A2,
тогда I1 = I2).
Б.4.2.9 Внешний ключ
В IDEF1X, сущность имеет связи и внешние ключи только внутри представления. Представление изображается графически в виде диаграммы, на которой изображены сущности представления и их связи. Для каждой связи определяются внешние ключи и ролевые имена. Если имеется множество представлений (например, множество диаграмм), следующая процедура создает правила в теории, которые соотносятся с идентифицирующими связями, внешними ключами и ролевыми именами в представлении.
В1. Для каждого представления, v, в множестве представлений и для каждой сущности, e1, и сущности, e2, (не обязательно различных) в v с идентифицирующей связью между e1 и e2, где
е1 – родитель
е2 – потомок
n1 – имя связи от е1 к е2 (называется так же, как е2, если имя не указано)
n2 – имя связи от е2 к е1 (называется так же, как е1, если имя не указано)
p1, p2, ..., pn – атрибуты первичного ключа e1
f1, f2, ..., fn – атрибуты внешнего ключа e2
и для 1≤ i≤n, fi является pi или ролевым именем для pi, сделайте следующее.
В1.1. Добавьте правило о том, что потомок имеет значения атрибутов внешнего ключа тогда и только тогда, когда потомок соотносится с родителем.
(для всех *) ( (для некоторых I ) ( ( v: e2 ): J имеет n2: I )
если
(для некоторых F1, F2, ..., Fn )
( ( v: e2 ): J имеет f1: F1,
( v: e2 ): J имеет f2: F2,
...
( v: e2 ): J имеет fn: Fn ) )
к теории.
В1.2. Добавьте правило о том, что если потомок имеет значения для всех внешних ключей и имеет родителя, тогда имеет значения первичного ключа и значения внешнего ключа соотносятся со значениями первичного ключа:
(для всех * ) ( если ( v: e2 ): J имеет n2: I,
( v: e2 ): J имеет f1: F1,
( v: e2 ): J имеет f2: F2,
...
( v: e2 ): J имеет fn: Fn
тогда ( для некоторых P1, P2, ..., Pn )
( ( v: e1 ): I имеет p1: P1,
F1 → P1,
( ( v: e1 ): I имеет p2: P2,
F2 → P2,
...
( ( v: e1 ): I имеет pn: Pn,
Fn → Pn ) )
к теории.
В2. В IDEF1X сущность имеет отношения категорий только внутри представления only. Представление представлено графически в виде диаграммы, показывающей сущности в представлении и, для каждой сущности, категории, которыми она обладает в соответствии с представлением. Если имеется множество представлений (например, множество диаграмм), следующая процедура создает правила в теории, которые соотносятся с внешними ключами для отношений категории в представлениях. Для каждого представления, v, в множестве представлений и для каждой пары сущностей e1 и e2 в v, где
е1 – родовая сущность
е2 – категория е1
p1, p2, ..., pn – атрибуты первичного ключа e1
f1, f2, ..., fn – атрибуты первичного ключа e2
и для 1≤ i≤n, fi является pi или ролевым именем для pi, добавьте правило
(для всех *) ( если существует ( v: e2 ): I,
( v: e2 ): I имеет f1: F1,
( v: e1 ): I имеет p1: P1,
( v: e2 ): I имеет f2: F2,
( v: e1 ): I имеет p2: P2,
...
( v: e2 ): I имеет fn: Fn,
( v: e1 ): I имеет pn: Pn
тогда
F1 → P1,
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.