9.3.1 Введение
Объявление образа создает тип данных образа и объявляет идентификатор, чтобы на него ссылаться.
Пример - Следующее объявление образа создает тип данных образа arm_person_role_in_organization. |
VIEW arm_person_role_in_organization; |
FROM |
pao : person_and_organization; |
ccdpaoa : cc_design_person_and_organization_assignment; |
WHERE ccdpaoa.assigned_person_and_organization :=: pao; |
SELECT |
person : person := pao.the_person; |
org : organization := pao.the_organization; |
role : label := ccdpaoa.role.name; |
END VIEW; |
Синтаксис: | |
228 | view_decl = ( root_view_decl | dependent_view_decl | subtype_view_decl ) . |
177 | root_view_decl = VIEW view_id [ supertype_constraint ] ';' |
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 . |
9.3.2 Атрибуты образа
Атрибут типа данных образа представляет характеристику образа. Значение атрибута экземпляра образа получают в результате вычисления значения выражения, представленного элементом языка expression из синтаксического правила 224.
Имя атрибута образа (view_attribute_id из синтаксического правила 224) представляет роль, которую играет связанное с ним значение в контексте образа, в котором присутствует данный атрибут.
Синтаксис: | |
226 | view_attr_decl_stmt_list = { view_attribute_decl } . |
224 | view_attribute_decl = view_attribute_id ':' [ OPTIONAL ] [ source_schema_ref '.' ] base_type ':=' expression ';' . |
Правила и ограничения
a) Значение, полученное в результате вычисления выражения, представленного элементом языка expression из синтаксического правила 224, должно быть совместимо по присваиванию с атрибутом образа base_type.
b) Любое имя атрибута образа view_attribute_id, объявленное в объявлении образа, должно быть уникально в рамках данного объявления.
c) Элемент языка OPTIONAL показывает, что значение данного атрибута может быть неопределенным. Использование элемента языка OPTIONAL не влияет на модель исполнения.
9.3.3 Разделы образа
Раздел образа является подмножеством пространства образа. Пространство образа представляет собой объединение его разделов. Объявление образа состоит из одного или нескольких объявлений разделов, в каждое из которых входят свои собственные элементы языка FROM и WHERE.
Пример - В ИСО 10303-201 прикладной объект ORGANIZATION может быть отображен из объекта PERSON, ORGANIZATION или PERSON_AND_ORGANIZATION. Отображение образа данной схемы на образ arm_organization определено следующим образом: |
VIEW arm_organization; |
PARTITION a_single_person; |
FROM p : person; |
... |
PARTITION a_single_organization; |
FROM o: organization; |
... |
PARTITION a_person_in_an_organization; |
FROM po: person_and_organization; |
... |
END VIEW; |
Синтаксис: | |
228 | view_decl = ( root_view_decl | dependent_view_decl | subtype_view_decl ). |
177 | root_view_decl = VIEW view_id [ supertype_constraint ] ';' |
67 | dependent_view_decl = VIEW view_id ':' base_type ';' binding_header |
206 | subtype_view_decl = VIEW view_id subtype_declaration ';' |
203 | subtype_binding_header = [ PARTITION partition_id ';' ] where_clause . |
47 | binding_header = [ PARTITION partition_id ';' ] [ from_clause ] [ |
Правила и ограничения
a) Если в объявлении образа присутствует более одного раздела, то элемент языка partition_id должен быть задан для каждого раздела.