ГОСТ Р И С 0 10303-11 — 2009
Примеры
1Если объект не имеет три атрибута а. b и с, то следующий фрагмент на языке EXPRESS
означает, что два экземпляра объявленного объектного типа данных не могут иметь одинаковые
значения для а, b или с.
ENTITY е;
a, b,c : INTEGER;
UNIQUE
ur1 : а;
ur2 : b;
ur3 : c;
END_ENTTTY:
2 Объект person_name может быть определен следующим образом:
ENTITY person name;
last: STRING;
first; STRING;
middle: STRING;
nickname : STRING;
END ENTITY;
Данный объект может быть использован следующим образом:
ENTITY employee;
badge : NUMBER;
name : person_name;
UNIQUE
ur1 : badge, name;
END_ENT!TY:
В данном примере два экземпляра объекта person_name могли бы иметь одинаковый набор
значений для четырех атрибутов. Однако для объекта employee введено требование, чтобы
совместное использование атрибутов badge и пате было уникальным. Таким образом, два экземп
ляра объекта employee могут иметь одинаковое значение атрибута badge и одинаковое значение
атрибута пате. Однако никакие два экземпляра объекта employee не могут иметь одинаковый
экземпляр атрибута badge и одинаковый экземпляр атрибута пате, поскольку при совместном
использовании данная комбинация экземпляров должна быть уникальной (см. 9.6 по поводу способа
описания уникальности значений атрибутов).
92.2.2 Правила области определения (условие WHERE)
Правила областиопределения ограничивают значения отдельных атрибутов или комбинаций атрибу
тов для каждого экземпляра объекта. Все правила области определения указывают после ключевого слова
WHERE
Синтаксис;
338 where_clause = WHERE domain_rule{domain_rule
Правила и ограничения;
a) Результатом оценки выражения, описывающего правило области определения, должно быть
логическое значение (TRUE, FALSE или UNKNOWN) или неопределенное (?) значение.
b
) Каждое выражение, описывающее правило области определения, должно содержать ключевое
слово SELF или атрибуты, объявленные вопределении объекта или любого его супертипа.
c) Появление ключевого слова SELF должно означать ссылку на экземпляр объявляемого объекта.
d) Правило области определениядолжно считаться доказанным, если оценкой выражения является
значение TRUE; правило должно считаться нарушенным, если оценкой выражения является значение
FALSE; правило будет считаться ни доказанным, ни нарушенным, если оценкой выражения является
неопределенное (?) значение или значение UNKNOWN.
e) Все правила должны выполняться для допустимого экземпляра объекта (в данной области
определения).
Пример — Для объекта unit_vector требуется, чтобы его длина была равна точно единице. Это
ограничение может быть определено следующим образом:
ENTITY unit_vector;
а. Ь, с : REAL:
34