Преимущества:
- быстрое присвоение закодированных значений;
- компактность;
- простота подтверждения допустимости закодированных представлений.
Недостатки:
- максимальная вместимость используется не полностью.
Примечание - Эту систему не следует путать с иерархическими кодами (см. 6.7). Групповое последовательное кодирование следует использовать только в тех случаях, когда категории стабильны и нет вероятности того, что элемент набора может относиться к разным категориям (в текущий момент или в обозримом будущем).
Эти коды не являются абсолютно последовательными кодами, хотя закодированные значения могут казаться такими.
Этот тип кодов может быть успешно использован, только если все элементы набора заранее известны и набор не может расширяться.
До присвоения закодированных значений элементы набора упорядочиваются на основании некоторой характеристики, например, в алфавитном порядке имен или хронологически (для событий, действий). Полученный таким образом порядок выражается с помощью закодированных значений, которые сами последовательно выбираются из упорядоченного списка.
Такая схема кодирования делает возможным легкое получение и сортировку экземпляров элементов. Это используется в тех случаях, когда невозможно или трудно получить требуемые результаты с помощью экземпляров незакодированных элементов данных, например, из-за присутствия разделяющих слова пробелов или в результате цифрового выравнивания.
Преимущества:
- быстрое присвоение закодированных значений;
- компактность;
- простота подтверждения допустимости закодированных представлений.
Недостатки:
- максимальная вместимость используется не полностью.
Пример - Во Франции "Департаменты" были закодированы числами на основании списка, отсортированного в алфавитной последовательности. Эти коды могли быть элементами других кодов, например, почтового кода, национального идентификационного номера, регистрационного номера транспортного средства.
Недостатком этой системы является то, что она не может быть приспособлена к возможным последующим изменениям. Рассмотрим пример: "Departement Corse" было присвоено кодовое значение 20. Когда "Corse" был разделен на "Haute Corse" и "Corse du Sud" пришлось использовать буквы (2A и 2B соответственно) в цифровом коде, что создало аномалии.
6.2.4 Заключение
При выборе последовательного кода, код абсолютно возрастающего типа представляет собой наилучшее решение по гибкости, затратам и простоте присваивания.
6.3.1 Принципы
Элементам набора присваиваются закодированные значения из набора возможных неупорядоченных значений или с помощью некоторого алгоритма. Нет корреляции между элементами набора и их закодированными значениями. Этот метод отличается от последовательного кодирования тем, что в последнем для присвоения закодированных значений используются последовательно упорядоченные диапазоны.
Цель данного метода состоит в том, чтобы сделать невозможной какую-либо интерпретацию кода.
6.3.2 Преимущества:
- простое и быстрое присвоение закодированных значений, возможно - автоматическое;
- компактность;
- использование максимальной вместимости.
6.3.3 Недостатки:
- с помощью закодированных представлений невозможна классификация или группировка элементов набора;
- необходим предварительно установленный список или алгоритм создания случайных чисел, исключающий любое дублирование чисел.
6.3.4 Использование
Случайные коды могут быть использованы как самодостаточные коды для целей идентификации или как часть составного кода, другие части которого основаны на других принципах кодирования.
6.4.1 Принципы
Элементам набора присваивают закодированные представления, беря один или несколько символов из их названий.
Цель этого метода состоит в том, чтобы повысить эффективность запоминания пользователями закодированных значений.
6.4.2 Преимущества:
- простота запоминания пользователями закодированных значений, что избавляет от частого обращения к спискам кодов;
- облегчение выявления ошибок.
6.4.3 Недостатки:
Кодирование существенно зависит от способа исходного выражения элементов набора (языка, единиц измерения и проч.). Существует риск, что созданные мнемоники в языке пользователя имеют смысл, не связанный с представляемыми экземплярами набора.
6.4.4 Использование
Мнемонические коды могут успешно применяться для ограниченных идентифицирующих кодовых наборов, которые достаточно стабильны и названия элементов которых хорошо известны в среде пользователей.
Пример 1
По ИСО 3166 - коды для представления названий стран:
Пример 2
По Рекомендации 20 Экономической комиссии ООН для Европы (UN/ECE) - коды единиц измерения
6.5.1 Принципы
Существенной характеристикой этого кода является метод сокращения обозначений элементов набора, который изначально единообразно определен.
Цель этого метода состоит в создании кратких представлений непосредственно из исходных названий элементов набора. Этот метод похож по своим целям на мнемонический код.
6.5.2 Преимущества
Простое сжатие иногда весьма объемных данных.
6.5.3 Недостатки
Уникальность получающихся в результате процесса сокращения закодированных значений не может быть гарантирована без проверки всех закодированных значений после добавления каждого нового.
6.5.4 Использование
Этот тип кода рекомендуется использовать для больших наборов элементов, когда требуется уменьшить размеры представлений элементов.
Пример
Коды ответов телекса.
Код ответа является строкой символов, которая автоматически передается телекс-терминалом после получения им управляющего символа WRU ("кто ты?"). По соглашению длина этой строки ограничена 14 символами.
Эти закодированные представления содержат переменное, но не превышающее 14, число символов. Наиболее часто коды создаются путем сжатия названия организации. Закодированные представления не обязательно должны включать в себя номер телекса.
6.6.1 Принципы
Матричный код основывается на наличии таблицы с двумя входами. Значения, присвоенные строкам и графам этой таблицы, используются для создания закодированного представления элементов набора в данной таблице на соответствующих координатах.
Цель данного метода состоит в том, чтобы присвоить осмысленные закодированные значения элементам набора, которые имеют ряд общих характеристик в различных комбинациях.
6.6.2 Преимущества:
- интерпретируемость закодированных значений;
- простота присваивания закодированных значений.
6.6.3 Недостатки:
- необходимость предварительно введенных таблиц, охватывающих все характеристики элементов кодируемого набора;
- трудность приспосабливания к новым требованиям, таким как новые или измененные характеристики, или новые комбинации.
6.6.4 Использование
Матричные коды могут быть полезными для целей идентификации элементов набора, когда их характеристики хорошо структурированы и стабильны.
Пример
Следующая таблица может быть использована для кодирования электрических ламп на основании их характеристик. Например, кодовое представление 04 B01 стандартной лампы на 220/230 вольт мощностью 60 ватт с патроном B22 может быть интерпретировано следующим образом:
04 - номер таблицы;
B - номер строки, соответствующей мощности 60 ватт;
01 - номер графы, соответствующей патрону B22.
6.7.1 Принципы
Иерархический код основан на последовательном и нарастающем разбиении кодируемого набора элементов на маленькие группы.
Каждая группа более высокого иерархического уровня включает в себя все группы своих более низких уровней и только эти группы. Этот тип кода основывается на различиях между характеристиками элементов на каждом уровне.
Характеристики каждого уровня должны быть взаимоисключающими.
6.7.2 Преимущества:
- простота классификации или группировки элементов;
- возможность отчетов на верхних уровнях агрегации;
- интерпретируемость закодированных значений.
6.7.3 Недостатки:
- ограниченное использование теоретической мощности;
- потеря гибкости из-за сложности использованного принципа (когда уровни могут стать переполненными или высшие уровни нельзя будет переупорядочить без полного пересмотра кода);
- необходимость следовать по кодам уровней от высших к низшим с целью присвоения или интерпретации кода;
- сложность, зависимость от числа уровней, риск повторного введения уже использованных на верхних уровнях характеристик.
6.7.4 Использование
В общем случае иерархические коды используют в целях классификации. Количество уровней устанавливают в зависимости от информационных требований. Иерархические коды менее пригодны для целей идентификации и указания.
Иерархические коды весьма подходят, например, для статистических задач, для отчетов о движении продукции, для классификации публикаций по темам. На практике встречаются как фиксированные, так и переменные форматы. Фиксированные форматы более просты для обработки, чем переменные.
Пример 1
Фиксированный нарастающий формат
Из Гармонизированной системы описания и кодирования товаров
Формат кода гармонизированной системы состоит из 6 числовых позиций, разделенных на независимые сегменты по 2 позиции в каждом.
Пример 2
Переменный нарастающий формат
Из Универсальной десятичной классификации (УДК).
Количество символов и сегментов в закодированных представлениях переменно, так что степень подробности описания может быть продолжена до нужного уровня. Понятие "скаты крыш в архитектуре" выражается закодированным представлением 624.024.13:
6.8.1 Принципы
Сопоставляющие коды являются составными кодами, состоящими из сегментов, которые предоставляют характеристики, выбранные для представления элементов набора. Эти характеристики не зависят друг от друга. Комбинируемые таким образом закодированные представления могут быть любых типов (последовательными, мнемоническими, случайными).
6.8.2 Преимущества:
- простота группировки элементов набора на основании одной или нескольких характеристик, выраженных в закодированных значениях;
- мощность, связанная с количеством значений, которые может принимать каждая характеристика;
- интерпретируемость закодированных значений.
6.8.3 Недостатки:
- требование включать большое количество характеристик может привести к большому числу символов в каждом закодированном значении;
- трудно приспособить к требованиям для новых характеристик.
6.8.4 Использование
Сопоставляющие коды очень подходят для классификации предметов, имеющих несколько общих характеристик. Областями применения являются, например, трассирующее кодирование (какая продукция, когда и где произведена) или групповые технологические подходы к разработке и производству.
Пример
Кодирование металлов:
Эти три типа характеристик (марка, форма и размеры) в достаточно большой степени не зависят друг от друга.
6.9.1 Принципы
Комбинированные коды являются составными кодами, которые собраны из сегментов, предоставляющих разные характеристики элементов набора. Эти характеристики зависят друг от друга и иерархически взаимосвязаны. В этом отношении комбинированные коды отличаются от сопоставляющих.
6.9.2 Преимущества:
- простота присвоения закодированных значений;
- удобство распределения и сопровождения закодированных значений;
- возможность некоторого расширения интерпретируемости закодированных значений;
- удобство проверки допустимости закодированных значений.
6.9.3 Недостатки:
- теоретическая мощность не может быть использована в полной мере.
6.9.4 Использование
Комбинированные коды часто применяются в целях идентификации, охватывая широкую область приложений.
Пример из Европейского цифрового кода продукции (EAN)
6.10.1 Принципы
С этим типом кода для представления элементов набора допустимы только числа, являющиеся степенями 2. Код такого типа может применяться, когда элементы набора должны комбинироваться.
Закодированными представлениями экземпляров являются степени 2:
1, 2, 4, 8, 16, 32, 64, 128, 256, 512 и т.д.
Таблица значений получается путем присвоения значения степени 2 каждому экземпляру:
6.10.2 Преимущества
Компактность.
6.10.3 Недостатки
Необходим алгоритм для присваивания и интерпретации.
6.10.4 Использование
Этот метод подходит для небольших наборов элементов, требующих много комбинаций при условии, что их порядок несущественен. Используя таблицу, можно присвоить уникальное закодированное представление любой комбинации, суммируя все имеющиеся элементы.
Пример
Комбинация элементов 1, 8, 4 и 9 будет закодирована как 393, что является суммой 1, 128, 8 и 256.
Зная таблицу атрибутов кода этого типа, всегда можно идентифицировать элементы, так как при данном выборе чисел (степени 2) 393 может быть только суммой 256 + 128 + 8 + 1.
Общими характеристиками кодов являются:
- компактность;
- простота;
- стабильность;
- размер;
- мощность.
Однозначность является основной характеристикой любого кода.
Однозначность достигается, когда одному и только одному элементу набора соответствует один закодированный элемент, и наоборот.
Это свойство означает способность кода приспосабливаться к требованиям добавления новых элементов в нужных местах кодируемого набора без перекодирования или реструктуризации всего кода. Код должен допускать расширение существующих делений и добавление новых.
Планируемые сроки использования кода должны учитывать количество элементов набора, которые должны быть закодированы, и стабильность или динамику окружения, управляющего расширением набора элементов.
Число символов в закодированном представлении регулирует компактность кода.
Закодированное представление должно иметь наименьшее количество символов, необходимое для кодирования текущих и будущих элементов набора.
Краткое закодированное представление дает преимущества при:
- вводе данных;
- обмене данными электронным или иными способами;
- хранении в базе данных;
- обработке данных.
Метод кодирования должен быть прост для понимания и применения пользователями. Компактность и выбор символьного набора при этом не менее важны, чем выбор понятий, определение структур, отсутствие исключений и отклонений, эффективность процедур присваивания.
Код должен быть применим в различных взаимосвязанных прикладных областях. Это свойство обеспечивает интеграцию систем.
Если есть требование создавать или обрабатывать данные в предписанном порядке, то код должен удовлетворять этому требованию.
Пригодность для сортировки существенно зависит от типа выбранного кода.
В составных кодах (например, иерархических) могут быть выбраны более или менее сложные возможности сортировки и/или группировки в зависимости от характера элементов набора и назначения системы. Эти возможности зависят в основном от количества сегментов, предусмотренных в структуре кода, или выразительности закодированных значений.
Код стабилен, когда он допускает запланированные изменения без модификации всей структуры кода. На уровне закодированных представлений эта концепция выражается в терминах стабильности представляемых уникальных элементов.
Пользователям нужны стабильные коды. Присваивание закодированных значений должно проводиться с наименьшей возможной вероятностью модификаций как самих закодированных значений, так и структуры кода.
Модификации дорогостоящи, приводят к росту количества ошибок, требуют времени и ресурсов и могут повредить всю систему, если ими не управлять должным образом.
Закодированные представления, которые удаляются, когда элементы выпадают из набора, не должны использоваться повторно для других элементов.
Код называют выразительным, если кодовые представления прямо (например, мнемонические коды) или косвенно через ссылку на одну или несколько таблиц (например, иерархические или сопоставляющие коды) выражают заложенный в них смысл.
Выразительность так же связана с возможностями сортировки и группировки на основании характеристик элементов набора, используя их закодированные представления.
На практике выразительность важна в случае классификации. Для задач идентификации и указания рекомендуются невыразительные коды.
Размер выражается как число позиций закодированного представления.
Закодированные значения могут быть определены с фиксированным или переменным количеством символов.
Закодированные значения с переменным количеством символов имеют два больших недостатка:
1 Количество символов непредсказуемо, что может привести к проблемам выравнивания при хранении закодированного значения в поле данных, которое содержит больше символов, чем использовано для закодированного значения.
Данные могут быть выровненными вправо, влево или на десятичную точку.
Ошибки левого и правого выравниваний являются обычными в записях данных (сдвиг поля). Некорректное использование закодированных представлений, имеющих переменное количество символов, в полях данных фиксированного формата может привести к разным представлениям (например, **12, *12* или 12**, где * представляет символ SPACE), которые не будут распознаны устройствами обработки как одно и то же закодированное представление.
2 Ошибки добавления или пропуска символов не могут быть просто выявлены человеком или машиной.
Неконтролируемое добавление суффиксов и/или префиксов к исходному закодированному значению является общей и часто встречающейся проблемой. Так как суффиксы и префиксы обычно имеют различный характер и не всегда должны присутствовать, то это легко может привести к увеличению неправильных интерпретаций и ошибок.
По этим причинам рекомендуется использовать закодированные значения с фиксированным количеством символов.
Формат (или структура символов) закодированного значения предпочтителен полностью цифровой или полностью алфавитный. Смешанные форматы (алфавитно-цифровые) могут использоваться, когда символы в конкретных позициях, например первый или последний символы, всегда цифровые или алфавитные. Случайные алфавитно-цифровые форматы использовать не следует, так как при этом имеется существенный риск человеческих ошибок.
Структура кода определяет:
- количество позиций или групп позиций, образующих закодированное представление;
- набор допустимых символов для каждой позиции.
Примечание - Составной частью структуры могут быть пробелы.
Входной контроль для выявления синтаксических ошибок относится, главным образом, к структуре. Таким образом, каждая позиция закодированного представления каждой группы из нескольких позиций должна быть определена как алфавитная, цифровая, алфавитно-цифровая или специальная.
Эта характеристика есть количество закодированных представлений, которые могут быть сформированы комбинацией используемых символов для каждой позиции, учитывая выбранное основание счисления.
Примеры
1 Для 1 позиции и основания 2 с двоичными символами мощность C = 2.
2 Для 1 позиции и основания 10 с десятичными цифровыми символами C = 10.
3 Для 1 позиции и основания 26 с алфавитными символами C = 26.
Это теоретические мощности. Они предполагают использование всех комбинаций всех символов.
Ограничения, вызванные практическими или концептуальными причинами, уменьшают эти теоретические мощности.
Для вычисления мощности данного кода для охвата всех ситуаций при сохранении его однозначности используют следующую формулу (принимая, что используется 24 алфавитных символа и 10 цифр, так как букв I и O следует, по возможности, избегать):
C = (24A) + (10N),
где C - общее число доступных возможных комбинаций кода,
A - число алфавитных позиций в коде,
N - число цифровых позиций в коде,
(A + N для комбинированного кода равно общему числу позиций в коде).
Примечание - В приведенной выше формуле принято, что данная позиция является либо алфавитной, либо цифровой. Если одна и та же позиция может быть как алфавитной, так и цифровой, то формула принимает следующий вид:
C = (36)(A + N) или
C = (34)(A + N), когда буквы I и O не используются.
Позиции, занятые контрольными символами, не должны учитываться при вычислении мощности.
На практике выбор мощности является компромиссом между:
1) предполагаемым расширением системы,
2) ограничениями на число символов, составляющих закодированное представление,
3) простотой написания и использования закодированных представлений,
4) желательным полезным функционированием системы,
5) стоимостью работы и т.д.
Мощность следует рассматривать как предел: она отличается от числа закодированных представлений, существующих в коде в любой заданный момент времени, и от числа закодированных представлений, которые были присвоены с момента введения кода (некоторые из них со временем могли быть удалены).
Свойством любого кода является то, что он есть метод представления закодированных значений, при котором используются различные символы.
Код называют:
а) цифровым, если в нем используются только цифры,
б) алфавитным, если в нем используются только буквы,
в) алфавитно-цифровым, если в нем используются как цифры, так и буквы, возможно, вместе со специальными символами.
Цифры
В качестве цифр используют арабскую нумерацию: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9.
Буквы
В качестве алфавита используют латинский.
В зависимости от требований можно использовать весь алфавит из 26 букв или его часть. Использование национальных алфавитов в закодированных представлениях находится вне области применения настоящего стандарта.
Рекомендуется использовать буквы только одного регистра (строчные или прописные).
Специальные символы
Специальные символы можно использовать в закодированных представлениях в дополнение к алфавитным (&, $, ...); в таком случае мощность возрастает, и становится доступным семейство символов, которые могут быть зарезервированы для специальной обработки.
Следует избегать следующих символов, которые:
1) не относятся к инвариантному набору ИСО 646 IRV;
2) могут быть ошибочно интерпретированы или неправильно переписаны. Так, по мере возможности, следует избегать пробелов.
Пример - 123 ABC следует записывать как 123ABC, так как пробел не имеет смысловой нагрузки и может быть опущен при переписывании.
3) могут использоваться в качестве служебных в синтаксических схемах для обмена данными.
Пример - знак вопроса (?), двоеточие (:), знак плюс (+), апостроф (') используют в качестве служебных символов в классе A ИСО 9735 (EDIFACT). Однако для них предусмотрены управляющие последовательности.
Примечание - Допускается использование альтернативного набора символов путем расширения символьных наборов, которые зарегистрированы в соответствии с ИСО 2375. Если специфицирован набор символов, отличный от ИСО 646 IRV, то издающей организацией должно быть идентифицировано подмножество набора символов, которое должно использоваться для закодированных представлений.
Имеется несколько вариантов физического представления закодированных значений. Какой из них будет выбран, зависит от прикладной области и имеющихся устройств.
Для ручной обработки предпочтение обычно отдается удобочитаемым для человека закодированным представлениям. В этом случае закодированные значения будут представляться традиционным способом с помощью символов латинского алфавита и арабской нумерации. Такое представление будет также выбрано для компьютерного вывода, при печати бумажных документов или листингов и при выводе на устройство визуального отображения.
Если требования включают в себя обработку механическими или электронными средствами, то доступны другие методы. Одним из наиболее часто используемых методов является автоматическая идентификация, для которой широко используется метод штрих-кодов. Существует ряд символов для штрих-кодов. Выбор символов должен проводиться достаточно тщательно. Он зависит от прикладной области, групп пользователей и принятых в среде функционирования соглашений.
Для числовых закодированных значений в общем случае применяют два метода:
- Символика, используемая в розничной торговле для указания цены, UPC (Universal Product Code - универсальный код продуктов) для Северной Америки и EAN (European Article Number - Европейский номер продукта) для остального мира. Эта символика используется, в основном, для идентификационных номеров продукции на потребительских товарах.
- Чередующиеся 2 из 5.
Эта символика кодирует цифровые данные в формате высокой плотности.
Для алфавитно-цифровых закодированных значений наиболее популярной символикой является:
- Код 3 из 9 (код 39).
Эта символика кодирует весь набор, состоящий из прописных букв, цифр и некоторых других символов, в штрих-код переменной длины.
Кроме штрихового кодирования существуют другие методы автоматической идентификации, такие как оптическое чтение символов OCR или магнитные полосы. Другим примером разработок являются смарт-карты, позволяющие хранить большой объем данных, которые могут быть обработаны.
Настоящий раздел предназначен для поддержки проектирования кодов. Это может помочь избежать потенциально обширных последовательностей неадекватно задуманных и разработанных кодов.
Требования часто могут противоречить друг другу. Например, если структура кодирования должна быть достаточно расширяемой для будущих потребностей, то можно в некоторой степени пожертвовать компактностью. Следовательно, для получения оптимальной эффективности в данной прикладной области нужно тщательно рассматривать все аспекты и проводить соответствующие оценки.
9.1.1 Подготовка
Когда требуется новый код, необходимо затратить достаточно времени и усилий для предварительного изучения, определения и планирования деятельности. Следует предвидеть потенциальные проблемы и тщательно оценить все альтернативы до внедрения нового кода.
9.1.2 Использование существующих кодов
По мере возможности, следует использовать существующие коды. Новые коды должны разрабатываться только тогда, когда это абсолютно необходимо. Всегда следует учитывать предпочтения пользователей. Будет правильно рассмотреть все схемы кодирования, используемые предполагаемыми пользователями нового кода.
Предпочтение следует отдавать принятию одобренных международных кодов, которые применяются в стандартах ИСО, рекомендациях и справочниках Экономической Еврокомиссии ООН и других международных организаций.
9.1.3 Выразительность кода
При надлежащем использовании выразительные коды дают основу для дополнительной информации и имеют тенденцию быть проще и более читабельными для людей, чем невыразительные коды. Однако, следует проявлять осторожность при разработке выразительных кодов в том отношении, что выразительные части должны быть связаны со стабильными категориями. Например, выразительный код организации не должен быть связан с ее расположением, так как изменение последнего приведет к изменению кода. Чрезмерно выразительные коды могут стать неуправляемыми и потерять расширяемость, поэтому их следует избегать.
Для большинства задач идентификации и для всех задач указания рекомендуется использовать невыразительные коды. Преимущества и недостатки различных методов кодирования приведены в разделе 6.
9.1.4 Кратная совместимость набора кодов
В некоторых случаях для удовлетворения требований системы требуется несколько кодов или представлений. Единственный код является идеальной целью, но не всегда - наиболее практичным решением. Если необходимо несколько кодов, то они должны допускать преобразования из одного кода в другой, т.е. элементы остаются неизменными, а коды различаются.
9.1.5 Мнемонические коды
Мнемонические коды могут использоваться с целью ассоциаций и запоминания, повышая тем самым эффективность обработки человеком, при условии, что они не используются для идентификации очень длинных, нестабильных списков элементов. Однако, следует весьма тщательно выбирать мнемонические структуры для обеспечения надлежащей гибкости. Следует избегать мнемоники, если закодированный набор потенциально является очень большим, так как ее эффективность падает с ростом числа кодируемых элементов. Когда в системе мнемонические или другие осмысленные закодированные представления не могут быть обеспечены для всех элементов набора, следует отдавать предпочтение элементам, имеющим наибольшую частоту использования.
9.1.6 Наименование кода
Все независимые сегменты кода должны быть индивидуально поименованы с помощью стандартно, однозначно и согласовано используемых меток.
9.1.7 Вычисление мощности кода
При вычисления мощности данного кода для охвата всех ситуаций, в которых сохраняется его однозначность, используют формулы, приведенные в 7.12.
9.2.1 Компактность
Для экономии места и уменьшения времени передачи данных закодированные значения должны состоять из минимального количества символов, но в то же самое время, должны быть оптимизированы относительно возможностей пользователей кода.
9.2.2 Фиксированное количество символов
Коды с фиксированным количеством символов (например, всегда три символа, а не один, два или три) более надежны и легче в использовании, чем коды переменной длины.
9.2.3 Сегментация
Закодированные значения, имеющие более четырех алфавитных или пяти цифровых символов следует делить на более мелкие сегменты с целью более надежной записи, например, XXX-XXX-XXXX более надежно, чем XXXXXXXXXX.
9.2.4 Возможное расширение
Структура кода должна обеспечивать добавление к набору новых элементов без перекодирования существующих или расширения формата закодированных представлений.
9.3.1 Требования пользователей
Компоненты и сегменты кода следует форматировать в соответствии с информационными потребностями пользователей, учитывая максимальную простоту просмотра кода на предмет точности и полноты и компактность содержимого данных.
9.3.2 Алфавитные и цифровые коды
В общем случае человеку легче читать цифровые, чем алфавитные закодированные значения, если в последних не используется мнемоника. Контролируемые алфавитно-цифровые закодированные значения (т.е., те, в которых конкретная позиция всегда является цифровой или алфавитной) более удобны для чтения, чем случайные. Например, формат AA999 (первые два символа всегда буквы, а последние три - цифры) легче для чтения, чем формат, в котором буквы и цифры появляются в произвольных позициях.
9.3.3 Группирование символов
В случае, когда код построен из алфавитных и цифровых символов, аналогичные типы символов следует группировать, а не разбрасывать по всему закодированному представлению. Например, меньше ошибок будет встречаться в трехсимвольном коде со структурой буква-буква-цифра (HW5), чем в последовательности буква-цифра-буква (H5W).
9.3.4 Последовательность позиций кода
Если код делит полный набор категорий на небольшие группы, то позиции высших порядков должны соответствовать более широким, общим категориям; позиции низших категорий должны быть более селективными (включая суффиксы). Примером является числовое представление даты в соответствии с ИСО 8601 (YYMMDD). Если составной код состоит из нескольких независимых кодов, то выбор кодового сегмента, занимающего позиции более высокого порядка, должен основываться на рассмотрении требований использования и эффективности обработки.
9.3.5 Разделение сегментов кода
Сегменты кода следует разделять дефисом (при отображении) или располагать совершенно отдельно друг от друга (при хранении и отображении), если позиции или сегменты совершенно независимы друг от друга и могут использоваться по отдельности (т.е. для понимания их смысла не требуются другие части кода).
9.3.6 Контрольные символы
Следует рассмотреть добавление выявляющего ошибки символа во избежание этих ошибок при записи. Использование самопроверяющегося кода предотвращает многие необязательные проблемы передачи данных, связанные с неправильной записью и предоставлением ошибочной информации.
9.4.1 Специальные символы
В структуре кода следует использовать обычные символы и избегать символов, отличных от букв и цифр таких, как дефис, точка, пробел, звездочка и т.д. (за исключением разделителей сегментов кода, когда могут быть использованы дефис или пробел). В коде должны использоваться буквы только одного регистра, т.е. ABC...Z или abc...z. В именах, названиях и сокращениях могут использоваться буквы обоих регистров и другие символы. Словарь для данной системы кодирования должен содержать как можно меньше классов символов. По мере возможности, используемый набор символов должен соответствовать 7-битовому кодовому набору для обмена информацией (см. ИСО 646).
9.4.2 Визуальное сходство
Когда необходимо использовать алфавитно-цифровою случайную структуру кода, следует избегать символов, которые легко перепутать с другими. Вот некоторые примеры: буква I и цифра 1, буква O и цифра нуль, буква Z и цифра 2, буква G и цифра 6, буквы B и S и цифра 8, буквы O и Q.
9.4.3 Акустическое сходство
В невыразительных кодах следует избегать символов, которые могут быть перепутаны при произношении (акустически однородны); например, буквы B, D, G, P и T или буквы M и N.
9.4.4 Гласные
Следует избегать использования гласных (A, E, I, O и U) в алфавитных кодах или в позициях кодов, имеющих три и более последовательных алфавитных символа, для исключения неумышленного образования слов обычного языка.
9.4.5 Учет сортировки
В любой конкретной позиции символ должен быть либо алфавитным, либо цифровым во избежание несовместимости с сортировкой последовательности.
9.5.1 Правила кодирования
Должны быть четко установлены правила кодирования, и эти правила должны последовательно применяться. Например, мнемонические сокращения могут образовываться путем удаления всех гласных из названий кодируемых элементов как в случае DT для date (дата) или GRN для green (зеленый), или могут использоваться первые буквы слов кодируемых элементов как в случае EOF для End of File (конец файла).
9.5.2 Коды для количественных данных
Не следует кодировать количественные данные или денежные суммы, так как это приводит к дополнительным преобразованиям и потере точности. Например, можно было бы закодировать числа от 1 до 99 как A, 100 - 199 как B и т.д. Такое кодирование может оказаться желательным для задач категоризации, но статистическая значимость будет потеряна, так как из закодированных значений не могут быть получены фактические числа. Категоризация может быть осуществлена при последующей обработке, а не при кодировании входных данных.
9.5.3 Использование "естественных" данных
Не следует разрабатывать кодовую структуру, если конкретные данные в их естественной форме (такие, как процентное содержание) являются вполне пригодными и адекватными.
9.5.4 Использование "0000" и "9999" в качестве закодированных значений
Не следует использовать последовательности из "0" или "9" в качестве присвоенных закодированных значений. Эти значения следует зарезервировать для специальных ситуаций или для индикаторов обработки.
9.5.5 Категория "разное"
С большой осторожностью нужно использовать кодирование категорий "разное" или "прочее". Нельзя допускать размещение в этих категориях объектов, которые фактически относятся к более конкретному классу.
Примечание - Подробное рассмотрение контрольных символов приведено в ИСО 7064.
Некоторые ошибки, возникающие в результате участия человека в преобразованиях закодированных представлений, могут быть выявлены с помощью контрольных символов. Они получаются путем применения арифметических операций к символам, образующим закодированное представление.
Операция взятия модуля (деления) дает основу для присвоения каждому закодированному представлению контрольного символа.
Метод вычисления контрольных символов определяет эффективность возможности выявления ошибок. Могут быть выявлены и, иногда, исправлены ошибки, включающие в себя:
1) единственный символ: 12545 вместо 12345;
2) два символа: 22335 вместо 12345;
3) перестановку символов: 21345 вместо 12345.
ИСО 7964 устанавливает системы контрольных символов. Для удовлетворения потребностей различных приложений может быть выбран только небольшой набор совместимых систем. Эти системы обеспечивают возможность достижения наибольшей степени защиты от типичных ошибок при ограничениях каждого приложения.
9.7.1 Классифицирующие коды для логистики и управления
При планировании и подготовке отчетов не используют идентифицирующие коды. Для рассматриваемых целей они слишком подробны. Элементы должны быть сгруппированы на основании определенных критериев. Для долгосрочного планирования обычно более приемлемы данные по группам на высших уровнях агрегации, а не данные по отдельным продуктам.
Когда нужно провести агрегацию на различных уровнях, то в общем случае наилучшим решением является иерархический код.
9.7.2 Классифицирующие коды для разработки и производства
Широкое распространение получили реализации систем CAD (Computer Aided Design - автоматизированное проектирование) и CAM (Computer Aided Manufacturing - автоматизированное производство). Для интеграции этих систем требуются кодирование и классификация. Важным приложением является групповая технология.
В групповой технологии классификация используется для определения сходства видов продукции или производственных процессов. Кодирование в групповой технологии направлено на присвоение осмысленных идентифицирующих символов взятым по отдельности или в логической группировке внутренним характеристикам классифицируемых объектов и процессов.
Для приложений такого типа наиболее подходят сопоставляющие коды.
Настоящие практические рекомендации даны на основе преимуществ и недостатков различных типов кодов.
9.8.1 Выбор структуры
Последовательные цифровые коды (см. 6.2) являются более предпочтительными по сравнению с кодами других типов по следующим причинам:
- в них максимально используется теоретическая мощность;
- арабская нумерация используется в большинстве стран мира;
- при ручном наборе или запросе использование цифровых клавиш проще и быстрее;
- при устной передаче они проще и надежней;
- они облегчают использование контролирующих символов.
Мнемонические алфавитные коды (см. 6.4 и 6.5) следует зарезервировать преимущественно для коротких кодов, когда вопросы запоминания рассматриваются как приоритетные.
К недостаткам мнемонических алфавитных кодов относится следующее:
- существенная зависимость от используемого языка;
Пример - В ИСО 3166 алфавитный двухбуквенный код построен из букв того названия страны, которое в этой стране используется; таким образом, этот код не дает мнемонических преимуществ для пользователей, которые не знают соответствующего языка. Например, "DZ" (Djazair) для Алжира "DE" (Deutschland) для Германии.
- необходимость изменяться при изменении названия элемента;
Пример - При изменении названия страны Верхняя Вольта на Буркина-Фасо пришлось менять код с "HV" (Haute Volta) на "BF".
- практическая недостижимость теоретической мощности, так как настоятельно не рекомендуется использовать буквы, приводящие к путанице при произношении (B, D, G и т.д.) или написании (O и Q).
9.8.2 Выбор длины
Количество символов в коде непосредственно зависит от трех факторов:
- выбранной структуры;
- требуемой мощности;
- желательного фактора расширения.
Код фиксированной длины использовать проще и надежнее, чем код переменной длины.
9.8.3 Мощность
Часто реальная мощность алфавитного или алфавитно-цифрового кода намного меньше его теоретической мощности, если принять во внимание, что некоторые символы и их комбинации не используются во избежание путаницы.
Пример - Ранние системы телефонных номеров, например, в Париже, были построены на 3 буквах и 4 цифрах. В алфавитной части, являвшейся мнемоническим сокращением названия телефонной станции, многие комбинации не использовались. Замена структуры кода на 7 цифровых символов позволила увеличить истинную мощность и облегчила ее последующее расширение до 8 цифр.
9.8.4 Потенциальное расширение
При выборе длины кода следует принять во внимание пригодность полученной мощности для последующих расширений.
Пример - При внедрении системы кодирования для набора из 90 текущих элементов (например, районов страны) и разработке двухзначного цифрового кода имеется большая вероятность того, что через какое-то время мощность окажется недостаточной.
9.8.5 Составные коды
Для этих кодов следует избегать использования сегментов (см. 6.8 и 6.9), которые сопровождаются разными организациями. Каждое изменение, принятое другой сопровождающей организацией, вызовет изменения в используемом составном коде.
9.8.6 Сопровождение и управление версиями кодовых наборов
Изменения и (или) расширения кодовых наборов могут быть такими, что повлияют на существующие приложения. Следует определить правила, соответствующие правилам сопровождения и управления версиями для данного типа элементов данных, которые гарантируют недвусмысленность при использовании разных версий кодовых наборов. Существенные изменения семантики элементов закодированного набора должны приводить к новому закодированному набору, узнаваемому, например, по номеру версии или дате.
Пример - Международные сокращения терминов доставки (INCOTERMS) со времени своей первой публикации в 1953 г. существенно изменялись и расширялись в 1980 и 1990 гг. Изменения и расширения привели к отдельным закодированным наборам, которые уточняются датой, т.е. INCOTERMS 1953, INCOTERMS 1980, INCOTERMS 1990.
Требуются также правила повторного использования устаревших значений кода. Рекомендуется, чтобы отмененные или исключенные элементы кода не присваивались вновь новым элементам закодированного набора.
(справочное)
НАЦИОНАЛЬНЫМ СТАНДАРТАМ
Таблица ДА.1
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/40/gost_43763.html
На правах рекламы:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||