Набор символов по умолчанию должен вызываться для файла путем размещения последних (п — 1) символов, обозначающих его п-символьную последовательность АР2 (где п < 4) в ЗОД ОП 17-19. Символы из после­довательности АР2 должны быть выровнены влево м. если необходимо, поле должно быть дополнено справа символами ПРОБЕЛ (2/0).

  1. Область действия расширенных наборов символов, используемых в полях данных любого файла

Символы из расширенных наборов символов можно использовать во всех полях данных всех файлов. Каждое поле каждой записи должно начинаться с символа, взятого из расширенного набора символов, указан­ного управляющими элементами поля или тремя символами в ЗОД ОП 17-19. Если внутри поля данных используются другие последовательнос­ти АР2, то их действие должно ограничиваться концом поля.

  1. Использование наборов многобайтовых символов

Примечание. Наборы многобайтовых символов могут использоваться в полях данных (кроме полей В-типа), в именах полей, в векторных и декартовых мет­ках и в полях разделителей пользователя.

Условия использования:

  1. имена полей и метки записывают в указанном наборе по умол­чанию. В именах могут использоваться другие последовательности АР2 и область их действия должна заканчиваться в конце подполя, исключая разделитель;

  2. разделители (2/1) и (2/10) векторных и декартовых меток должны быть записаны в многобайтовом наборе;

  3. если многобайтовые разделители используются в качестве разде­лителей пользователя, то они должны быть вызваны, и область их дейст­вия должна заканчиваться в пределах скобок используемого формата.

  1. Ширина поля с расширенными наборами символов

Когда для использования расширенных наборов символов требуется наличие управляющих символов расширения АР2, ВХ, ВЫХ или других управляющих символов, ширина подполя должна быть указана посредст­вом разделителей (см. пп. 6.2.1, 6.2.3.3) и форматы фиксированной длины не должны использоваться.

ПРИЛОЖЕНИЕ А Реком ендуемое

РУКОВОДСТВО ПО ПРИМЕНЕНИЮ

А1. ОТОБРАЖЕНИЕ СТРУКТУР ДАННЫХ В СТРУКТУРУ ОБМЕНА

Использование настоящего стандарта предусматривает отображение внутренней или обрабатываемой структуры данных пользователя в структуру обмена. Структуру обмена можно классифицировать как совокупность иерархических структур в виде упорядоченного корневого дерева. В случае единственной, неповторяющейся структу­ры, структура обмена сводится к единственной логической записи. Затем задача сво­дится к отображению обычно используемых обрабатываемых структур в совокуп­ность структур дерева.

Это отображение в большинстве случаев можно выполнить непосредственно, без потери информации о структуре. В других случаях направленные связи в исход­ной структуре требуется заменить численными значениями, посредством которых исходная структура может быть восстановлена. В качестве альтернативы исходную структуру можно свести к более простой эквивалентной форме, которую отображают в структуру обмена. Требуемую запись описания данных в машиночитаемой форме можно создать автоматически из словаря данных отправителя, логической схемы или другого автоматизированного описания данных. Данное приложение рекомендует, что можно сделать, но не указывает как, поскольку это существенно зависит от мето­дов реализации исходной системы.

Предполагается отображение следующих структур данных в структуру обмена:

  1. последовательные;

  2. реляционные;

  3. иерархические;

  4. сетевые;

  5. индексные.

А.1.1. П о с л е д о в а т е л ь н ы е структуры

Последовательные структуры состоят из повторяющихся элементарных полей. Поля структуры хранения можно отобразить либо в набор элементарных полей, либо в структурированные поля, что, очевидно, более соответствует требованиям обмена. Многократно повторяемые данные фиксированного формата должны быть размещены в виде строк массива, чтобы избежать чрезмерных затрат памяти. Можно воспользоваться преимуществом повторения форматов от левой круглой скобки до тех пор, пока не будет исчерпано поле данных. Таким же образом декартова метка может обеспечить повторяющееся описание данных в виде строк. Эту функцию рест­руктуризации можно легко сделать частью программы ввода. Следует отметить, что система первого уровня может иметь возможность получать и отображать струк­туры более высокого уровня на уровне поля, даже если она не может автоматичес­ки обрабатывать эти поля. Множество файлов данных,таких как главный файл и ав­торизованные файлы, могут быть отображены во множество файлов описания-дан­ных. Имена файла и полей содержатся в соответствующих полях ЗОД.

