ГОСТ Р ИСО 10303-14—2015
2
Приведенный ниже образ схемы
invalid
является примером неправильного образа схемы, так
как он содержит цикл ссылок (образ
а
ссылается на образ Ъ, который ссылается на образ а):
SCHEMA_VIEW invalid;
VIEW а;
FROM some_b :b;
attrl : INTEGER := some_b.attr2 + 2;
END_VIEW;
VIEW b;
FROM some_a : a;
attr2 : INTEGER := some_a.attrl * 3;
END_VIEW;
END SCHEMA VIEW;
4.2.3 Процесс реализации
Связующей средой является среда, в которой переменным присваиваются значения, используе
мые во время процесса реализации. Каждый связующий экземпляр содержит набор значений, которые
должны быть использованы в качество границ переменных. Процесс реализации образа является
про цессом оценки тела образа (см. 9.3.2) для каждого связующего экземпляра в связующем
пространстве. Порядок оценки связующих экземпляров не определен.
Примеры
1 Процесс связывания, относящийся к объявлению схемы, данных и образа из примера в 4.1,
дает в результате связующее пространство объекта
person_org: {<#1,#31>,<#1,#32>,
<#2,#31>,<#2,#32>}.
Объявление образа и данные, использованные в примере из 4.1, здесь приведе
ны еще раз:
VIEW person_org;
FROM р: person; о : organization; -- определяет порядок
SELECT
name : STRING := p.last_name;
org : STRING := o.department_name;
END VIEW;
’
#l=PERSON(’James’,’Smith1);
#2=PERSON(’Fredrick’,’Jones’);
#31=ORGANIZATION(’Engineering’);
#32=ORGANIZATION(’Sales’);
Связующий экземпляр
<#1,#31>
соответствует заданию экземпляра объектного типа данных
#1
переменной р и объектного типа данных
#31
переменной о. Оценка тела образа в данном связую
щем пространстве дает в результате экземпляр типа данных образа со значением
’Smith
для атри
бута
name
и значением
’Engineering’
для атрибута
org.
Экземпляры типа данных образа
могут быть закодированы так же. как если бы они были экземплярами объектного типа данных, с
помощью кодирования, определенного в ИСО 10303-21 [2]. Пространство образа для данного примера
выглядит
следующим образом:
#100=PERSON_ORG(1Smith * ’Engineering’); /* <#1,#31> */
#101=PERSON_ORGС Smith’ •Sales’); /* <#1,#32> */
#102=PERSON_ORG(•Jones * ’Engineering’); /* <#2,#31>
* /
#103«PERSON ORG(’Jones* •Sales’); /* <#2,#32> */
2
Целевая EXPRESS-схема и отображение схемы со структурой, подобной структуре образа схе
мы, использованного в предыдущем примере, могут быть определены следующим образом:
SCHEMA similar_target;
ENTITY person_org;
name : STRING;
org : STRING;
END_ENTITY;
END SCHEMA;
SCHEMA_MAP similar;
REFERENCE FROM person_and_org_schema AS SOURCE;
REFERENCE FROM similar_target AS TARGET;
MAP person_org_map AS
po : person_org;
FROM
p :person;
5