Статус документа
Статус документа

ГОСТ Р ИСО 10303-14-2015 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 14. Методы описания. Справочное руководство по языку EXPRESS-X (Переиздание)

     9.2 Связывание

9.2.1 Введение

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

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

Примечание - Положения, определенные в 9.2, применяются к объявлениям отображений и объявлениям образов. Положения, применяемые только к объявлениям образов, определены в 9.3. Положения, применяемые только к объявлениям отображений, определены в 9.4.

9.2.2 Связующее пространство

Элемент языка FROM определяет элементы связующих экземпляров в связующем пространстве. Элемент языка FROM включает один или несколько параметров. Каждый исходный параметр связывает идентификатор с пространством.

Синтаксис:

228

view_decl = ( root_view_decl | dependent_view_decl | subtype view decl ).

136

map decl = MAP map_id AS target_parameter ';' { target parameter ';' } ( map_subtype_of_clause subtype_binding_header map decl body ) | ( binding_header map_decl_body { binding_header map_decl_body } )
END_MAP ';'.

47

binding_header = [ PARTITION partition_id ';' ] [ from_clause ] [ local_decl ] [ where_clause ] [ identified_by_clause ] [ ordered_by_clause ].

90

from clause = FROM source_parameter ';' { source parameter ';' }.

198

source_parameter = source_parameter_id ':' extent reference .

83

extent_reference = source_entity_reference | view_reference .


Правила и ограничения

Идентификаторы source_parameter_id должны быть уникальными в области действия объявления отображения или образа.

Связующее пространство вычисляют как декартово произведение экземпляров пространств, на которые имеются ссылки в элементе языка FROM.

Пример - Связующее пространство строится над совокупностями объектов item и person.

SCHEMA source_schema;           -- EXPRESS-схема

ENTITY item;

item_number : INTEGER;

approved_by : STRING;

END_ENTITY;

ENTITY person;

name : STRING;

END_ENTITY;

END_SCHEMA;

SCHEMA_VIEW example;

REFERENCE FROM source_schema;

VIEW items and persons;

FROM i : item; p : person;

SELECT

item_number : INTEGER := i.item number;

responsible : STRING := p.name;

END_VIEW;

END_SCHEMA_VIEW;

Пусть задана следующая совокупность (объекты представлены в соответствии с ИСО 10303-21):

#1=IТЕМ (123, 'Smith');

#2=IТЕМ (234, 'Smith');

#33=PERSON ('Jones');

#44=PERSON ('Smith');

тогда соответствующее связующее пространство будет выглядеть следующим образом:

{<#1,#33>,<#1,#44>,<#2,#33>,<#2,#44>}.

9.2.3 Квалификация связующего пространства

Элемент языка WHERE определяет критерии выбора связующих экземпляров в связующем пространстве. Элемент языка WHERE вместе с исходными пространствами, определенными в элементе языка FROM, определяют квалифицированное связующее пространство.

Связующей средой является среда, в которой переменным присваиваются значения. Исходные параметры элемента языка FROM являются границами связующего экземпляра. Выражения для правил области действия элемента языка WHERE вычисляют в процессе данного связывания. Связующий экземпляр из связующего пространства включается в квалифицированное связующее пространство в том случае, если вычисленным значением всех выражений для правил области действия элемента языка WHERE является TRUE.

Синтаксис элемента языка WHERE определен в пункте 9.2.2.2 ИСО 10303-11.

Пример - Квалифицированное связующее пространство включает те пары объектов item и person из связующего пространства, для которых значением атрибута person.name является 'Smith' или 'Jones' и значением атрибута item.approved_by является также 'Smith' или 'Jones'.

SCHEMA_VIEW example;

REFERENCE FROM source_schema;

VIEW items and persons;

FROM i : item; p : person;

WHERE (p.name = 'Smith') OR (p.name = 'Jones');

(i.approved by = p.name);

SELECT

name : STRING := p.name;

END_VIEW;

END_SCHEMA_VIEW;

Квалифицированное связующее пространство, соответствующее данным из примера в 9.2.2, будет выглядеть следующим образом:

{<#1,#44>,<#2,#44>}.

9.2.4 Идентификация экземпляров образа и целевых экземпляров

Связующий экземпляр отображения или образа, не содержащий элемент языка identified_by_clause, идентифицируют значениями (экземплярами объектного типа данных), которые он получает из пространств, на которые имеются ссылки в элементе языка FROM. Связующий экземпляр отображения или образа, содержащий элемент языка identified_by_clause, идентифицируют значением (значениями) элемента языка expression в соответствии с синтаксическим правилом 108. Эти схемы идентификации используют при вызове образа (см. 10.2) и вызове отображения (см. 10.3).

Элемент языка identified_by_clause определяет отношение эквивалентности между экземплярами в связующем пространстве.     

Синтаксис:

107

identified_by_clause = IDENTIFIED_BY id_parameter ';' {id_parameter ';'} .

108

id_parameter = [id_parameter_id ':' expression .

109

id_parameter_id = simple_id .

90

from_clause = FROM source_parameter ';' { source_parameter ';' }.

198

source_parameter = source_parameter_id ':' extent_reference .