ГОСТ Р ИСО 10303-14—2015
между связующими экземплярами и экземплярами из пространства образа или целевой совокупности:
в пространстве образа или в целевой совокупности для каждого связующего экземпляра существует
уникальный экземпляр. Если в объявлении образа или отображения задан элемент языка IDENTI
FIED BY, то данное соответствие не является функциональным идля любого связующего экземпляра
не существует уникального экземпляра в пространстве образа или в целевой совокупности. Вместоэто
го уникальный экземпляр в пространстве образа или в целевой совокупности существует для каждого
класса эквивалентности связующих экземпляров, определенного в элементе языка IDENTIFIED BY
(см. 9.2.2).
Если элемент языка IDENTIFIED BY не задан, то каждый квалифицированный связующий эк
земпляр служит ключом для идентификации экземпляра изданного соответствия. Если элемент языка
IDENTIFIED BY задан, то любой связующий экземпляр из класса эквивалентности служит ключом
для идентификации экземпляра из данного соответствия. Элементы этихдвух видов ключей (компонен
ты ключей) определяются элементом языка
from
и
выражениями в IDENTIFIED BY соответственно.
Вызов частичного связывания представляет собой вызов образа или отображения, в котором зна чения
одного или нескольких элементов этих ключей не заданы (в синтаксических структурах это обо
значается с помощью элемента языка ’ ’).
Если элемент языка IDENTIFIED BY не задан, то данный частично заданный ключ соответ
ствует множеству квалифицированных связующих экземпляров, которые соответствуют заданным эле
ментам ключа. Неэаданные компоненты ключа (обозначенные с помощью ’ ’) игнорируются.
Если элемент языка IDENTIFIED BY задан, то данный частично заданный ключ соответствует
значениям, полученным в результате вычисления выражения, указанного в элементе языка IDENTI
FIED BY. Незаданные компоненты ключа (обозначенные с помощью ’ ’) игнорируются.
Результатом вызова частичного связывания является множество экземпляров образа (в случае
вызова образа) или экземпляров объекта (в случае вызова отображения), соответствующих связующим
экземплярам, отобранным по алгоритмам, представленным в данном подразделе.
Пример
—
В данном примере разные версии, связанные с деталью, собраны вместе с использо
ванием вызова частичного связывания. Возвращенный после вызова частичного связывания объект
version_and_its_product
является подмножеством пространства, для которого вторым элемен
том связующего экземпляра является элемент, равный заданному экземпляру объекта
product:
VIEW part;
FROM p :product;
SELECT
versions : SET OF version_and_its_product
:= version_and_itsjproduct(_, p);
END_VIEW;
VIEW version_and_its_product;
FROM pdf : product_definition_formation; p :product;
WHERE ppdf.ofjproduct;
SELECT
the version :product_definition_formation :» pdf;
END_VIEW;
10.5 Выражение FOR
Выражение FORобеспечивает вычисление агрегированного значения с помощью итераций, управ
ляемых значением индекса или агрегированной структурой. Настоящий стандарт определяет два вида
итераций.
- выражение
foreach ехрг
проводит итерации, управляемые агрегированной структурой язы
ка EXPRESS, и вычисляет значение объекта
expression
для каждого элемента данной агрегирован
ной структуры. Все результаты вычислений собираются в агрегированную структуру, которая представ
ляет значение выражения FOR;
-выражение
forloop ехрг
проводит итерации, управляемые объектом
repeat control
(см. подраздел 13.9 ИСО 10303-11). и на каждой итерации вычисляет значение объекта
expression.
Если не сделано ни одной итерации, то выражение FOR в качестве результата возвращает пустую
агрегированную структуру.
37