Уникальный идентификатор
Уникальный идентификатор (англ. unique identifier, UID) — это последовательность символов (цифр, букв или их комбинация), однозначно идентифицирующая объект, сущность или запись в рамках определённой системы, множества или контекста. Основное свойство уникального идентификатора — отсутствие дубликатов в пределах заданной области действия, что позволяет отличать один объект от другого и обеспечивать ссылочную целостность данных.
История и происхождение
Потребность в однозначной идентификации объектов возникла задолго до появления компьютеров. В библиотечном деле для книг использовались инвентарные номера, в торговле — артикулы товаров, в государственном управлении — номера паспортов и свидетельств. С развитием вычислительной техники и баз данных в 1960-х годах возникла необходимость в машинно-читаемых идентификаторах. Одним из первых стандартов стал номер записи в реляционных базах данных (ROWID). В 1970-х годах компания IBM предложила концепцию первичного ключа, который стал фундаментом для реляционной модели данных.
С развитием сетей и интернета потребовались глобальные уникальные идентификаторы. В 1980-х годах был разработан стандарт UUID (Universally Unique Identifier), а в 1990-х — GUID (Globally Unique Identifier) для Microsoft Windows. В 2000-х годах появились спецификации URN (Uniform Resource Name) и DOI (Digital Object Identifier), предназначенные для долговременной идентификации цифровых объектов.
Виды уникальных идентификаторов
Уникальные идентификаторы классифицируются по различным признакам: способу генерации, области действия, формату представления.
По способу генерации
- Натуральные идентификаторы — используют существующие атрибуты объекта (например, ИНН налогоплательщика, номер паспорта, ISBN книги). Их преимущество — естественная связь с объектом, недостаток — возможная нестабильность (изменение атрибута) или неуникальность в разных системах.
- Суррогатные идентификаторы — создаются искусственно, не имеют смысловой нагрузки. Примеры: автоинкрементные целые числа (1, 2, 3…), UUID, хеш-значения. Гарантируют уникальность, но не несут информации об объекте.
- Композитные идентификаторы — состоят из нескольких полей (например, дата + номер документа). Используются, когда одно поле не обеспечивает уникальности.
По области действия
- Локальные — уникальны в пределах одной системы, базы данных или таблицы (например, первичный ключ записи).
- Глобальные — уникальны в масштабах всей сети или мира (например, MAC-адрес сетевого устройства, IMEI телефона, DOI научной статьи).
- Временные — уникальны в определённый момент времени (например, идентификатор сессии в веб-приложении).
По формату представления
- Числовые — целые числа (например, 12345). Компактны, удобны для машинной обработки.
- Буквенно-цифровые — комбинация цифр и латинских или кириллических букв (например, A1B2C3). Позволяют увеличить пространство идентификаторов.
- Строковые фиксированной длины — например, UUID в формате 550e8400-e29b-41d4-a716-446655440000 (36 символов).
- Хешированные — результат криптографической хеш-функции (например, SHA-256). Используются для обеспечения целостности данных.
Применение
Уникальные идентификаторы используются практически во всех областях, где требуется однозначное различение объектов.
В информационных технологиях
- Базы данных: первичные ключи таблиц, внешние ключи для связей между таблицами. В реляционных СУБД (MySQL, PostgreSQL, Oracle) идентификаторы обеспечивают ссылочную целостность.
- Программирование: идентификаторы объектов в объектно-ориентированных языках (например, хеш-код в Java), идентификаторы процессов (PID) в операционных системах.
- Сети: IP-адреса (уникальны в пределах сети), MAC-адреса (уникальны для сетевых интерфейсов), порты TCP/UDP.
- Веб-технологии: идентификаторы URL (например, /article/123), идентификаторы сессий в cookie, токены аутентификации (JWT).
В государственном управлении
- Идентификация граждан: ИНН (идентификационный номер налогоплательщика), СНИЛС (страховой номер индивидуального лицевого счёта), номер паспорта, ИННС (идентификационный номер налогоплательщика — для юридических лиц).
- Регистрация юридических лиц: ОГРН (основной государственный регистрационный номер), ИНН, КПП (код причины постановки на учёт).
- Недвижимость: кадастровый номер земельного участка или здания.
- Транспорт: VIN-код автомобиля (уникален в мировом масштабе), номер кузова, государственный регистрационный знак.
В науке и издательском деле
- DOI (Digital Object Identifier) — постоянный идентификатор для научных статей, книг, отчётов. Позволяет находить объект даже при изменении URL.
- ISBN (International Standard Book Number) — уникальный номер книги (10 или 13 цифр).
- ISSN (International Standard Serial Number) — для периодических изданий (журналов, газет).
- ORCID (Open Researcher and Contributor ID) — уникальный идентификатор учёных для однозначной атрибуции публикаций.
В промышленности и логистике
- Штрих-коды (EAN-13, UPC) — уникальные идентификаторы товаров в розничной торговле.
- RFID-метки — радиочастотные идентификаторы для отслеживания товаров, животных, документов.
- Серийные номера — присваиваются каждому экземпляру продукции (например, серийный номер процессора Intel).
Проблемы и ограничения
- Коллизии — ситуация, когда два разных объекта получают одинаковый идентификатор. В системах с суррогатными идентификаторами (например, UUID) вероятность коллизии чрезвычайно мала, но не равна нулю. Для критических систем требуется проверка.
- Изменяемость — если идентификатор основан на атрибуте объекта (например, адрес электронной почты), его изменение нарушает уникальность и целостность ссылок.
- Масштабируемость — в распределённых системах генерация уникальных идентификаторов без центрального координатора требует специальных алгоритмов (например, Snowflake от Twitter, последовательности с префиксами).
- Конфиденциальность — некоторые идентификаторы (например, IMEI телефона, MAC-адрес) могут использоваться для отслеживания пользователей, что вызывает вопросы privacy. В России с 1 марта 2023 года вступил в силу закон, обязывающий производителей смартфонов устанавливать на устройства отечественное ПО и использовать уникальные идентификаторы для контроля.
- Интероперабельность — разные системы могут использовать разные форматы идентификаторов, что затрудняет обмен данными. Для решения этой проблемы применяются стандарты (ISO, ITU-T).
Стандарты и спецификации
- UUID (RFC 4122) — 128-битный идентификатор, генерируемый по алгоритму, обеспечивающему уникальность без центрального координатора. Версии: 1 (на основе времени и MAC-адреса), 4 (случайный), 5 (на основе хеша).
- GUID — реализация UUID в экосистеме Microsoft (32 шестнадцатеричные цифры с дефисами).
- URN (RFC 2141) — унифицированное имя ресурса, например
urn:isbn:0-395-36341-1. - OID (Object Identifier) — иерархический идентификатор, используемый в ASN.1, SNMP, X.509 сертификатах.
- ISIN (International Securities Identification Number) — 12-значный код для ценных бумаг.
- LEI (Legal Entity Identifier) — 20-значный код для юридических лиц в финансовой системе.
Интересные факты
- В реляционных базах данных Microsoft SQL Server идентификатор записи (ROWID) состоит из номера файла, номера страницы и номера строки на странице — всего 8 байт.
- Алгоритм Snowflake от Twitter генерирует 64-битные идентификаторы, которые включают метку времени, номер дата-центра, номер рабочего узла и порядковый номер в миллисекунде.
- В операционной системе Linux идентификатор процесса (PID) — это число от 1 до 32768 (по умолчанию), которое назначается каждому запущенному процессу.
- Самым длинным стандартным идентификатором является UUID (36 символов в строковом представлении), однако существуют и более длинные — например, хеш SHA-256 (64 символа).
Источники
- RFC 4122 — A Universally Unique IDentifier (UUID) URN Namespace. Internet Engineering Task Force, 2005.
- ISO/IEC 9834-8:2014 — Information technology — Procedures for the operation of object identifier registration authorities — Part 8: Generation of universally unique identifiers (UUIDs) and their use in object identifiers.
- ГОСТ Р ИСО/МЭК 19762-1-2011 — Информационные технологии. Автоматическая идентификация и сбор данных. Часть 1. Общие положения.
- Когаловский М.Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002.
- Дейт К.Дж. Введение в системы баз данных. — 8-е изд. — М.: Вильямс, 2005.
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных» (с изменениями).
- Постановление Правительства РФ от 01.03.2023 № 320 «Об утверждении требований к предустановленному программному обеспечению».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →