stringtranslate.com

Универсальный уникальный идентификатор

Универсальный уникальный идентификатор ( UUID ) — это 128-битная метка , используемая для информации в компьютерных системах. Термин « глобальный уникальный идентификатор» ( GUID ) также используется, в основном в системах Microsoft. [1]

При создании стандартными методами UUID для практических целей уникальны. Их уникальность не зависит от центрального регистрирующего органа или координации между создающими их сторонами, в отличие от большинства других схем нумерации. Хотя вероятность того, что UUID будет продублирован, не равна нулю, обычно она считается достаточно близкой к нулю, чтобы ею можно было пренебречь. [2] [3]

Таким образом, любой может создать UUID и использовать его для идентификации чего-либо с почти уверенностью в том, что идентификатор не дублирует тот, который уже был или будет создан для идентификации чего-то другого. Таким образом, информация, помеченная UUID независимыми сторонами, может впоследствии быть объединена в единую базу данных или передана по тому же каналу с незначительной вероятностью дублирования.

Принятие UUID широко распространено: многие вычислительные платформы поддерживают их создание и анализ их текстового представления.

История

В 1980-х годах компьютер Apollo первоначально использовал UUID в сетевой вычислительной системе (NCS). Позже Фонд открытого программного обеспечения (OSF) использовал UUID для своей распределенной вычислительной среды (DCE). Дизайн UUID DCE был частично основан на UUID NCS, [4] дизайн которого, в свою очередь, был вдохновлен ( 64-битными ) уникальными идентификаторами, определенными и повсеместно используемыми в Domain/OS , операционной системе , разработанной Apollo Computer. [ нужна ссылка ] Позже, [ когда? ] платформы Microsoft Windows приняли дизайн DCE как «глобальные уникальные идентификаторы» (GUID).

RFC  4122 зарегистрировал пространство имен URN для UUID и повторил предыдущие спецификации с тем же техническим содержанием. [1] Когда в июле 2005 года RFC  4122 был опубликован в качестве предложенного стандарта IETF , ITU также стандартизировал UUID на основе предыдущих стандартов и ранних версий RFC  4122.

Стандарты

UUID стандартизированы Фондом открытого программного обеспечения (OSF) как часть распределенной вычислительной среды (DCE). [5] [6]

UUID задокументированы в стандарте ISO / IEC 11578:1996 « Информационные технологии  – Взаимодействие открытых систем – Удаленный вызов процедур (RPC)», а в последнее время – в Рек. ITU-T Rec. Х.667 | ИСО / МЭК 9834-8:2014. [7]

Инженерная группа Интернета (IETF) опубликовала стандарт Standards-Track RFC  4122, [1] технически эквивалентный Рекомендации ITU-T Rec. Х.667 | ИСО/МЭК 9834-8. «Рабочая группа по пересмотру определений универсально уникальных идентификаторов» работает над обновлением, которое представит дополнительные версии. [8]

Двоичный формат провода

UUID — это 128-битная метка. Первоначально компания Apollo Computer разработала UUID в следующем формате: [4] [9]

Позже UUID был расширен за счет объединения устаревшего поля семейства с новым полем варианта. Поскольку в прошлом поле семейства использовало только значения в диапазоне от 0 до 13, было решено, что UUID, у которого старший бит установлен в 0, является устаревшим UUID. Это дает следующую таблицу:

Устаревший UUID Apollo NCS имеет формат, описанный в предыдущей таблице. Вариант UUID OSF DCE описан в RFC  4122. Вариант UUID Microsoft COM/DCOM описан в документации Microsoft.

Варианты

Поле варианта указывает формат UUID (а в случае устаревшего UUID также семейство адресов, используемое для поля узла). Определены следующие варианты:

Версии

Вариант OSF DCE определяет пять «версий» стандарта, и каждая версия может быть более подходящей, чем другие, в конкретных случаях использования. Версия указывается значением старшего полубайта (старшие 4 бита или старшая шестнадцатеричная цифра) 7-го байта UUID. В шестнадцатеричном формате это символ после второго тире. Например, UUID — это версия 4, поскольку цифра после второго тире — 4 в .9c5b94b1-35ad-49bb-b118-8e8fc24abf80...-49bb-...

Версия 1 (дата-время и MAC-адрес)

