【完全入門】UUIDの仕様や種類についての改まった大切なお話!

【完全入門】初心者向けにUUIDの話!ゼロから始めて仕様確認
この記事は約7分で読めます。
3丁目オーナー
3丁目オーナー

今回はUUIDの説明じゃ

説明すること

初心者でもわかりやすい、イメージしやすい内容で下記のことを説明していきます!

  • UUIDを理解する
  • UUIDの種類を理解できる
  • UUIDの使い所を理解する

PR

AIと英会話レッスン【スピークエル】

スマリッジで変わる出逢い

フリーランスエンジニアに安心保証と豊富な案件紹介を【midworks】

自宅で始めて、年収1,300万円以上が可能【IBJ】

粗利90%以上の婚活ビジネス【IBJ】

全国送料無料!IT書、ビジネス書、資格書が豊富なSEshop

UUIDとは?

UUIDとは?

PR
スマリッジで変わる出逢い

概要・基本仕様

UUIDは「Universally Unique Identifier(ユニバーサルユニークアイデンティファイア)」の略称です。
これは、コンピューターシステムでオブジェクトを一意に識別するために使用される特別な文字列です。

なぜUUIDが重要かというと、ウェブサイトのユーザーアカウントを管理する際、一意なIDを持っていることで、アカウントを追跡したり、データベース内での関連付けを確実にすることができるんです

「d78e2e8b-1944-4a6a-b77c-1c9ab3a6cd9f」というようなランダムな文字列がUUIDです。
これは一意で、他のどんなデータでも同じになることはありません。

UUIDはデータベースやウェブサーバー、ネットワーク上など、さまざまな場面で使われており、
一意性が求められる場所で、頼りにされている特別な文字列なんですよ!

UUIDの種類

UUIDにはいくつかのバージョンがありますが、一般的によく使われるのは次の4つのバージョンです。

UUIDv1

タイムスタンプとMACアドレスを基に生成

このバージョンは、ネットワーク上の一意性を保証するためにタイムスタンプとMACアドレスを組み合わせて生成されます。
ただし、MACアドレスがプライバシー上の問題になる可能性があるため、セキュリティ上の懸念があります。

UUIDv2

DCEセキュリティオブジェクト

このバージョンはDCE (Distributed Computing Environment) によって使用されるセキュリティオブジェクトに基づいて生成されますが、ほとんど使用されていません。

UUIDv3

名前ベース

このバージョンは、名前と名前空間を基にして生成されます。
同じ名前空間であれば同じ名前に対しては常に同じUUIDが生成されます。

UUIDv4

ランダム

完全にランダムなデータに基づいて生成されます。
生成されるUUIDは一意性が高く、ほかのバージョンと比べて衝突の可能性が非常に低いため、一般的に最もよく使われています。

UUIDのユースケース

UUIDのユースケース

UUIDのユースケースは多岐にわたります。
以下にいくつかの代表的なケース別に詳しく説明します

データベースの主キー

データベースのテーブルに新しいレコードを追加する際に、一意な識別子としてUUIDを主キーとして使用することがあります。
これにより、レコード間の一意性が保証され、複製されることがなくなります。

URLの一意性

Webアプリケーションにおいて、URLの一部としてUUIDを使用することで、各リソースへの一意なアクセスが可能になります。
例えば、特定の記事のURLにUUIDを含めることで、同じタイトルの記事が存在しても正確に特定の記事にアクセスできるようになります。

トランザクションID

システム上で複数の操作を同時に実行する際に、各トランザクションに一意なトランザクションIDとしてUUIDを使用することで、トランザクションの追跡やエラーハンドリングが容易になります。

セッション管理

ウェブアプリケーションのセッション管理において、セッションIDとしてUUIDを使用することがあります。
これにより、セッションが一意であることが保証され、セッションハイジャックなどのセキュリティ上のリスクを軽減できます。

ファイル名の一意性

ファイルをアップロードする際に、ファイル名にUUIDを使用することで、同じファイル名のファイルが上書きされることを防止し、ファイルの一意性を保証します。

ファイルパス名の一意性

ファイルをアップロードする際に、ファイルパス名にUUIDを使用することで、フォルダ単位で一意性を保証します。

ユーザーID

ユーザーに割り振るIDにユーザーIDとしてUUIDを使用することことがあります。
これによりユーザーが一意であることを保証します。
また、ユーザーIDに使用することでデータベース、ファイル、ファイルパス様々なところでユーザーの紐づきを保証することができます。

UUIDの桁数

UUIDは通常、36桁の文字列で表現されます。
以下のような形式を持ちます

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

ここで、xは16進数の0からFまでの文字を表し、合計で32桁の16進数が含まれます。
ハイフン(-)を挟んで4つのグループに分かれており、各グループの文字数は8桁、4桁、4桁、12桁です。
これにより、UUIDは128ビットの数値で表現され、全世界で重複する可能性が非常に低い一意な識別子となります。

UUIDの生成

UUIDはランダムな値に基づいて一意な識別子を生成します。
生成方法はプログラム言語やライブラリによって異なりますが、多くのプログラミング言語では生成するための便利なライブラリや関数が提供されています。
これらのライブラリや関数を利用することで、簡単にUUIDを生成できます
例えば、JavaScriptであればuuiduuidv4といったライブラリを使用できます。

JavaScriptのライブラリを使った方法

// uuidライブラリをインポート
import { v1 as uuidv1, v4 as uuidv4 } from 'uuid';

// v1バージョンのUUIDを生成
const uuidV1 = uuidv1();
console.log(uuidV1); // 例: "6c84fb90-12c4-11e1-840d-7b25c5ee775a"

// v4バージョンのUUIDを生成
const uuidV4 = uuidv4();
console.log(uuidV4); // 例: "110ec58a-a0f2-4ac4-8393-c866d813b8d1"

ちなみに仕様的に下記の様になるようです。

  • UUIDのバージョン4は、一般的に16進数表現の4桁目の文字が4になります
    (例: xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx
  • UUIDの5桁目の文字は89ABのいずれかになります
    (例: xxxxxxxx-xxxx-4xxx-8xxx-xxxxxxxxxxxx

さいごに

UUIDは本当に重要です。よく使いますので覚えておいたほうがよいです。

寄付の依頼

もし、少しでもご参考になりましたらサイト運営への寄付をお願いします。
とても励みになります。

If you would like to help, please make a donation to the site management.
It is very encouraging.

BTC (ビットコイン) アドレス
35AfkHtN3paTC1iNVtHg6BDmCnHmffzQWM
DEEPコイン アドレス
0x43Dbe7F99b4A31bF184b98A8A814ADEC48FB789D
PR
PR

コメント

タイトルとURLをコピーしました