ГОСТ Р И С 0 10303-11— 2009
WHERE
length_1 : а**2 + Ь**2 ♦ с**2 = 1.0;
END ENTITY;
Необязательные атрибуты в правилах области определения;
Правило области определения, содержащее необязательный атрибут, должно трактоваться всоответ
ствии с описанными ниже правилами и ограничениями.
Правила и ограничения;
a) Если атрибут имеет значение, то правило области определения должно оцениваться как любое
другое правило области определения.
b
) Если атрибут не имеет значения, то в качестве значения атрибута при оценке выражения, описыва
ющего правило области определения, используется неопределенное (?) значение. Оценка выражений, со
держащих неопределенное (?) значение, рассмотрена в разделе 12.
Пример— Рассмотрим следующий вариант предыдущего примера:
ENTITY unit_vector.
а. Ь : REAL;
с: OPTIONAL REAL;
WHERE
lengthjl : a“ 2 ♦ b**2 + c"2 = 1.0;
END ENTITY;
Целью правила области определения является обеспечение того, чтобы объект unit_vector
сделать единичным. Однако если атрибут с имеет неопределенное (7) значение, то оценкой
правила области определения всегда является значение UNKNOWN, независимо от значений аргумен
тов а и Ь.
Стандартная функция NVL (см. 15.18) может быть использована для обеспечения приемлемого
значения в случае, если необязательный атрибут имеет неопределенное (7) значение. Если необяза
тельный атрибут имеет значение, то функция NVL возвращает данное значение: в противном случае
она возвращает подстановочное значение.
ENTITY unit_vector;
а. Ь : REAL;
с : OPTIONAL REAL:
WHERE
length_1 : a**2 + b**2 + NVL(c, 0.0)**2 = 1.0;
END.ENTITY:
9.2.3 Подтипы и супортипы
Язык EXPRESS допускает определение объектов как подтиповдругих объектов, где подтип объекта
является конкретизацией его супертипа. Тем самым устанавливается наследственная взаимосвязь (под-
типУсупертип) между объектами, в которых подтип наследует свойства (то есть атрибуты и ограничения)
своего супертипа. Последовательные взаимосвязи подтип/супертип определяют граф наследования, в ко
тором каждый экземпляр подтипа является экземпляром его супертипа (или супертипов).
Граф наследования, определенный взаимосвязями подтип/супертип. должен быть ациклическим.
Если вобъявлении объекта полностью определены все значимые свойстваданного объекта, то это
означает, что объявлен простой объектный тип данных. Если в объявлении объекта установлены наслед
ственные взаимосвязи с супертипами, тоэтоозначает, что объявлен сложный объектный тип данных. Сложный
объектный тип данных в рамках графа наследования использует характеристики своего супертипа (или
супертипов). Сложный объектный тип данных может иметьдополнительные характеристики, не содержа
щиеся в его супертипе (или супертипах).
Синтаксис:
312subsuper = [ supertype_constraint) [ subtype_declaration ] .
Следующие положения относятся к взаимосвязям подтип/супертип и основываются на графе подти-
пов/супертипов. Граф подтипое/супертиповявляется многокорневым направленным ациклическим графом, в
котором узлы представляют объектные типы данных, а ребра представляют взаимосвязи подтип/супер тип.
Следующие за ключевыми словами SUBTYPE OF связи ведут к супертипам, тогда как следующие за
ключевыми словами SUBTYPE OF связи ведут от супертипов к подтипам.
Правила и ограничения:
а)Ограничение супертипа, при его наличии, должно предшествовать ограничению подтипа, если
оно присутствует.
35