А.1.2. Р е л я ц и о н н ы е' структуры

Реляционные структуры (или плоские таблицы) можно отобразить в структуру обмена, преобразуя одно отношение степени п в логическую запись, с использованием множества полей или векторной структуры в одном поле. Несколько отношений мож­но преобразовать в несколько файлов описания данных, как требуется. Имена от­ношений и доменов передаются в соответствующих полях ЗОД.

Кроме того, можно восстановить и передать последовательную иерархическую форму, которая представляет исходную базу данных в ее нормальной форме.

А.1.3. И е р а р х и ч е с к и е структуры

В принципе единичную иерархическую структуру можно отобразить в структуру обмена, используя одну логическую запись и соответствующее иерархическое описа­ние. В реальной практике для структур большого размера это приводит к проблемам обработки и для отправителя и для получателя. Более практическое решение состоит в том, чтобы пометить каждый узел или соответствующий набор узлов, составляю­щих деревья приемлемого размера, как логический объект, преобразованный в еди­ничную логическую запись. Связи, которые разрушаются в процессе такой обработки, должны быть заменены полем данных, содержащим связь величин, которую потом можно использовать для восстановления связи. Это поле данных содержит список уникальных идентификаторов логических записей, ранее связанных с каждым узлом. Могут быть перечислены либо предшествующие, либо последующие узлы. Многократ­ное применение таких п®лей данных может быть использовано для сохранения мно­гих классов связей, основанных на различных атрибутах баз данных.

Методы, определенные в данном стандарте, можно -использовать для передачи совокупности деревьев в одной записи. Список пар меток полей ЗОД, последователь­ность прямого обхода и алгоритм обработки, изложенный в приложении С* достаточ­ны для создания соответствующего бинарного дерева.

А. 1.4. С е т е в ы е структуры

Сетевую базу данных можно разложить на ее реляционные копии и передать в виде набора отношений. Каждый тип записи, включая записи о связях, образует отно­шение, которое следует описать и передать в виде файла описания данных.

Структуры хранения, относящиеся к классу ориентированных графов, достаточно сложны, чтобы сделать невозможным их представление в иерархическом виде, если не прибегнуть к разрушению связей и не ввести списки идентификаторов логических записей (узел). Эти принципы идентичны принципам обработки иерархических струк­тур, но алгоритмы обработки для восстановления должны обнаружить оборванные связи и действовать соответствующим образом.

А.1.5. И н д е к с ы

Индексы, включая цепочки или нити, образуют структурированную информацию о базе данных, которая зависит от средств реализации и не может быть непосредствен­но передана. Однако существует логический эквивалент, в котором системно-ориенти­рованные указатели заменяются идентификаторами логических записей. Индекс атрибута базы данных можно отобразить в файл описания данных, где каждая логи­ческая запись является реализацией значения атрибута и связанного с ним списка уникальных идентификаторов логических записей (или узлов), имеющих то же значе­ние атрибута. Таким способом индексы можно описывать и передавать.

А.2. Руководство по конкретному применению

Для сохранения максимальных возможностей взаимообмена конкретные приме­нения данного стандарта должны сохранять спецификации для ведущей метки, спра­вочника и других средств управления и ограничиваться лишь изменениями в форма­тах полей данных. Конкретное применение предполагает варьирование кодированных наборов символов, структур и содержимого полей. Ниже даны рекомендации для обоих вариантов.

А.2.1. Наб оры символов

Рекомендуется использовать ИСО 2022 (ГОСТ 27466) в качестве стандарта для расширения ИСО 646 (ГОСТ 27463). Использование ИСО 2022 (ГОСТ 27466) обе­спечивает общие алгоритмы обработки расширенного набора символов.

А.2.2. С и с т е м ы прикладного применения

Потенциальное соглашение об особенностях управления для конкретных прик­ладных применений первоначально имело ввиду приспособить существующие стан­дартные применения, и новые реализации должны использовать соглашения настояще­го стандарта для гарантии широкой базы взаимообмена.

Конкретные прикладные системы могут обеспечить полное внешнее описание для каждого поля или использовать некоторые типы данных настоящего стандарта. В любом случае конкретное применение должно помечаться путем использования частного управляющего символа в ЗОД ОП 9, выбранного из колонок 4-7 ИСО 646 (международная ссылочная версия по ГОСТ 27463). Такое применение гарантиру­ет, что будущие расширения настоящего стандарта не нарушат частные соглашения.

