ГОСТ Р ИСО/МЭК 8824-2-2001
MatrixOperations OPERATION : : =
{
invertMatrix | addMatrices | subtractMatrices | multiplyMatrices
}
13 Ассоциированные таблицы
13.1 Каждый информационный объект или множество информационных объектов могут быть представлены как таблица — его ассоциированная таблица. Каждая ячейка ассоциированной таблицы соответствует установке некоторого поля информационного объекта или является пустой. Совокупность столбцов ассоциированной таблицы определяется классом, к которому объект или объекты относятся; совокупность строк определяется объектом или объектами, которые вызваны.
13.2 Для заданного определения класса совокупность столбцов определяется следующим образом:
а) имеется по одному столбцу для каждой спецификации поля в определении класса. Каждый такой столбец называется соответствующим именем «PrimitiveFieldName»;
б) имеется дополнительная совокупность столбцов, соответствующих каждой спецификации поля связи. Эта совокупность определяется применением настоящих правил к управляющему классу поля связи, за исключением того, что их имена дополняются префиксом «PrimitiveFieldName» поля связи и точкой («.»).
Примечание — Эти правила являются рекурсивными, и таким образом, если класс, прямо или косвенно, является самоссылающимся, то совокупность столбцов не ограничена. Это не запрещается.
13.3 Для данного информационного объекта некоторого класса ассоциированной таблицей является та, которая появляется в результате применения 13.4 к множеству объектов, содержащему только этот объект.
13.4 Для данного множества информационных объектов некоторого класса совокупность строк в ассоциированной таблице является той, которая получается при осуществлении следующей рекурсивной процедуры:
а) сначала имеется одна строка для каждого объекта в множестве объектов. В каждой такой строке ячейки в столбцах, названных именами «PrimitiveFieldName», будут соответствовать установке соответствующего поля в объекте, а все другие ячейки будут пустыми;
б) для каждого поля связи, появляющегося в некоторой строке в совокупности:
1) создается (подчиненная) ассоциированная таблица содержимого поля связи;
2) далее строка, в которой появилось поле связи, заменяется совокупностью строк по одной для каждой строки подчиненной ассоциированной таблицы. Каждая строка в этой совокупности является такой же, как и замененная, за исключением того, что ячейки из выбранной строки подчиненной ассоциированной таблицы используются для наполнения соответствующих ячеек (прежде пустых), имена «FieldName» которых имеют в качестве префикса «PrimitiveFieldName» полей связи.
Примечание — Эти правила рекурсивны и такие, что, если информационный объект, прямо или косвенно, является самоссылающимся, то процедура не будет завершаться. Это не запрещается. На практике необходимо только знать содержимое ячеек с именами конечной длины, а для них может быть создана конечная процедура.
13.5 Примеры допустимых конструкций «FieldName»
Следующие конструкции «FieldName» относятся к допустимым для ассоциированной таблицы для объектов или множеств объектов класса OPERATION (определенного в 10.13):
&ArgumentType
&Errors.&Parameter
&EiTors.&errorCode
&Linked.&ArgumentType
&Linked.&Linked. x operationCode
&Linked.&Linked.&Linked.&Linked.&Linked.&Errors.&ErrorCode
Так как класс OPERATION является самоссылающимся (из-за поля &Linked), то количество столбцов не ограничено.
15