ГОСТ Р 55021-2012/ISO/IEC TR 9789:1994
Группа П85
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология
РУКОВОДСТВО ПО ОРГАНИЗАЦИИ И ПРЕДСТАВЛЕНИЮ ЭЛЕМЕНТОВ ДАННЫХ ПРИ ОБМЕНЕ ДАННЫМИ
Методы и принципы кодирования
Information technology. Guidelines for the organization and representation of data elements for data interchange. Coding methods and principles
ОКС 35.100.01
Дата введения 2014-01-01
Предисловие
1 ПОДГОТОВЛЕН Федеральным государственным унитарным предприятием "Государственный научно-исследовательский и конструкторско-технологический институт "ТЕСТ" (ФГУП ГосНИИ "ТЕСТ") на основе собственного перевода на русский язык англоязычной версии международного документа, указанного в пункте 4
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 22 "Информационные технологии"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 24 сентября 2012 г. N 417-ст
4 Настоящий стандарт идентичен международному документу ISO/IEC TR 9789:1994* "Информационная технология. Руководство по организации и представлению элементов данных при обмене данными. Методы и принципы кодирования" (ISO/IEC TR 9798:1994 "Information technology - Guidelines for the organization and representation of data elements for data interchange - Coding methods and principles", IDT).
При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении ДА
5 ВВЕДЕН ВПЕРВЫЕ
6 ПЕРЕИЗДАНИЕ. Декабрь 2018 г.
Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
1 Область применения
Настоящий стандарт представляет общее руководство по способам, которыми данные могут быть выражены в виде кодов.
В стандарте описаны цели кодирования, характеристики, преимущества и недостатки различных методов кодирования, особенности кодов и дано руководство по проектированию кодов.
Настоящий стандарт не предназначен непосредственно для какой-либо конкретной прикладной области и не зависит от какого-либо конкретного метода проектирования прикладных систем или обмена данными.
2 Нормативные ссылки
В настоящем стандарте использованы ссылки на следующие стандарты*:
ISO/IEC 646:1991, Information technology - ISO 7-bit coded character set for information interchange (Информационные технологии. 7-битный набор кодированных символов ISO для обмена информацией)
________________
________________
________________
________________
________________
ISO 9735:1988, Electronic data interchange for administration, commerce and transport (EDIFACT) - Application level syntax rules (Электронный обмен данными в управлении, торговле и на транспорте (EDIFACT). Синтаксические правила для прикладного уровня)
________________
3 Термины и определения
В настоящем стандарте применены следующие термины с соответствующими определениями:
3.1 атрибут (attribute): Характеристика объекта.
3.2 набор символов (character set): Конечное множество различных символов, которое является полным для заданной цели.
Пример - Международная базовая версия набора символов ИСО 646.
3.3 код (code): Совокупность правил, которые отображают элементы одного набора в элементы другого набора.
Примечания
1 Элементы могут быть символами или строками символов.
2 Первый набор называется кодируемым, а второй - закодированным набором элементов.
3 Элемент закодированного набора может относиться к нескольким кодируемым.
3.4 закодированный элемент (code element): Результат применения кода к элементу в кодируемом наборе.
Примеры
1 "CDG" является представлением парижского аэропорта имени Шарля де Голля (Paris Charles de Gaulle) в коде для трехбуквенного представления названий аэропортов.
2 Семь двоичных цифр, представляющих удаление символа в ИСО 646.
3.5 закодированный набор элементов (code element set): Результат применения кода ко всем элементам кодируемого набора.
Пример - Все трехбуквенные международные представления названий аэропортов.
3.6 закодированный набор (code set): Синоним закодированного набора элементов.
3.7 закодированное значение (code value): Синоним закодированного элемента.
3.8 закодированное представление (coded representation): Синоним закодированного элемента.
3.9 кодируемый набор (coded set): Набор элементов, который отображается в другой набор в соответствии с кодом.
Пример - Перечень названий аэропортов, который отображается в соответствующий набор трехбуквенных сокращений.
3.10 схема кодирования (coding scheme): Синоним кода.
3.11 данные кода (data code): См. предпочтительный термин закодированный элемент.
3.12 экземпляр элемента данных (data element instance): Экземпляр типа элемента данных.
3.13 тип элемента данных (data element type): Категория данных, которая представляет понятие и свойства которой выражаются как набор атрибутов типа элемента данных, допускающий обеспечение информационного обмена.
3.14 разделитель (delimiter): Один или несколько символов, используемых для указания начала или окончания строки символов.
3.15 сущность (entity): Любое конкретное или абстрактное рассматриваемое понятие, включая ассоциации между самими понятиями.
3.16 поле (field): Специфицированная область в среде данных или в памяти, используемая для конкретного класса элементов данных.
3.17 идентификатор (identifier): Один или несколько символов, используемых для идентификации или наименования типа элемента данных и, возможно, для указания некоторых его свойств.
3.18 ключ (key): Идентификатор в наборе типов элементов данных.
3.19 позиция (position): Любое положение в строке, которое может быть занято элементом и которое идентифицировано порядковым номером.
3.20 строка (string): Рассматриваемая как единое целое последовательность элементов одной и той же природы, таких как символы.
3.21 таблица (table): Упорядоченные данные, каждый элемент которых может быть идентифицирован с помощью аргументов или ключей.
4 Принципы кодирования
4.1 Информация и кодирование
В повседневной жизни информация понимается как факты и утверждения о рассматриваемых конкретных или абстрактных объектах, выраженные: данными, сообщениями, последующими уточнениями. Информация необходима для надлежащего выполнения любой возможной задачи, будь то в управлении, торговле, транспорте, науке и т.д. Точная, объективная и недвусмысленная информация является предварительным требованием в компьютерных информационных системах и при обмене данными между ними.
В формальных информационных системах данные выражены символами (обычно цифрами и буквами), арифметическими числами и описаниями, которые должны иметь фиксированный, неизменный смысл для каждого участника и, тем самым должны быть пригодными для целей обработки и коммуникации.
Пользователи, независимо от их функций и задач, должны быть способны корректно понимать, интерпретировать и обрабатывать свою информацию. Информация, совместно используемая разными группами пользователей или прикладными системами, должна иметь согласованное определение, т.е. семантическое значение понятия (коннотацию), все экземпляры понятия (денотацию) и согласованное представление.
Кодирование охватывает способы и формы выражения данных. Необходимо установить четкие соглашения об этих представлениях. Объяснение форм представления и закодированных элементов является частью спецификации данных.
4.2 Кодирование
Под кодированием понимается основанное на правилах упорядоченное присваивание закодированных элементов поименованному и определенному набору элементов. Кодирование осуществляется главным образом с помощью символов (обычно цифр и букв) и приводит к сжатому представлению.
Пример - Присваивание закодированного элемента "CDG" для краткого представления названия аэропорта "Paris Charles de Gaulle" (парижский аэропорт имени Шарля де Голля). Это название аэропорта относится к перечню названий аэропортов, поддерживаемому Международной ассоциацией воздушного транспорта (International Air Transport Association - IATA). Эта организация имеет свод правил для установления кратких представлений.
Кодирование является необходимым инструментом для обработки информации. Кодирование информации позволяет людям и машинам ее записывать, интерпретировать, обрабатывать и передавать. Все виды информации могут быть закодированы: информация о продуктах, людях, процессах, документах, странах, валютах, грузах и т.п.
До выработки соглашений о методологии кодирования, т.е. о представлении информации, относящейся к событиям, действиям, конкретным или абстрактным объектам реального мира, необходимо исследовать, какие данные относятся к намечаемым приложениям. Анализ информации рассматриваемой области применения должен определить роль данных в структуре информации. В ходе анализа следует четко различать потребности идентификации, классификации и указания.
5 Цели кодирования
Информация о любом рассматриваемом абстрактном или конкретном объекте, действии или событии (их характеристики или атрибуты) может быть закодирована. Прежде чем принять соглашения о конфигурации их представления (правила кодирования), необходимо определить цели кодирования. Недостаточно просто спроектировать упорядоченное краткое представление некоторых данных. Сначала должны быть выяснены информационные требования.
В общем случае встречаются следующие требования:
- идентификация,
- классификация,
- ключ к последующей информации.
Когда применяется моделирование данных для спецификации прикладных систем или сообщений, используемых при обмене данными, цели пользователей в прикладной среде будут определять выбор тех категорий и атрибутов, которые должны быть приняты во внимание, а также их взаимосвязи. От этих целей будут зависеть методы, которые должны использоваться для идентификации, классификации и указания.
5.1 Идентификация
Целью идентификации является отличие друг от друга элементов набора. Для того, чтобы это было возможно, прежде всего, следует определить, какие характеристики должны приниматься во внимание. На основе выбранных характеристик может быть проведено сравнение и оценено, равен ли данный элемент набора другому или отличается от него. С какой степенью подробности должны записываться характеристики, для того чтобы они указывали на подобие или различие элементов набора, зависит от прикладной области, для которой необходима идентификация.
Пример - Для контроля запасов канцелярских принадлежностей организация хочет идентифицировать различные типы листов бумаги. Иногда может оказаться достаточным различать форматы: A3, А4 или А5. В зависимости от использования бумаги могут быть добавлены другие характеристики, такие как толщина, масса, химический состав. Если специфические требования не установлены, то может оказаться достаточным записывать формат. В других случаях, когда обработка и использование бумаги являются важными, должны быть указаны необходимые характеристики.
Таким образом, идентификация может быть определена как:
- систематическая регистрация характеристик элементов набора таким способом, что они могут отличаться друг от друга,
- характеристики, по которым должно проводиться различие, являются неотъемлемой частью рассматриваемого объекта или понятия. Увеличение степени детализации, которая должна отслеживаться, зависит от задач пользователя и области применения. Эти критерии приводят к планированию или выбору системы идентификации.
Примеры необходимой степени подробности
В реальном мире человек имеет имя и фамилию, родился в конкретной стране, в конкретный день, проживает в конкретной стране, имеет глаза конкретного цвета и т.д.
Приложение 1 - В государственном приложении желательно различать цвет глаз граждан.
Приложение 2 - В приложении для медицинских исследований желательно различать цвет глаз людей.
В этих приложениях требования степени различия не обязательно идентичны. В медицинском исследовательском приложении может требоваться различать большее количество цветов глаз, чем в государственном приложении, регистрирующем цвет глаз граждан.
На практике это может привести к компромиссу при выборе системы идентификации. Часто выбор системы определяется на основе желания иметь минимум систем идентификации для соответствия максимуму функций.
Цели и приложения определяют, какие внутренние характеристики должны рассматриваться.
5.2 Классификация
Целью классификации является группировка рассматриваемых объектов или понятий в классы в соответствии с предварительно определенными характеристиками на основе того, какое подобие может быть установлено. Классификация часто используется для поддержки принятия решений или для выявления тенденций или направлений развития без рассмотрения каждого экземпляра множества по отдельности.
Таким образом, классификация может быть определена как:
- систематическое упорядочение элементов в группы или категории на основании сходства предварительно определенных характеристик;
- классификация осуществляется с помощью контрольных характеристик, т.е. тех характеристик, которые были приняты для рассматриваемого объекта или понятия или относятся к нему. Эти характеристики могут быть как внутренними, так и внешними.
Примеры контрольных характеристик
Место производства продукции, время оборачиваемости средств, сектор рынка, производственный процесс.
Информационные требования и бизнес-политика являются определяющими для выбора управляющих характеристик.
В организации могут применяться разные схемы классификации одного и того же типа объектов в зависимости от разных потребностей.
Пример
Продукт может быть классифицирован в соответствии с:
- функцией с точки зрения продажи,
- процессом его производства,
- ценностью с точки зрения инвентаризации,
- массой/объемом с точки зрения транспортировки,
- типом с точки зрения потребителей или статистики.
5.3 Ключ к дальнейшей информации
Ключ является идентификатором в наборе типов элементов данных. Ключ должен быть уникален в контексте приложения или обмена данными. Во многих прикладных системах в качестве ключа к дальнейшей информации необходим ссылочный номер. Сам ключ может быть бессмысленным, но он предоставляет доступ к нужным данным.
Примеры
1 Порядковый номер может открывать доступ стороне, которой был передан порядок данных, товаров или услуг;
2 Номер артикула может быть связан с описанием, ценой, производственным процессом, местом производства;
3 Табельный номер может быть связан с сотрудником, его именем и адресом, днем рождения, должностью, зарплатой.
Ссылочные номера могут быть идентифицирующими в одной прикладной области и классифицирующими - в другой.
6 Типы кодов
В данном разделе приведено описание основных методов кодирования. Это должно помочь при выборе подходящей структуры кода на основании конкретных прикладных требований и характера элементов в наборе, который должен быть закодирован. Здесь же приведены принципы и критерии, которые должны быть рассмотрены при оценке альтернативных структур кода, а также достоинства и недостатки каждого метода кодирования.
Возможен выбор различных структур кода. Приведенная ниже информация должна помочь при выборе наилучшего метода.
6.1 Формы кодов
Рассмотренные в этом разделе методы кодирования перечислены ниже. Приведенный набор методов не является исчерпывающим, но включает в себя все значительные типы. Многие применяемые на практике структуры кодов часто являются комбинациями этих основных типов.
Незначащие коды
Последовательный:
- возрастающий последовательный;
- групповой последовательный;
- упорядоченный последовательный (хронологически, алфавитно).
Случайный.
Значащие коды
Мнемонический
Основанный на сокращениях
Матричный
Иерархический
Сопоставляющий
Комбинированный
Суммирующий значения
6.2 Последовательные коды
6.2.1 Принципы
Элементам набора, которые должны быть закодированы, присваиваются номера, последовательно взятые из упорядоченного множества чисел. Эти номера обычно являются натуральными целыми числами (например, начиная с 1), но могут использоваться и алфавитные символы, например, AAA, ААВ, ААС, ... .
Последовательное присвоение закодированных элементов может быть основано на списках, построенных различными способами, например:
1 Список натуральных целых чисел, ограниченный количеством желательных доступных возможностей.
2 Списки чисел, упорядоченных на основании некоторого алгоритма, например, только четные числа или числа, кратные 10.
6.2.2 Использование
В основном последовательные коды используются как самодостаточные коды для идентификации или указания позиции или как часть составного кода, часто - в дополнение к классифицирующему коду.
Примечание - В числовых полях с фиксированным количеством позиций начальные нули должны использоваться тогда, когда это применимо, для заполнения поля до требуемого количества позиций.
Пример - В поле, определенном как трехзначное, "один" кодируется как 001, а "пятнадцать" - как 015.
6.2.3 Типы последовательных кодов
Имеется четыре типа последовательных кодов:
- возрастающий;
- абсолютно возрастающий;
- групповой;
- упорядоченный.
6.2.3.1 Возрастающий последовательный код
Элементам кодируемого набора присваиваются значения кода, определяемые увеличением предыдущего присвоенного закодированного элемента на заранее определенное число, например, 1 (абсолютно возрастающий), 2 (в случае четных номеров) или 10 (если присваиваются только кратные 10 номера).
При этом методе закодированное значение не выражает никакого смысла. Сходные элементы набора не группируются.
Основанием для присвоения закодированных значений, отличных от возрастающих на 1, может быть требование использовать промежуточные закодированные значения для последующих изменений исходного кодируемого набора.
Преимущества:
- быстрое присвоение закодированных значений;
- компактность;
- простота подтверждения допустимости закодированных представлений.
Недостатки:
- невозможна классификация или группировка элементов набора по закодированным представлениям;
- максимальная вместимость используется не полностью.
6.2.3.2 Абсолютно возрастающие последовательные коды
Элементам кодируемого набора присваиваются значения кода, определяемые увеличением предыдущего присвоенного закодированного элемента на 1.
При этом методе закодированное значение не выражает никакого смысла. Сходные элементы набора не группируются.
В дополнение к упомянутым в 6.2.3.1 преимуществам, используется максимальная вместимость кода.
6.2.3.3 Групповые последовательные коды
В этом типе кода категориям элементов набора, имеющим что-либо общее, присваиваются диапазоны закодированных значений.
До присвоения закодированного значения должна быть определена категория, к которой относится элемент набора. Затем присваивается следующее наибольшее закодированное значение из диапазона этой категории.
Пример
Код продукции нефтепереработки. В этом коде каждая продукция представляется четырехзначным числом, взятым последовательно из рядов, характеризующих группировку продукции.
Такими группами продукции, которые были определены заранее, и соответствующими диапазонами закодированных значений являются:
|
|
- газ
| 1000-2999 |
- бензин и топливо | 3000-4999 |
Преимущества:
- быстрое присвоение закодированных значений;
- компактность;
- простота подтверждения допустимости закодированных представлений.
Недостатки:
- максимальная вместимость используется не полностью.
Примечание - Эту систему не следует путать с иерархическими кодами (см. 6.7). Групповое последовательное кодирование следует использовать только в тех случаях, когда категории стабильны и нет вероятности того, что элемент набора может относиться к разным категориям (в текущий момент или в обозримом будущем).
6.2.3.4 Упорядоченные последовательные коды
Эти коды не являются абсолютно последовательными кодами, хотя закодированные значения могут казаться такими.
Этот тип кодов может быть успешно использован, только если все элементы набора заранее известны и набор не может расширяться.
До присвоения закодированных значений элементы набора упорядочиваются на основании некоторой характеристики, например, в алфавитном порядке имен или хронологически (для событий, действий). Полученный таким образом порядок выражается с помощью закодированных значений, которые сами последовательно выбираются из упорядоченного списка.
Такая схема кодирования делает возможным легкое получение и сортировку экземпляров элементов. Это используется в тех случаях, когда невозможно или трудно получить требуемые результаты с помощью экземпляров незакодированных элементов данных, например, из-за присутствия разделяющих слова пробелов или в результате цифрового выравнивания.
Преимущества:
- быстрое присвоение закодированных значений;
- компактность;
- простота подтверждения допустимости закодированных представлений.
Недостатки:
- максимальная вместимость используется не полностью.
Пример - Во Франции "Департаменты" были закодированы числами на основании списка, отсортированного в алфавитной последовательности. Эти коды могли быть элементами других кодов, например, почтового кода, национального идентификационного номера, регистрационного номера транспортного средства.
Недостатком этой системы является то, что она не может быть приспособлена к возможным последующим изменениям. Рассмотрим пример: "Departement Corse" было присвоено кодовое значение 20. Когда "Corse" был разделен на "Haute Corse" и "Corse du Sud" пришлось использовать буквы (2А и 2В соответственно) в цифровом коде, что создало аномалии.
6.2.4 Заключение
При выборе последовательного кода, код абсолютно возрастающего типа представляет собой наилучшее решение по гибкости, затратам и простоте присваивания.
6.3 Случайные коды
6.3.1 Принципы
Элементам набора присваиваются закодированные значения из набора возможных неупорядоченных значений или с помощью некоторого алгоритма. Нет корреляции между элементами набора и их закодированными значениями. Этот метод отличается от последовательного кодирования тем, что в последнем для присвоения закодированных значений используются последовательно упорядоченные диапазоны.
Для получения доступа к полной версии без ограничений вы можете выбрать подходящий тариф или активировать демо-доступ.