Версия 1 объединяет 48-битный MAC-адрес «узла» (то есть компьютера, генерирующего UUID) с 60-битной меткой времени, представляющей собой количество 100- наносекундных интервалов с полуночи 15 октября 1582 года по всемирному координированному времени (UTC). ), дата, когда григорианский календарь был впервые принят за пределами Католической церкви и Папской области. В RFC 4122 указано, что значение времени меняется примерно с 3400 года нашей эры, [1] :  3 , в зависимости от используемого алгоритма, что подразумевает, что 60-битная временная метка является величиной со знаком. Однако некоторые программы, такие как библиотека libuuid, рассматривают временную метку как беззнаковую, помещая время перехода в 5623 год нашей эры. [10] Время пролонгации, определенное в Рекомендации МСЭ-Т. X.667 — это 3603 год нашей эры. [11] :  в

13-битная или 14-битная «унифицирующая» тактовая последовательность расширяет временную метку для обработки случаев, когда тактовая частота процессора движется недостаточно быстро или когда на узел имеется несколько процессоров и генераторов UUID. Когда UUID генерируются быстрее, чем могут идти системные часы, младшие биты полей метки времени могут генерироваться путем их увеличения каждый раз, когда генерируется UUID, для имитации метки времени с высоким разрешением. Поскольку каждый UUID версии 1 соответствует одной точке пространства (узлу) и времени (интервалам и последовательности часов), вероятность того, что два правильно сгенерированных UUID версии 1 непреднамеренно окажутся одинаковыми, практически равна нулю. Поскольку общая длина последовательности времени и часов составляет 74 бита, 2 74 (1,8 × 1022 или 18 секстиллионов) UUID версии 1 могут быть сгенерированы для каждого идентификатора узла с максимальной средней скоростью 163 миллиарда в секунду на каждый идентификатор узла. [1]

В отличие от других версий UUID, UUID версии 1 и -2, основанные на MAC-адресах сетевых карт , в своей уникальности частично полагаются на идентификатор, выданный центральным органом регистрации, а именно на часть MAC-адреса , содержащую уникальный идентификатор организации (OUI). , который выдается IEEE производителям сетевого оборудования. [12] Уникальность UUID версий 1 и 2, основанных на MAC-адресах сетевых карт, также зависит от того, правильно ли производители сетевых карт назначают уникальные MAC-адреса своим картам, что, как и другие производственные процессы, подвержено ошибкам. Кроме того, некоторые операционные системы позволяют конечному пользователю настраивать MAC-адрес, особенно OpenWRT . [13]

Использование MAC-адреса сетевой карты узла для идентификатора узла означает, что UUID версии 1 можно отследить до компьютера, который его создал. Иногда документы можно отследить до компьютеров, на которых они были созданы или отредактированы, с помощью UUID, встроенных в них с помощью программного обеспечения для обработки текста . Эта дыра в конфиденциальности была использована при поиске создателя вируса Melissa . [14]

RFC 4122 позволяет заменять MAC-адрес в UUID версии 1 (или 2) случайным 48-битным идентификатором узла либо потому, что у узла нет MAC-адреса, либо потому, что его нежелательно раскрывать. В этом случае RFC требует, чтобы младший бит первого октета идентификатора узла был установлен в 1. [1] Это соответствует биту многоадресной рассылки в MAC-адресах, и его установка служит для различения UUID, где идентификатор узла генерируется случайным образом из UUID на основе MAC-адресов сетевых карт, которые обычно имеют одноадресные MAC-адреса. [1]

Версия 2 (дата, время и MAC-адрес, версия безопасности DCE)

RFC 4122 резервирует версию 2 для UUID «безопасности DCE»; но он не дает никаких подробностей. По этой причине во многих реализациях UUID версия 2 отсутствует. Однако спецификация UUID версии 2 предоставляется спецификацией служб аутентификации и безопасности DCE 1.1. [6]

UUID версии 2 аналогичны версии 1, за исключением того, что младшие 8 бит тактовой последовательности заменяются номером «локального домена», а младшие 32 бита временной метки заменяются целочисленным идентификатором, имеющим смысл в пределах указанного локальный домен. В системах POSIX номера локального домена 0 и 1 предназначены для идентификаторов пользователей ( UID ) и идентификаторов групп ( GID ) соответственно, а другие номера локального домена определяются сайтом. [6] В системах, отличных от POSIX, все номера локальных доменов определяются сайтом.