Примечание. Если пользователям требуется новая структура данных, ко­торая может широко применяться, они должны обращаться в ИСО/ТК 97 для расши- , рения настоящего стандарта.

А.2.3. О г р а н и ч е н и я на функциональные средства поль­зователя

Настоящий стандарт рассчитан на возможность его применения в усложненном обмене и допускает более сложные конструкции, чем те, которые могут потребо­ваться отдельным группам пользователей. В этом случае, а также, когда пользователь может быть достаточно уверен в области действия его группы обмена, ограничения на использование настоящего стандарта должны быть наложены таким образом, чтобы поддерживалась совместимость вверх. Таким образом, гарантируется обработка посредством полной реализации и может быть упрощена обработка внутри ограничен­ной группы пользователей.

Пользователь должен учитывать, что действуя таким образом, он может снизить свои возможности получения файлов обмена от отправителей, которые не приняли каких-либо ограничений. В этом случае, когда число обменов мало, пользователь ог­раниченного программного обеспечения сможет принять файл и обработать его в вы­ходной файл, составленный из записей, содержащих поля данных. Эти записи могут быть далее переработаны в приемлемую форму с помощью конкретного прикладно­го программного обеспечения.

Если пользователь применяет ограничения, которые вводят несовместимость вверх, то следует использовать указатель применения (ЗОД ОП 9) для указания сис­темы, согласованной в частном порядке. Если пользователь хочет передать вспомо­гательную информацию, связанную с ограниченной системой, он должен сделать это в поле, связанном с меткой поля 0 ... 2 ЗОД. Это поле может использоваться в тех же целях, что и запись ЗОД, и содержать информацию, включающую идентификацию ограничений.

Две общих области, в которых ограничения могут оказаться полезными, свя­заны с классом ЭВМ и языками ЭВМ. Далее рассматриваются основные направления установления приемлемых ограничений в этих областях и способы использования настоящего стандарта в условиях указанных ограничений.

А.2.3.1. Ограничения для малых ЭВМ

Настоящий стандарт разработан так, что посредством параллельной обработки логических полей (т.е. справочников, полей описания данных и полей данных), об­ходя каждое последовательно, можно снизить требования к памяти для хранения информации обработки. Максимальные размеры блока и записи можно найти в соот­ветствующих полях меток файла. Кроме того, длина каждой логической записи дос­тупна как управляющее слово, а размеры полей даны в справочнике каждой записи.

Если приведенной выше информации недостаточно, то группа пользователей путем частных соглашений может:

  1. ограничить поля данных до полностью форматированных полей и передавать максимальные размеры поля и подполя, просто не используя средство повторения формата в целом (т.е. от самой левой круглой скобки). При сканировании формата во время обработки ЗОД можно определить максимальную ширину поля и под­поля, а также максимальные размерности каждого вектора и массива;

  2. для полей переменной длины, ограниченных разделителями, указать в поле 0 ... 2 ЗОД, зарезервированном пользователем, набор максимальных значений ши­рины полей, выраженный в виде формата, который, если его проанализировать, даст максимальные размеры и размерности. Предлагается эту информацию строить как подсправочник с соответствующими полями, что дает возможность обрабатывать ее алгоритмами, подобными тем, что используются для обработки ЗОД;

  3. заменить максимальные размерности для векторов и массивов на имя и декар­тову метку, соответственно.

  4. едлагается использовать поле 0 ... 1 в ЗОД для обеспечения точной иденти­фикации ограниченной группы пользователей. Анализ этого поля должен предшест­вовать дальнейшей обработке.

  5. 2.3.2. Языковые ограничения

Для пользователей, желающих упростить реализацию интерфейса с конкретным языком высокого уровня, могут быть предложены следующие ограничения частного порядка:

  1. ограничить структуры и типы данных, допускаемые настоящим стандартом, до подмножеств, разрешенных рассматриваемым языком высокого уровня (напри­мер, ограничить интерфейс ФОРТРАНА до элементарных данных, векторов, массивов и подполей фиксированной длины);

  2. имена и метки полей ограничить до таких строк символов, которые можно использовать для образования переменных имен в рассматриваемом языке. Конка­тенацию этих строк можно использовать для порождения иерархических имен, если язык высокого уровня может их принять и использовать.