А.З. Уникальные идентификаторы
Для записи данных часто не требуются уникальные идентификаторы, так как для этой цели служат значения определенных полей или комбинаций полей, таких, как главный ключ реляционной модели данных. Тем не менее, логическая запись может представлять всю ту информацию, которая связана с объектом, однозначно идентифицируемым в базе данных. Уникальное идентифицирующее поле часто представляет ценность, в особенности если происходит последующее обновление. В тех случаях, когда должен обеспечиваться произвольный идентификатор, часто достаточно последовательных целых чисел. В других случаях, естественно, этой цели служит и может быть использовано поле данных. Где это возможно, желательно использовать элементарное поле, тем не менее структурированные поля, такие,как двухэлементный вектор, также могут быть использованы. Это не препятствует включению информации в другие поля данных, которые могут быть использованы для установления связи с другими элементами в рамках этого или других массивов данных.
Желательна сортировка, если должны использоваться ссылки на возможность представления на экране дисплея для обнаружения и исправления ошибок, для понимания файла обмена или для обеспечения слияния файлов по мере их получения. Там, где используются поля переменной длины, может потребоваться формирование файла, если файл должен сортироваться по порядку.ПРИЛОЖЕНИЕ В
ПРИМЕРЫ ПОЛЯ ДАННЫХ
В.1. Общее
Настоящее приложение содержит несколько примеров полей описания данных и соответствующих полей данных. Так как число допустимых комбинаций структуры, типа, имен, меток управлений формата очень велико, то дается только образец. Во всех примерах следующие печатаемые символы заменяют разделители:
; - разделитель поля (1/14);
& - разделитель элементов (1/15).
В.1.1.Элементы элементарных символьных данных (ЗОДОП 9 = (2/0); ОП 10 - 11 = 00)
Пример |
Содержимое ПОЛЯ |
|
|
ЗОД |
ЗД |
1 |
АВТОР; |
Федоров; |
2 |
ВОЗРАСТ, |
24; |
3 |
ВЫСОТА; |
5.5; |
4 |
ВЕС; |
2.45Е2; |
5 |
СТРБИТ; |
010101, |
6 |
Наименование журнала, |
Проблемы МСНТИ; |
В.1.2.Эл |
ементы составных |
данных |
(ЗОД ОП 9 = (2/0); ОП 10 - 11 = 06)
ВАЛА. Элементарные поля
Пример |
Тип данных |
Содержимое ПОЛЯ ЗОД ЗД |
1 |
Символ |
0000; &ИМЯ; ДЖЕЙН; |
2 |
Неявная точка |
ОЮО;&ВОЗРАСТ; 18; |
3 |
Явная точка |
0200; GPA; 3.46; |
4 |
Масштабированный с |
0300;&DIST; +0.5Е+02; |
|
явной точкой |
|
5 |
Строка битов сим |
0400;&СТРБИТ; 010101; |
|
вольного режима |
|
6 |
Поле битов (фикси |
0500;&ПОЛБИТФ&В (6); (01010100); |
|
рованное) |
|
7 |
Поле битов (переменное) |
0500;&ПОЛБИТП&В; 16(01010100); |
8 |
Символ |
0000;&ЖУРНАЛ; Проблемы МСНТИ; |
ел
В скобках указаны двоичные цифры.
В. 1.2.2. Поля векторов і
Вектор символов с разделителями, с именем и метками подполей
ЗОД 1000;&Почтовый адрес&Индекс!Область!Город!Улица!Фамилия; f
ЗД 123456&Минская&Жодино&Я. Коласа21&Быков;
Форматированный вектор с неявной точкой, с именем и метками подполей <ТГЭ
ЗОД 1100;&НАСЕЛЕНИЕ&1960!1965!1970!1975&(4 (6));
ЗД 765432987345903231897654;
Вектор с разделителями, с явной точкой, с именем, но без меток
ЗОД 1200;&ЗЛАКИ;
ЗД 3.46&2.47&11.94;
ЗОД 1200; &Коэффициент поглощения кварцерных стекол;
ЗД 0.0026 &0.0029&0.0034&0.0043;
Форматированные смешанные векторы с именем и без меток (может также интерпретироваться как массив)
ЗОД 1600; &ДОМАПІНИЙ СКОТ&& (АХ,), I (5), R (5));
ЗД СВИНЬИ, 0274437.46 БЫЧКИ, 1776447.84;
В. 1.2.3. Поля массивов
.В.1.2.3.1. Массив символов с разделителями, с именем и декартовой меткой
ЗОД 2000; &СВОЙСТВА&Золото! Натрий !Мёдь!*Плотность'.Цвет! Активность;
ЗД Высокая&Же^тый&Инертный&Низкая&Серый&Высокая&
Средняя&Красноватый&Низкая;
Эквивалентная таблица
СВОЙСТВА
|
Плотность |
Цвет |
Активность |
Золото |
Высокая |
Желтый |
Инертный |
Натрий |
Низкая |
Серый |
Высокая |
Медь |
Средняя |
Красноватый |
Низкая |
Форматированный массив с неявной точкой, без имени и без метки ЗОД 2100; &&& (91 (2));
ЗД 2&3&3&124788334672441921;
В. 1.2.3.3. Массив с разделителями, с явной точкой и с именем
ЗОД 2200; &ЕДИНИЧНАЯ МАТРИЦА;
З Д 2& 3& 3& 1& 0.& 0.& 0.& 1 .& 0.& 0.& 0.& 1.;
Форматированный смешанный массив с именем и векторной меткой столбца, содержащий пустую векторную метку строки
ЗОД 2600;&Таблица; 11&*Металл!Плотность!Цвет!Активность&
(А (:), R (4) , А (,), R (4)):
ЗД Золото: 14.8Желтый, - 1.3Натрий:О.63Серый, 4.81Медь:
10.6 Красноватый,.043;
Использование расширенных наборов кодируемых символов
К о д и р о в а н н ы е наборы символов по умолчанию дляполей
Использование кодированного набора символов Г1 по умолчанию для полей определяется установкой значений в позициях ЗОД ОП 17 - 19 и в расширенных управляющих элементах поля для каждого поля, как показано ниже:
позиции ЗОД ОП 17-19 содержат (2/0) (2/1) (2/0) . Это означает, что отдельные поля могут содержать расширенные наборы кодируемых символов;
позиции ЗОД ОП 10-11 содержат „09”. Это означает, что существуют 9 байтов, содержащих управляющие элементы поля, последние три из которых представляют собой информацию последовательности АР2;
управляющие элементы поля ЗОД, предшествующие имени поля, содержат структуру и тип данных, печатаемые разделители и информацию о последовательности АР2.
Ниже показано несколько примеров расширенных управляющих элементов пол. для отдельных зарегистрированных наборов символов.
Наборы симво- лов Г1 по умолчанию |
Управляющие элементы поля |
||||||||
ОП |
|||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
1) JIS Катакана |
0 |
0 |
0 |
0 |
> |
& |
(2/9) |
(4/9) |
(2/0) |
2) Итальянская графика |
0 |
0 |
0 |
0 |
|
& |
(2/9) |
(5/9) |
(2/0) |
3) Шведская гра- ' фика в именах |
1 |
0 |
0 |
0 |
|
& |
(2/9) |
(4/8) |
(2/0) |
4) Расширение не используется |
0 |
0 |
0 |
0 |
9 |
& |
(2/0) |
(2/0) |
(2/0) |
Поля данных в случаях 1) и 2) будут содержать неструктурированный текст, составленных из ИСО 646 (ГОСТ 27463) как набора ГО и указанного набора Г1. В случае 3) поля данных будут содержать последовательности строк символов, разделенных ограничителями. В случае 4) представлены управляющие символы для полей, где не определен набор Г1.
Примечание. Во всех приведенных примерах ОП 8 содержит (2/0) , так как в этих примерах используются трехсимвольные последовательности АР2. Если используются четырехсимвольные последовательности АР2, то могут присутствовать другие образцы битов.
Наборы символов по умолчанию для файла
Использование набора символов Г1 по умолчанию для файла в целом указывается путем размещения последних символов последовательности АР2 в ЗОД ОП 17 - 19.
Для вызова символов Немецкой графики, как набора по умолчанию Г1 для всего файла, ЗОД ОП 17 - 19 должна содержать (2/9) (4/11) (2/0).
Одно или более полей данных могут содержать в 8-битной среде коды высокого уровня и в 7-битной среде - управляющие символы ВХ и ВЫХ, изменяющие значения последующих комбинаций битов.
В с т р о е н н ы е расширения кодов
В полях данных могут свободно использоваться встроенные последовательности АР2. Получатель предупреждается о таком использовании содержимым ЗОД ОП 7. Символ Е (прописная латинская буква) означает, что будут найдены встроенные расширения кодированного набора символов, а символ ПРОБЕЛ означает, что встроенные последовательности АР2 не будут обнаружены.
Таким образом, в файле, содержащем встроенные последовательности АР2:
ЗОД ОП 7 содержит Е (прописная латинская буква) и
одно или более полей данных будут содержать последовательности АР2 — АР2 (I) (F), где (I) - один или более промежуточных символов и (F) - конечный символ последовательности АР2.
Эти последовательности АР2 не ограничиваются только набором Г1, но могут : быть любой из последовательностей, допускаемых стандартом ИСО 2022 (ГОСТ 27466) как для 7-так и для 8-битной среды.
ПРИЛОЖЕНИЕ С Рекомендуемое
МОДЕЛЬ ФОД И СТРУКТУРА ЛОГИЧЕСКОЙ ЗАПИСИ
С.1 Модель ФОД
Чтобы сравнить модель ФОД с другими моделями файла, желательно описать структуру данных ФОД с помощью терминологии теории графов, т.е. в виде набора корневых упорядоченных деревьев. Каждое дерево соответствует логической записи. Корневой узел каждого дерева является полем идентификатора записи, который должен содержать уникальный идентификатор записи. Поля данных связаны с подчиненными промежуточными узлами дерева и с узлами-листьями.
Структуры дерева ЗД будут примером дерева, производного от общего дерева, описанного в ЗОД при помощи бинарных отношений и последовательности прямого обхода общего дерева. Конкретное дерево данных описывается бинарным отношением в ЗОД и последовательностью прямого обхода, требуемыми для конкретного дерева в ЗД. Структура дерева ЗД может быть незавершенной в том смысле, что могут отсутствовать узлы, которые предусмотрены ЗОД, но не содержат данных и не требуются для сохранения структуры. В дереве ЗД допускаются многие реализации поддерева ЗОД и идентификация обеспечивается порядком появления в последовательности прямого обхода.
Содержимое узлов - это данные, которые в свою очередь могут иметь регулярную структуру (т.е. элементарную, п- кортеж (вектор) или массив). Поля данных ЗД содержат единицы данных. Типы данных - это символы, три числовые формы, строка битов символьного режима и поле битов. Поля данных ЗД описываются форматами в ЗОД, а также поля данных могут содержать смешанные типы данных.
Иерархическая структура не является обязательной. Без нее файл - это собрание однозначно идентифицируемых логических записей, каждая из которых содержит набор поименованных (снабженных метками) полей данных. Поля в ЗД могут отсутствовать и можно использовать более одного примера поля, но связь их нельзя определять исходя из порядка полей. Эту форму можно рассматривать как одноуровневое корневое неупорядоченное дерево, где каждое поле неявно соединено с узлом идентификатора записи.
Одна из особенностей модели ФОД состоит в том, что благодаря требованию уникального идентификатора записи в качестве корневого узла каждого дерева, весь набор деревьев можно выразить в виде одного упорядоченного дерева, корнем которого является ЗОД.
С.2. Иерархические логические записи
Этот раздел описывает средства, с помощью которых линейная структура помеченных полей может быть преобразована в иерархическую структуру. Иерархия или используемая структура упорядоченного корневого дерева имеет поля данных в качестве его узлов и направленные логические связи между содержимыми полей данных в качестве звеньев в структуре дерева. Корневое дерево имеет уникальный узел - корень, а каждый узел может иметь нулевое или большее количество упорядоченных поддеревьев. В конкретном случае структура дерева для записи может иметь несколько поддеревьев, образованных из множества случаев употребления полей данных, имеющих одну и ту же метку поля. Однако такое дерево может быть получено из (т.е. иметь те же логические связи полей) общего дерева для записи данных, где каждое поле содержится однократно и содержатся все возможные связи между полями.Корневое дерево имеет направленные связи и только один корневой узел, который не имеет входящих в него связей. Каждый из остальных узлов может быть введен посредством только одной связи. Узлы, которые не имеют выходящих связей, называются узлами-листьями. Как только определен корневой узел, направление всех связей устанавливается от корневого узла до узла-листа. Иерархический уровень определен нумерацией корневого узла (1) и путем нумерации по возрастанию каждого последующего узла на всех путях к уз лам-листьям. Деревья здесь изображены нисходящими от корня, причем поддеревья каждого узла упорядочены слева направо. Примеры упорядоченных корневых деревьев показаны на черт. 13. Приведенное дерево не является бинарным деревом, которое сохраняет лево- и правосторонность в отсутствии одной бинарной ветви.