Возможность включения 40-битного домена/идентификатора в UUID требует компромисса. С одной стороны, 40 бит позволяют использовать около 1 триллиона значений домена/идентификатора на каждый идентификатор узла. С другой стороны, при усечении значения часов до 28 старших битов по сравнению с 60 битами в версии 1, часы в UUID версии 2 будут «тикать» только один раз каждые 429,49 секунды, что чуть больше 7 минут, поскольку в отличие от каждых 100 наносекунд в версии 1. А при тактовой последовательности всего 6 бит по сравнению с 14 битами в версии 1, за 7-минутный такт может быть сгенерировано только 64 уникальных UUID для каждого узла/домена/идентификатора по сравнению с 16 384 значения последовательности тактового сигнала для версии 1. [15] Таким образом, версия 2 может не подходить для случаев, когда требуются UUID для каждого узла/домена/идентификатора со скоростью, превышающей примерно один каждые семь минут.

Версии 3 и 5 (на основе имени пространства имен)

UUID версий 3 и 5 генерируются путем хеширования идентификатора и имени пространства имен. Версия 3 использует MD5 в качестве алгоритма хеширования, а версия 5 использует SHA-1 . [1]

Идентификатор пространства имен сам по себе является UUID. Спецификация предоставляет UUID для представления пространств имен для URL-адресов , полных доменных имен , идентификаторов объектов и отличительных имен X.500 ; но любой желаемый UUID может использоваться в качестве указателя пространства имен.

Чтобы определить UUID версии 3, соответствующий данному пространству имен и имени, UUID пространства имен преобразуется в строку байтов, объединяется с входным именем, а затем хешируется с помощью MD5, что дает 128 бит. Затем 6 или 7 бит заменяются фиксированными значениями, 4-битной версией (например, 0011 2 для версии 3) и 2- или 3-битным «вариантом» UUID (например, 10 2 , обозначающим UUID RFC 4122, или 110 2). указывающий устаревший GUID Microsoft). Поскольку таким образом заранее определены 6 или 7 бит, только 121 или 122 бита способствуют уникальности UUID.

UUID версии 5 аналогичны, но вместо MD5 используется SHA-1. Поскольку SHA-1 генерирует 160-битные дайджесты, перед заменой битов версии и варианта дайджест усекается до 128 бит.

UUID версии 3 и версии 5 обладают свойством, согласно которому одно и то же пространство имен и имя будут сопоставлены с одним и тем же UUID. Однако ни пространство имен, ни имя не могут быть определены по UUID, даже если один из них указан, кроме как методом перебора. RFC 4122 рекомендует версию 5 (SHA-1) вместо версии 3 (MD5) и предостерегает от использования UUID любой версии в качестве учетных данных безопасности. [1]

Версия 4 (случайная)

UUID версии 4 генерируется случайным образом. Как и в других UUID, для обозначения версии 4 используются 4 бита, а для обозначения варианта — 2 или 3 бита (10 2 или 110 2 для вариантов 1 и 2 соответственно). Таким образом, для варианта 1 (то есть большинства UUID) случайный UUID версии 4 будет иметь 6 заранее определенных битов варианта и версии, оставляя 122 бита для случайно сгенерированной части, всего 2 122 , или 5,3 × 10.36 (5,3  ундециллиона ) возможных UUID версии 4 варианта 1. Существует вдвое меньше возможных UUID версии 4 варианта 2 (устаревшие GUID), поскольку доступно на один случайный бит меньше, а для варианта используется 3 бита.


Специальные UUID

«Нулевой» UUID, особый случай, — это UUID 00000000-0000-0000-0000-000000000000; то есть все биты установлены в ноль. [1]

«Максимальный» UUID, особый случай, — это UUID FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF; то есть все биты установлены в единицу.

Текстовое представление

Поскольку UUID представляет собой 128-битную метку, его можно представить в разных форматах.

В большинстве случаев UUID представлены в виде шестнадцатеричных значений. Наиболее часто используемый формат — 8-4-4-4-12, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxгде каждый xпредставляет собой 4 бита. Другими известными форматами являются формат 8-4-4-4-12 с фигурными скобками, {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}, как в системах Microsoft, например Windows, или xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, где все дефисы удалены. В некоторых случаях также возможно использовать xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxпрефикс «0x» или суффикс «h» для обозначения шестнадцатеричных значений. Формат с дефисами был введен в новой системе вариантов. До этого устаревший формат Apollo использовал немного другой формат: 34dc23469000.0d.00.00.7c.5f.00.00.00. Первая часть — это время (time_high и time_low вместе взятые). Зарезервированное поле пропускается. Поле семейства идет сразу после первой точки, поэтому в данном случае 0d(13 в десятичном формате) для DDS (службы распространения данных) . Остальные части, разделенные точкой, представляют собой байты узла.

