uuid-ossp

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 付録 F. 追加で提供されるモジュール | 早送り | 次のページ

# F.45. uuid-ossp

`uuid-ossp`モジュールは複数の標準的なアルゴリズムの1つを使用して汎用一意識別子（UUID）を生成する関数を提供します。 また、特殊なUUID定数を生成する関数も提供します。

本モジュールはhttp://www.ossp.org/pkg/lib/uuid/にあるOSSP UUIDライブラリに依存しています。

## F.45.1. `uuid-ossp`関数

UUIDを生成するために利用できる関数を表F-29に示します。関連する標準ITU-T Rec. X.667、ISO/IEC 9834-8:2005、RFC 4122はUUIDの生成に関して、バージョン番号1、3、4、5で識別される4つのアルゴリズムを規定します。 （バージョン2アルゴリズムは存在しません。） これらのアルゴリズムのそれぞれは、異なるアプリケーション群に適切でしょう。

表 F-29. UUID生成用関数

関数 | 説明
--- | ---
`uuid_generate_v1()` | この関数はバージョン1 UUIDを生成します。 これはコンピュータのMACアドレスとタイムスタンプが含まれます。 この種のUUIDは識別子を生成したコンピュータを識別できる情報や生成した時刻をあばくことができますので、ある種のセキュリティに注意すべきアプリケーションでは適しません。
`uuid_generate_v1mc()` | この関数は、コンピュータの実MACアドレスではなくランダムなマルチキャストMACアドレスを使用して、バージョン1 UUIDを作成します。
`uuid_generate_v3(namespace uuid, name text)` | この関数は、入力で指定されたnameを使用して、与えられた名前空間でバージョン3 UUIDを生成します。 名前空間は、表F-30で示す `uuid_ns_*()`関数で生成される特殊な定数の1つでなければなりません。(理論上これは何らかのUUIDになります。) nameは選択された名前空間内の識別子です。 例えば以下の様になります。
    SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org');
nameパラメータはMD5でハッシュ化されます。 このため、生成されたUUIDから平文が分かることはありません。 この方法によるUUIDの生成は不規則性はなく、また、環境に依存する要素もないため、再度生成されます。
`uuid_generate_v4()` | この関数はバージョン4 UUIDを生成します。 これは完全にランダムな数から生成されます。
`uuid_generate_v5(namespace uuid, name text)` | この関数はバージョン5 UUIDを生成します。 バージョン3 UUIDと似ていますが、ハッシュ方式としてSHA-1を使用することが異なります。 SHA-1がMD5より安全であることから、バージョン5はバージョン3に比べて好まれるはずです。

表 F-30. UUID定数を返す関数

`uuid_nil()` | "nil" UUID定数です。 これは実際のUUIDになることはありません。
`uuid_ns_dns()` | DNS名前空間をUUIDに選定した定数です。
`uuid_ns_url()` | URL名前空間をUUIDに選定した定数です。
`uuid_ns_oid()` | ISOオブジェクト識別子（OID）をUUIDに選定した定数です。 （これはASN.1のOIDに関するもので、PostgreSQLで使われるOIDとは関係ありません。）
`uuid_ns_x500()` | X.500区分名（DN）をUIDに選定した定数です。

## F.45.2. 作者

Peter Eisentraut `<peter_e@gmx.net>`

前のページ | ホーム | 次のページ
unaccent | 上に戻る | vacuumlo