Saya melihat 2 akronim ini dilemparkan, dan saya bertanya-tanya apakah ada perbedaan antara GUID dan UUID?
Saya melihat 2 akronim ini dilemparkan, dan saya bertanya-tanya apakah ada perbedaan antara GUID dan UUID?
Jawaban:
The jawaban sederhana adalah: tidak ada perbedaan , mereka adalah hal yang sama. Perlakukan mereka sebagai nilai 16 byte (128 bit) yang digunakan sebagai nilai unik. Dalam Microsoft-Speak mereka disebut GUID, tetapi menyebutnya sebagai UUID ketika tidak menggunakan Microsoft-Speak.
Bahkan penulis spesifikasi UUID dan Microsoft mengklaim mereka adalah sinonim:
Dari pengantar IETF RFC 4122 " Pengidentifikasi Unik Universal (UUID) URN Namespace ": "namespace Nama Sumber Daya Seragam untuk UUID (Pengenal Unik Unik), juga dikenal sebagai GUID (Pengidentifikasi Unik Global)."
Dari Rekomendasi Internasional ITU-T X.667, Standar Internasional ISO / IEC 9834-8: 2004 : "UUID juga dikenal sebagai Pengidentifikasi Unik Global (GUID), tetapi istilah ini tidak digunakan dalam Rekomendasi ini."
Dan Microsoft bahkan mengklaim GUID ditentukan oleh UUID RFC: "Dalam pemrograman Microsoft Windows dan sistem operasi Windows, pengidentifikasi unik global (GUID), sebagaimana ditentukan dalam [RFC4122], adalah ... Istilah pengidentifikasi unik universal (UUID ) terkadang digunakan dalam spesifikasi protokol Windows sebagai sinonim untuk GUID. "
Tetapi jawaban yang benar tergantung pada apa artinya pertanyaan itu ketika mengatakan "UUID" ...
Bagian pertama tergantung pada apa yang dipikirkan penanya ketika mereka mengatakan "UUID".
Klaim Microsoft menyiratkan bahwa semua UUID adalah GUID. Tetapi apakah semua GUID benar-benar UUID? Yaitu, apakah set semua UUID hanya subset yang tepat dari set semua GUID, atau apakah set yang sama persis?
Melihat rincian RFC 4122, ada empat "varian" UUID yang berbeda. Ini sebagian besar karena pengidentifikasi 16 byte tersebut digunakan sebelum spesifikasi tersebut disatukan dalam pembuatan spesifikasi UUID. Dari bagian 4.1.1 dari RFC 4122 , empat varian UUID adalah:
Menurut RFC 4122, semua varian UUID adalah "UUID nyata", maka semua GUID adalah UUID nyata. Untuk pertanyaan literal "apakah ada perbedaan antara GUID dan UUID" jawabannya pasti tidak untuk RFC 4122 UUID: tidak ada perbedaan (tetapi tergantung pada bagian kedua di bawah).
Tetapi tidak semua GUID adalah varian 2 UUID (mis. Microsoft COM memiliki GUID yang merupakan varian 3 UUID). Jika pertanyaannya adalah "apakah ada perbedaan antara GUID dan varian 2 UUID", maka jawabannya adalah ya - mereka bisa berbeda. Seseorang yang mengajukan pertanyaan mungkin tidak tahu tentang varian dan mereka mungkin hanya memikirkan varian 2 UUID ketika mereka mengatakan kata "UUID" (misalnya mereka secara samar-samar mengetahui alamat MAC + waktu dan bentuk algoritma acak nomor UUID, yang keduanya versi dari varian 2). Dalam hal ini, jawabannya adalah ya berbeda .
Jadi jawabannya, sebagian, tergantung pada apa yang dipikirkan orang yang bertanya ketika mereka mengucapkan kata "UUID". Apakah maksudnya varian 2 UUID (karena itu adalah satu-satunya varian yang mereka ketahui) atau semua UUID?
Bagian kedua tergantung pada spesifikasi mana yang digunakan sebagai definisi UUID.
Jika Anda berpikir itu membingungkan, baca ITU-T X.667 ISO / IEC 9834-8: 2004 yang seharusnya disejajarkan dan sepenuhnya kompatibel secara teknis dengan RFC 4122 . Ini memiliki kalimat tambahan dalam Klausul 11.2 yang mengatakan, "Semua UUID yang sesuai dengan Rekomendasi ini | Standar Internasional harus memiliki bit varian dengan bit 7 dari oktet 7 set ke 1 dan bit 6 dari oktet 7 set ke 0". Yang berarti bahwa hanya varian 2 UUID yang sesuai dengan Standar tersebut (kedua nilai bit itu berarti varian 2). Jika itu benar, maka tidak semua GUID memenuhi UUID ITU-T / ISO / IEC, karena ITID UUU ITU-T / ISO / IEC yang sesuai hanya dapat menjadi nilai varian 2.
Oleh karena itu, jawaban sebenarnya juga tergantung pada spesifikasi UUID yang ditanyakan. Dengan asumsi kita jelas berbicara tentang semua UUID dan bukan hanya varian 2 UUID: tidak ada perbedaan antara GUID dan UUET IETF, tapi ya perbedaan antara GUID dan mematuhi UUID ITU-T / ISO / IEC!
Pengkodean biner bisa berbeda
Ketika dikodekan dalam biner (sebagai lawan dari format teks yang dapat dibaca manusia), GUID dapat disimpan dalam struktur dengan empat bidang berbeda sebagai berikut. Format ini berbeda dari standar UUID hanya dalam urutan byte dari 3 bidang pertama.
Bits Bytes Name Endianness Endianness
(GUID) RFC 4122
32 4 Data1 Native Big
16 2 Data2 Native Big
16 2 Data3 Native Big
64 8 Data4 Big Big
GUID adalah implementasi Microsoft dari standar UUID.
Per Wikipedia :
Istilah GUID biasanya mengacu pada penerapan Microsoft terhadap standar Pengenal Unik Dunia (UUID).
Kutipan yang diperbarui dari artikel Wikipedia yang sama:
RFC 4122 sendiri menyatakan bahwa UUID "juga dikenal sebagai GUID". Semua ini menunjukkan bahwa "GUID", sementara awalnya merujuk pada varian UUID yang digunakan oleh Microsoft, telah menjadi hanya nama alternatif untuk UUID ...
The term "GUID" typically refers to various implementations of the universally unique identifier (UUID) standard.
Tidak juga. GUID lebih Microsoft-sentris sedangkan UUID digunakan lebih luas (misalnya, seperti dalam urn: uuid: skema URN, dan di CORBA).
GUID telah lama digunakan di area yang tidak memiliki nilai 128-bit dengan cara yang sama dengan UUID. Misalnya, spesifikasi RSS mendefinisikan GUID sebagai string yang Anda pilih, asalkan unik, dengan atribut "isPermalink" untuk menentukan bahwa nilai yang Anda gunakan hanyalah tautan permanen kembali ke item yang disindikasikan.
GUID
Representasi tekstual Microsoft dapat berupa UUID yang dikelilingi oleh dua kurung kurawal {}
.
Satu perbedaan antara GUID di SQL Server dan UUID di PostgreSQL adalah huruf besar; Output SQL Server lebih tinggi sementara output PostgreSQL lebih rendah.
Nilai heksadesimal "a" hingga "f" adalah output sebagai karakter huruf kecil dan tidak sensitif huruf pada input. - rfc4122 # section-3