Обычно предпочтительным форматом является строчная форма шестнадцатеричных значений. В частности, в некоторых контекстах, например, определенных в Рекомендации МСЭ-Т. X.667, при создании текста требуются строчные буквы, но версия в верхнем регистре также должна быть принята.

UUID может быть представлен как 128-битное целое число. Например, UUID 550e8400-e29b-41d4-a716-446655440000также может быть представлен как 113059749145936325402354257176981405696. Обратите внимание, что можно иметь как знаковые, так и беззнаковые значения, если первый бит UUID установлен в 1.

UUID может быть представлен как 128-битное двоичное число . Например, UUID 550e8400-e29b-41d4-a716-446655440000также может быть представлен как 010101010000111010000100000000001110001010011011010000011101010010100111000101100100010001100110010101010100010. 00000000000000000.

RFC  4122 зарегистрировал пространство имен «uuid». Это позволяет создавать URN из UUID, например urn:uuid:550e8400-e29b-41d4-a716-446655440000. Для этого используется обычный формат 8-4-4-4-12. Также возможно создать OID URN из UUID, например urn:oid:2.25.113059749145936325402354257176981405696. В этом случае используется десятичный формат без знака. UUID «uuid» рекомендуется использовать вместо URN «oid».

Кодирование

Двоичное кодирование UUID варьируется в зависимости от системы. UUID варианта 1, в настоящее время наиболее распространенный вариант, закодированы в формате с прямым порядком байтов . Например, 00112233-4455-6677-8899-aabbccddeeffкодируется как байты 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff. [16] [17]

UUID варианта 2, исторически использовавшиеся в библиотеках Microsoft COM/OLE , используют формат с прямым порядком байтов , но выглядят со смешанным порядком байтов : первые три компонента UUID имеют прямой порядок байтов , а последние два — с прямым порядком байтов из-за отсутствия байтовых тире. при форматировании как строка. [18] Например, 00112233-4455-6677-8899-aabbccddeeffкодируется как байты 33 22 11 00 55 44 77 66 88 99 aa bb cc dd ee ff. [19] [20]

Столкновения

Коллизия возникает, когда один и тот же UUID генерируется более одного раза и назначается разным референтам. В случае стандартных UUID версий 1 и 2, использующих уникальные MAC-адреса сетевых карт, возникновение коллизий маловероятно, а вероятность увеличивается только в том случае, если реализация непреднамеренно или намеренно отличается от стандартов.

В отличие от UUID версии 1 и версии 2, сгенерированных с использованием MAC-адресов, с UUID версии 1 и -2, которые используют случайно сгенерированные идентификаторы узлов, UUID версий 3 и 5 на основе хэша, а также случайные UUID версии 4, коллизии могут возникать даже без проблем с реализацией, хотя и с вероятностью настолько малой, что ее обычно можно игнорировать. Эту вероятность можно точно вычислить на основе анализа проблемы дня рождения . [21]

Например, количество случайных UUID версии 4, которые необходимо сгенерировать, чтобы иметь 50% вероятность хотя бы одного столкновения, составляет 2,71 квинтиллиона и рассчитывается следующим образом: [22]

Это число эквивалентно генерации 1 миллиарда UUID в секунду в течение примерно 86 лет. Файл, содержащий такое количество UUID (по 16 байт на UUID), будет иметь размер около 45  эксабайт .

Наименьшее количество UUID версии 4, которое необходимо сгенерировать, чтобы вероятность обнаружения коллизии была равна p , аппроксимируется формулой

Таким образом, вероятность найти дубликат среди 103 триллионов UUID версии 4 составляет один на миллиард.

Использование

Значительные области применения включают инструменты пользовательского пространства файловой системы ext2 / ext3 / ext4 ( e2fsprogs использует libuuid, предоставленный util-linux ), LVM , зашифрованные разделы LUKS , GNOME , KDE и macOS , [23] большинство из которых заимствованы из оригинальной реализации Теодора Ц. 'о .. [10] Одним из вариантов использования UUID в Solaris (с использованием реализации Open Software Foundation) является идентификация работающего экземпляра операционной системы с целью объединения данных аварийного дампа с событием управления сбоями в случае паники ядра. [24] «Метка раздела» и «UUID раздела» хранятся в суперблоке . Они оба являются частью файловой системы, а не раздела. Например, ext2–4 содержат UUID, а NTFS или FAT32 — нет. Суперблок является частью файловой системы и, таким образом, полностью содержится в разделе, поэтому при этом dd if=/dev/sda1 of=/dev/sdb1sda1 и sdb1 остаются с одной и той же меткой и UUID.

