ГОСТ Р ИСО 10303-14—2015
Правила и ограничения
Идентификаторы
source_paraner.er_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=1ТЕМ(123,’Smith1);
#2=1ТЕМ(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.approvedjby
является также
’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;
11