Набор символов по умолчанию должен вызываться для файла путем размещения последних (п — 1) символов, обозначающих его п-символьную последовательность АР2 (где п < 4) в ЗОД ОП 17-19. Символы из последовательности АР2 должны быть выровнены влево м. если необходимо, поле должно быть дополнено справа символами ПРОБЕЛ (2/0).
Область действия расширенных наборов символов, используемых в полях данных любого файла
Символы из расширенных наборов символов можно использовать во всех полях данных всех файлов. Каждое поле каждой записи должно начинаться с символа, взятого из расширенного набора символов, указанного управляющими элементами поля или тремя символами в ЗОД ОП 17-19. Если внутри поля данных используются другие последовательности АР2, то их действие должно ограничиваться концом поля.
Использование наборов многобайтовых символов
Примечание. Наборы многобайтовых символов могут использоваться в полях данных (кроме полей В-типа), в именах полей, в векторных и декартовых метках и в полях разделителей пользователя.
Условия использования:
имена полей и метки записывают в указанном наборе по умолчанию. В именах могут использоваться другие последовательности АР2 и область их действия должна заканчиваться в конце подполя, исключая разделитель;
разделители (2/1) и (2/10) векторных и декартовых меток должны быть записаны в многобайтовом наборе;
если многобайтовые разделители используются в качестве разделителей пользователя, то они должны быть вызваны, и область их действия должна заканчиваться в пределах скобок используемого формата.
Ширина поля с расширенными наборами символов
Когда для использования расширенных наборов символов требуется наличие управляющих символов расширения АР2, ВХ, ВЫХ или других управляющих символов, ширина подполя должна быть указана посредством разделителей (см. пп. 6.2.1, 6.2.3.3) и форматы фиксированной длины не должны использоваться.
ПРИЛОЖЕНИЕ А Реком ендуемое
РУКОВОДСТВО ПО ПРИМЕНЕНИЮ
А1. ОТОБРАЖЕНИЕ СТРУКТУР ДАННЫХ В СТРУКТУРУ ОБМЕНА
Использование настоящего стандарта предусматривает отображение внутренней или обрабатываемой структуры данных пользователя в структуру обмена. Структуру обмена можно классифицировать как совокупность иерархических структур в виде упорядоченного корневого дерева. В случае единственной, неповторяющейся структуры, структура обмена сводится к единственной логической записи. Затем задача сводится к отображению обычно используемых обрабатываемых структур в совокупность структур дерева.
Это отображение в большинстве случаев можно выполнить непосредственно, без потери информации о структуре. В других случаях направленные связи в исходной структуре требуется заменить численными значениями, посредством которых исходная структура может быть восстановлена. В качестве альтернативы исходную структуру можно свести к более простой эквивалентной форме, которую отображают в структуру обмена. Требуемую запись описания данных в машиночитаемой форме можно создать автоматически из словаря данных отправителя, логической схемы или другого автоматизированного описания данных. Данное приложение рекомендует, что можно сделать, но не указывает как, поскольку это существенно зависит от методов реализации исходной системы.
Предполагается отображение следующих структур данных в структуру обмена:
последовательные;
реляционные;
иерархические;
сетевые;
индексные.
А.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. Ограничения для малых ЭВМ
Настоящий стандарт разработан так, что посредством параллельной обработки логических полей (т.е. справочников, полей описания данных и полей данных), обходя каждое последовательно, можно снизить требования к памяти для хранения информации обработки. Максимальные размеры блока и записи можно найти в соответствующих полях меток файла. Кроме того, длина каждой логической записи доступна как управляющее слово, а размеры полей даны в справочнике каждой записи.
Если приведенной выше информации недостаточно, то группа пользователей путем частных соглашений может:
ограничить поля данных до полностью форматированных полей и передавать максимальные размеры поля и подполя, просто не используя средство повторения формата в целом (т.е. от самой левой круглой скобки). При сканировании формата во время обработки ЗОД можно определить максимальную ширину поля и подполя, а также максимальные размерности каждого вектора и массива;
для полей переменной длины, ограниченных разделителями, указать в поле 0 ... 2 ЗОД, зарезервированном пользователем, набор максимальных значений ширины полей, выраженный в виде формата, который, если его проанализировать, даст максимальные размеры и размерности. Предлагается эту информацию строить как подсправочник с соответствующими полями, что дает возможность обрабатывать ее алгоритмами, подобными тем, что используются для обработки ЗОД;
заменить максимальные размерности для векторов и массивов на имя и декартову метку, соответственно.
едлагается использовать поле 0 ... 1 в ЗОД для обеспечения точной идентификации ограниченной группы пользователей. Анализ этого поля должен предшествовать дальнейшей обработке.
2.3.2. Языковые ограничения
Для пользователей, желающих упростить реализацию интерфейса с конкретным языком высокого уровня, могут быть предложены следующие ограничения частного порядка:
ограничить структуры и типы данных, допускаемые настоящим стандартом, до подмножеств, разрешенных рассматриваемым языком высокого уровня (например, ограничить интерфейс ФОРТРАНА до элементарных данных, векторов, массивов и подполей фиксированной длины);
имена и метки полей ограничить до таких строк символов, которые можно использовать для образования переменных имен в рассматриваемом языке. Конкатенацию этих строк можно использовать для порождения иерархических имен, если язык высокого уровня может их принять и использовать.