В объектной модели компонентов Microsoft (COM) используется несколько разновидностей GUID :

UUID обычно используются в качестве уникального ключа в таблицах базы данных . Функция NEWID в Microsoft SQL Server версии 4 Transact-SQL возвращает стандартные случайные UUID версии 4, а функция NEWSEQUENTIALID возвращает 128-битные идентификаторы, аналогичные UUID, которые должны возрастать последовательно до следующей перезагрузки системы. [28] Функция SYS_GUID базы данных Oracle не возвращает стандартный GUID, несмотря на имя. Вместо этого он возвращает 16-байтовое 128-битное значение RAW на основе идентификатора хоста и идентификатора процесса или потока, что чем-то похоже на GUID. [29] PostgreSQL содержит тип данных UUID [30] и может генерировать большинство версий UUID за счет использования функций из модулей. [31] [32] MySQL предоставляет функцию UUID , которая генерирует стандартные UUID версии 1. [33] Случайный характер стандартных UUID версий 3, 4 и 5, а также порядок полей в стандартных версиях 1 и 2 могут создать проблемы с локальностью базы данных или производительностью, когда UUID используются в качестве первичных ключей . Например, в 2002 году Джимми Нильссон сообщил о значительном улучшении производительности Microsoft SQL Server, когда UUID версии 4, используемые в качестве ключей, были изменены и включали неслучайный суффикс, основанный на системном времени. Этот так называемый подход «COMB» (комбинированный временной GUID) сделал UUID нестандартными и значительно увеличил вероятность дублирования, как признал Нильссон, но Нильссон требовал только уникальности внутри приложения. [34] Переупорядочивая и кодируя UUID версий 1 и 2 так, чтобы временная метка стояла первой, можно предотвратить потерю производительности при вставке. [35]

Некоторые веб-фреймворки, такие как Laravel , поддерживают UUID «сначала отметка времени», которые можно эффективно хранить в индексированном столбце базы данных. Это создает UUID COMB с использованием формата версии 4, но первые 48 бит составляют метку времени, расположенную, как в UUIDv1. [36] [37] Более конкретные форматы, основанные на идее COMB UUID, включают:

Смотрите также

