質問

これら2つの頭字語が放り出されているのを見て、GUIDとUUIDに違いがあるかどうか疑問に思っていましたか?

役に立ちましたか?

解決

単純な答え違いはありません、それらは同じものです。それらを一意の値として使用される16バイト(128ビット)値として扱います。 Microsoft語ではGUIDと呼ばれますが、Microsoft語を使用しない場合はUUIDと呼びます。

UUID仕様の著者でさえ、Microsoftは彼らが同義語であると主張しています:

  • IETFの概要 RFC 4122 " A Universally Unique IDentifier(UUID)URN Namespace &quot ;:" UUID(Universally Unique IDentifier)のUniform Resource Name名前空間。GUID(Globally Unique IDentifier)とも呼ばれます。

  • ITU-T勧告X.667、ISOから/ IEC 9834-8:2004国際標準:" UUIDはグローバル一意識別子(GUID)としても知られていますが、この用語はこの勧告では使用されていません。"

  • そして、Microsoftもクレーム GUIDはUUID RFCで指定されます。" Microsoft WindowsプログラミングおよびWindowsオペレーティングシステムでは、[RFC4122]で指定されたグローバル一意識別子(GUID)は... )は、Windowsプロトコル仕様でGUIDの同義語として使用されることがあります。"

しかし、正解は、質問が「UUID」と言ったときの意味によって異なります...

最初の部分は、質問者が「UUID」と言っているときに考えているものに依存します。

Microsoftの主張は、すべてのUUIDがGUIDであることを暗示しています。しかし、すべてのGUIDは実際のUUIDですか?つまり、すべてのUUIDのセットは、すべてのGUIDのセットの適切なサブセットですか、それともまったく同じセットですか?

RFC 4122の詳細を見ると、4つの異なる「バリアント」があります。 UUIDの。これは主に、UUID仕様の作成でこれらの仕様がまとめられる前に、そのような16バイトの識別子が使用されていたためです。 RFC 4122 のセクション4.1.1から、4つのバリアント UUIDは次のとおりです。

  1. 予約済み、ネットワークコンピューティングシステムの下位互換性
  2. RFC 4122で指定された variant (そのうち5つのサブバリアントがあり、これらは「バージョン」と呼ばれます)
  3. 予約済み、Microsoft Corporationの下位互換性
  4. 将来の定義のために予約されています。

RFC 4122によると、すべてのUUID バリアントは「実際のUUID」であり、すべてのGUIDは実際のUUIDです。文字通りの質問に「GUIDとUUIDに違いはありますか」 RFC 4122 UUIDの答えは間違いなく「違いはありません」(ただし、下の2番目の部分が適用されます)。

しかし、すべてのGUIDがバリアント 2 UUIDであるわけではありません(たとえば、Microsoft COMにはバリアント3 UUIDであるGUIDがあります)。 「GUIDとバリアント2 UUIDに違いがある」という質問の場合、答えは「はい」になります。異なる場合もあります。質問をする人はおそらく variants について知らないでしょう。そして、彼らは単語「quot; UUID」を言うときに variant 2 UUIDだけを考えているかもしれません。 (例えば、彼らはUUIDのMACアドレス+時間と乱数アルゴリズム形式を漠然と知っています。これらは両方とも variant 2のバージョンです)。その場合、答えははいです。

そのため、答えは、「UUID」という言葉を言うときに、質問する人が何を考えているかにかかっています。バリアント2 UUID(それが認識している唯一のバリアントであるため)またはすべてのUUIDを意味しますか?

2番目の部分は、UUIDの定義として使用される仕様によって異なります。

それがわかりにくいと思う場合は、

他のヒント

GUIDは、MicrosoftによるUUID標準の実装です。

ウィキペディアごと:

  

GUIDという用語は通常、Microsoftの Universally Unique Identifier (UUID)標準の実装を指します。

同じウィキペディアの記事からの更新された引用:

  

RFC 4122自体は、UUIDが「GUIDとしても知られている」と述べています。これはすべて、「GUID」は、元々マイクロソフトが使用するUUIDのバリアントを指していましたが、単にUUIDの代替名になったことを示唆しています

そうでもない。 GUIDはMicrosoftを中心にしていますが、UUIDはより広く使用されています(たとえば、 urn:uuid: URNスキームやCORBAなど)。

GUIDは、UUIDと同じように必ずしも128ビット値ではない分野で長年使用されています。たとえば、 RSS仕様では、GUIDを任意の文字列に定義しています、それが一意である限り、「isPermalink」で使用している値がシンジケートされているアイテムへの単なるパーマリンクであることを指定する属性。

Microsoftの GUID のテキスト表現は、2つの中括弧 {} で囲まれたUUIDの形式にすることができます。

SQL ServerのGUIDとPostgreSQLのUUIDの違いの1つは大文字と小文字です。 SQL Serverは上位を出力し、PostgreSQLは下位を出力します。

16進値" a" " f"小文字として出力され、入力時には大文字と小文字が区別されません。 - rfc4122#section-3

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top