ГОСТ Р И С 0 10303-11 — 2009
ENTITY female
SUBTYPE OF (person);
END_ENTTTY:
ENTITY employee
SUBTYPE OF (person);
END_ENTITY;
SUBTYPE_CONSTRAINT person_sex FOR person:
ABSTRACT SUPERTYPE;
TOTAL_OVER (male, female);
END_SUBTYPE_CONSTRAINT;
9.7.3 Перекрывающиеся подтипы и их спецификация
Два или несколько непосредственных подтипов конкретного супертипа могут иметь перекрывающие
ся реализациидля конкретного контекста. Спецификация SUBTYPE_CONSTRAINT может быть использова
на для определения того, какие отношения установлены вконкретной группе непосредственных подтипов.
9.7.3.1 ONEOF
Ограничение ONEOF. определенное в 9.2.5.2. может быть объявлено в ограничении
SUBTYPE_CONSTRAINT.
Пример — Экземпляр супертипа может быть порожден посредством реализации только
одного из своих подтипов. Данное ограничение объявляется с использованием ограничений ABSTRACT и
ONEOF. Существует много видов животных (объект pet), но ни один объект pet не может быть
одновременно двумя или более видамиживотных.
ENTITY pet
name : pet_name;
END_ENTTTY:
SUBTYPE_CONSTRAINT separate_species FOR pet:
ABSTRACTSUPERTYPE;
ONEOF(cat, rabbit, dog,...);
END_SUBTYPE_CONSTRAINT;
ENTITY cat
SUBTYPE OF (pet);
END_ENTITY:
ENTITY rabbit
SUBTYPE OF (pet);
END_ENTITY:
ENTITY dog
SUBTYPE OF (pet);
END_ENTTTY;
9.7.3.2 ANDOR
Ограничение ANDOR.определенное в 9.2.5.3, может быть объявлено в ограничении
SUBTYPE_CONSTRAINT.
Пример — Личность (объект person) может быть работником (объект employee), посещающим
вечерние курсы, и поэтому может быть одновременно иработником и студентом (объект student).
ENTITY person
END_ENTITY;
SUBTYPE_CONSTRAINT employee_may_be_student FOR person;
employee ANDOR student;
END_SUBTYPE_CONSTRAJNT;
ENTITY employee
SUBTYPE OF (person);
END_ENTITY;
57