ГОСТ Р И С 0 10303-11 — 2009
Пример — Предположим, что имеется следующее объявление для определения двери (объект
door):
ENTITY door,
handle : knob;
hinges : SET [1: ?] OF hinge;
END_ENTITY;
Мы можем ограничить объявление шарообразной ручки (объект knob) так, чтобы шарообраз
ные ручки могли существовать только, если они используются в роли поворотной ручки (объект
handle) в одном экземпляре двери.
ENTITY knob;
INVERSE
opens : door FOR handle:
END ENTITY;
С другой стороны, мы можем простоуказать, что шарообразнаяручка используется в одной две
ри или не используется (например, она уже установлена на двери или еще только должна быть к ней
присоединена).
ENTITY knob;
INVERSE
opens : SET [0:1] OF door FOR handle;
END ENTITY;
9.2.2 Локальные правила
Локальные правила являются формальными утверждениями для области определения экземпляров
объекта и, таким образом, применимы ко всем экземплярам данного объектного типа данных. Существуют
два вида локальных правил. Правила уникальности контролируют уникальность значений атрибутов среди
всех экземпляров заданного объектного типа данных. Правила области определения описывают другие
ограничения на значения или между значениями атрибутов каждого экземпляра заданного объектного типа
данных.
Каждому из локальных правил может быть присвоена метка правила.
П р и м е ч а н и е — Метки правил, если они заданы, могут быть использованы в метках комментария
(см. 7.1.6.3) или для идентификации правил в реализациях, например, в документации, сообщениях об
ошибках и спецификациях применения. Задание меток правил для указанных целей является
желательным.
9.2.2.1 Правило уникальности
В правиле уникальности может бытьопределено ограничение уникальности для отдельных атрибутов
или комбинаций атрибутов. Правила уникальности записывают после ключевого слова UNIQUE, указывая
имя одиночного атрибута или список имен атрибутов. Правило, в котором указано имя одиночного атрибу
та. называется правилом простой уникальности и устанавливает, что никакие два экземпляра
объектного типа данных из области определения не должны использовать один и тот же экземпляр
именованного атрибута. Правило, в котором указаны два или более имен атрибутов, называется
правилом совместной уникальности и устанавливает, что никакиедва экземпляра объектного типа данных
не должны иметь оди наковую комбинацию экземпляров именованных атрибутов.
П р и м е ч а н и е — При сравнении оценивается равенство экземпляров, а не равенство значений
(см. 12.2.2).
Правило; если явный атрибут, который отмечен как OPTIONAL (см. 9.2.1.1). появляется в правило
уникальности, и если при этом атрибут не имеет значениядля конкретного экземпляра объекта, то правило
уникальности не является ни нарушенным, нидоказанным, и поэтому данный экземпляр объекта принад
лежит области определения.
Синтаксис;
333 unique_clause = UNIQUE unique_rule ’; ’ { unique rule ’; ’ }.
334 unique_rule = [ rute_label_id ’; ’ ] referenced_attribute { ’, ’
referenced_attribute}.
280 referenced_attribute = attribute_ref | qualified_attribute.
33