ГОСТ Р ИСО 10303-11 — 2009
Н.1.1 Простая взаимосвязь
Простая взаимосвязь является взаимосвязью, установленной атрибутом, представление которого являет
ся другим обьектным типом данных. Даная взаимосвязь устанавливается между двумя объектными типами дан
ных.
Простая взаимосвязь всегда существует между экземпляром объявляющего объекта и не более чем одним
экземпляром представляющего объекта. Используя установленное выше условное изображение, данная взаи
мосвязь может быть представлена следующим образом:
Е. А {/п : 1) (р :д}у.
где 0 S т £ 1 и 0 £ р £ q.
Эго означает, что для каждого экземпляра Е роль А либо не исполняет ни один из экземпляров Т, либо
исполняет строго один экземпляр Т. Для каждого экземпляра Т должно существовать от р до q экземпляров Е. в
которых данный экземпляр Т исполняет роль А.
Следующие варианты значений р и q представляют содержательные классы ограничений на простую взаи
мосвязь между Е и Т:
- если q = 1, то существует ограничение, заключающееся в том. что экземпляр Т не может исполнять рольА
более чем в одном экземпляре Е;
- если 1 £ р. то для Т существует ограничение существования. То есть для каждого экземпляра Т должно
существовать не менее р (но не более q) экземпляров Е. использующихданный экземпляр Т в роли А.
Для ограничения мощности простой взаимосвязи и ее инверсной взаимосвязи используются несколько
разных конструкций на языке EXPRESS:
- вариант Т = 0обеспечивается объявлением атрибута А как необязательного (OPTIONAL). Если А не объяв
лен как OPTIONAL, го т = 1;
- вариант q - 1 обеспечивается объявлением простого инверсного атрибута или присоединением к Е.А
правила уникальности, которое требует, чтобы для каждой из ролей А всовокупности объектов Е использовались
разные экземпляры, поэтому экземпляр Т может быть использован не более чем одним Е.А:
- другие ограничения на мощность инверсной взаимосвязи выражаются путем объявления в Т инверсного
атрибута в виде: INVERSE I :SET (р :q] OF Е FOR А. Случай, когда р = q = 1, может быть сокращенно представлен в
виде:
INVERSE I : Е FOR А.
Ниже приведены примеры простых взаимосвязей и связанных с ними ограничений мощности.
Примеры
1 CIRCLE.CENTRE<1:1>: ?> > POINT
Каждая окружность CIRCLE имеет строго одну точку POINT, исполняющуюроль еецентра CENTRE.
Каждая точка POINT может исполнятьроль центра в произвольном числе окружностей (в том числе ни е
одной). Это может быть объявлено следующим образом:
ENTITY point:
END_ENTITY;
ENTITY circle:
centre : point;
END_ENTITY;
2 PRODUCT_VERSION.BASE_PRODUCT{1:1} {1 : ?}PRODUCT
Каждая версия изделия PRODUCT_VERSION имеет строго одно изделие PRODUCT, исполняющее
роль базового изделия BASE_PRODUCT. Объект PRODUCT может игратьроль BASE_PRODUCT е любом
количестве версий PRODUCT_VERSION. но не менее чем в одной (зависимость существования). Это
может быть объявлено следующим образом:
ENTITY product_version;
base_product : product; ...
END_ENTITY;
ENTITY product:
INVERSE
versions : SET (1 : ?] OF product_version FOR base_product;
END_ENTITY;
179