ГОСТ Р И С 0 10303-11 — 2009
Тип данных BAG:
Спецификация границ, если она задана, определяет минимальное и максимальное число экземпля
ров ссылочного объекта, которое может использовать экземпляр данного объекта. Поскольку неупорядо
ченное множество (пакет), представляемое типом данных BAG. может содержать отдельный экземпляр
несколько раз. то один или несколько экземпляров могут ссылаться на данный экземпляр, а конкретный
экземпляр может ссылаться на данный экземпляр несколько раз.
П р и м е ч а н и я
1 Если инвертированный атрибут представлен неуникальным агрегированным типом данных, то есть спис
ком или массивом, для которого не задано ключевое слово UNIQUE, либо пакетом, то конкретный экземпляр
данного объекта может быть использован конкретным экземпляром ссылочного объекта несколько раз.
2 Если инвертированный атрибут представлен уникальным агрегированным типом данных, то есть спис
ком или массивом, для которого задано ключевое слово UNIQUE, либо набором, то конкретный экземпляр данно
го объекта может быть использован конкретным экземпляром ссылочного объекта только один раз.
Представление инверсного атрибута с нижней границей равной нулю указывает на то. что на данный
экземплярданного объекта не обязательно должен ссылаться любой экземпляр ссылочного объекта.
Типданных SET:
Справедливо все сказанное вышедля типаданных BAG, но с дополнительным ограничением, опре
деляющим уникальность ссылочных экземпляров. Данное ограничение также означает, что конкретный
ссылочный экземпляр может использоватьданный экземпляр в инвертированной роли только один раз.
П р и м е ч а н и е — Если инвертированный атрибут представлен уникальным агрегированным типом
данных, то есть списком или массивом, для которого задано ключевое слово UNIQUE, либо набором, то инверсия не
добавляет новых ограничений относительно уникальности.
Объектный типданных:
Инверсный атрибут содержит точно тотодин экземпляр ссылочного объектного типаданных, который
использует данный экземпляр в определенной роли. В данном случае мощность множества инверсной
взаимосвязи имеет соотношение 1:1.
Синтаксис:
248 inverse_attr = attribute_dec/ ’ ( ( SET | BAG) ( bound_spec ] OF ]
entity_ref FOR [ entity_ref ’.’) attribute_ref.
177 attribute_dec/ = attributeJd | rediclared_attribute .
185 bound_spec = ’[’ bound_1bound_2
183 bound_1 = numeric_expression.
184 bound_2 = numeric_expression.
Правила и ограничения:
a) Объект, в котором определяется объявление прямой взаимосвязи с данным объектом, должен
реализовать данное объявление в форме явного атрибута.
b
) Типом данных явного атрибута в объекте, определяющем прямую взаимосвязь, должен бытьодин
из следующих:
1) тип объявляемого объекта:
2) супертип объявляемого объекта:
3) определенный тип данных, основанный на выбираемом типеданных, содержащем один из пере
численных выше типов:
4) агрегированный тип данных, основным типом которого является один из перечисленных выше.
c) Объект, на который имеется ссылка вобъявлении инверсного атрибута, может быть подтипом объекта,
объявившего прямую взаимосвязь. В данном случае инверсный атрибут содержиттолько экземплярыдан
ного подтипа. Подтипы, на которые даются ссылки подобным образом, не должны повторно объявлять
явный атрибут как вычисляемый атрибут.
d) Если имя явного атрибута в объекте, определяющем прямую взаимосвязь, не уникально в графе
подтипов/супертиповданного объекта, то для уточнения имени данного явного атрибута после ключевого
слова FOR должно быть использовано имя объектного типа данных.
e) Инверсный атрибут недолжен объявляться ни явно, ни косвенно как имеющий тип данных GENERIC.
П р и м е ч а н и е — Данное правило справедливо, несмотря на го. что такое объявление допускается
синтаксисом.
32