Рекомендации

  1. ^ abcdefghij Лич, П.; Миллинг, М.; Зальц, Р. (2005). Пространство имен URN универсально уникального идентификатора (UUID). Рабочая группа по интернет-инжинирингу . дои : 10.17487/RFC4122 . РФК 4122 . Проверено 17 января 2017 г.
  2. ^ «Универсально уникальные идентификаторы (UUID)» . Н2 . Проверено 21 марта 2021 г.
  3. ^ Рекомендация ITU-T X.667: Генерация и регистрация универсально уникальных идентификаторов (UUID) и их использование в качестве компонентов идентификатора объекта ASN.1 . Стандарт. Октябрь 2012.
  4. ^ Аб Зан, Лиза; Дайнин, Теренс; Лич, Пол; Мартин, Элизабет; Мишкин, Натаниэль; Пато, Джозеф; Вайант, Джеффри (1990). Сетевая вычислительная архитектура . Прентис Холл . п. 10. ISBN 978-0-13-611674-5.
  5. ^ «DCE 1.1: Удаленный вызов процедур» . Открытая группа. 1997.
  6. ^ abc «DCE 1.1: Службы аутентификации и безопасности». Открытая группа. 1997.
  7. ^ «17-я Исследовательская комиссия ITU-T - Рекомендации по идентификаторам объектов (OID) и органам регистрации» . МСЭ.int . Проверено 28 марта 2023 г.
  8. ^ «Пересмотр определений универсально уникальных идентификаторов (uuidrev)» . Проверено 30 мая 2023 г.
  9. ^ ab "uuid.c".
  10. ^ ab «ext2/e2fsprogs.git — утилиты пользовательского пространства файловой системы Ext2/3/4». Кернел.орг . Проверено 9 января 2017 г.
  11. ^ «Рекомендация ITU-T X.667» . www.itu.int . Октябрь 2012 года . Проверено 19 декабря 2020 г.
  12. ^ «Регистрационный орган». Ассоциация стандартов IEEE .
  13. ^ «Настройка MAC-адреса» . OpenWRT . 15 сентября 2021 г.
  14. ^ Райтер, Люк (2 апреля 1999 г.). «Отслеживание альтер-эго Мелиссы». ЗДНет . Проверено 16 января 2017 г.
  15. ^ Кучлинг, А.М. «Что нового в Python 2.5». Python.org . Проверено 23 января 2016 г.
  16. ^ Стил, Ник. «Разрушение UUID».
  17. ^ «Объяснение версий UUID» .
  18. Чен, Раймонд (28 сентября 2022 г.). «Почему COM выражает GUID как с прямым порядком байтов, так и с прямым порядком байтов? Почему он не может просто выбрать одну из сторон и придерживаться ее?». Старая новая вещь . Проверено 31 октября 2022 г.
  19. ^ Лич, Пол. «UUID и GUID».
  20. ^ "Метод Guid.ToByteArray" .
  21. ^ Иисус, Пауло; Бакеро, Карлос; Алмаейда, Пауло. «Генерация идентификаторов в мобильных средах» (PDF) . Репозиторий.Sdum.Uminho.pt .
  22. ^ Матис, Фрэнк Х. (июнь 1991 г.). «Общая проблема дня рождения». Обзор СИАМ . 33 (2): 265–270. CiteSeerX 10.1.1.5.5851 . дои : 10.1137/1033051. ISSN  0036-1445. JSTOR  2031144. OCLC  37699182. 
  23. ^ gen_uuid.c в Apple Libc-391, что соответствует Mac OS X 10.4.
  24. ^ «Реструктуризация аварийного дампа в Solaris» . Блоги.Oracle.com . Оракул . Проверено 9 января 2017 г.
  25. ^ «Указатели интерфейса и интерфейсы». Центр разработки для Windows — технологии настольных приложений . Майкрософт . Проверено 15 декабря 2015 г. Вы ссылаетесь на интерфейс во время выполнения с помощью глобального уникального идентификатора интерфейса ( IID ). Этот IID , который является конкретным экземпляром глобального уникального идентификатора ( GUID ), поддерживаемого COM, позволяет клиенту точно спросить объект, поддерживает ли он семантику интерфейса, без ненужных накладных расходов и без путаницы, которая может возникнуть в системе. от наличия нескольких версий одного и того же интерфейса с одним и тем же именем.
  26. ^ «Регистрация библиотеки типов». Сеть разработчиков Microsoft . Майкрософт . Проверено 15 декабря 2015 г.
  27. ^ «Классификация по возможностям компонентов». Центр разработки для Windows — технологии настольных приложений . Майкрософт . Проверено 15 декабря 2015 г. Список CATID и удобочитаемых имен хранится в хорошо известном месте реестра.
  28. ^ "NEWSEQUENTIALID (Transact-SQL)" . Сеть разработчиков Microsoft . Майкрософт . 8 августа 2015 года . Проверено 14 января 2017 г.
  29. ^ «Справочник по SQL базы данных Oracle» . Оракул .
  30. ^ «Раздел 8.12 Тип UUID» . Документация PostgreSQL 9.4.10 . Группа глобального развития PostgreSQL. 13 февраля 2020 г.
  31. ^ "uuid-ossp". PostgreSQL: Документация: 9.6 . Группа глобального развития PostgreSQL. 12 августа 2021 г.
  32. ^ "pgcrypto". PostgreSQL: Документация: 9.6 . Группа глобального развития PostgreSQL. 12 августа 2021 г.
  33. ^ «Раздел 13.20 Прочие функции» . Справочное руководство по MySQL 5.7 . Корпорация Оракл .
  34. Нильссон, Джимми (8 марта 2002 г.). «Стоимость GUID как первичных ключей». ИнформИТ . Проверено 20 июня 2012 г.
  35. ^ «Хранение значений UUID в MySQL». Перкона. 19 декабря 2014 г. Архивировано из оригинала 29 ноября 2020 г. . Проверено 10 февраля 2021 г.
  36. ^ «Помощники — Laravel — PHP Framework для веб-мастеров» . Ларавел.com .
  37. Кабрера, Итало Баэса (31 января 2020 г.). «Laravel: загадочный «Упорядоченный UUID»». Середина .
  38. ^ «Универсально уникальный лексикографически сортируемый идентификатор» . Гитхаб . УЛИД. 10 мая 2021 г.
  39. ^ Дэвис, Кайзер Р.; Пибоди, Брэд (5 сентября 2023 г.). "draft-ietf-uuidrev-rfc4122bis-11". www.tools.ietf.org .

Внешние ссылки