2003年 5月16日 | キー の系統樹 | >> 目次 (テーマごと) |
主な キー としては、以下のような キー があることを前述した (192 ページを参照されたい)。
(1) ネイティブ・キー (the native-key) (1) から (6) までは、「indexing」 編成を構成する キー であるが、(7) は 「indexing」 を編成しない キー である。
以上の キー のなかで、唯一、不可欠の キー は ネイティブ・キー である。 ネイティブ・キー 以外の キー は、RDB に対して 「アクセス の効率を図るための外付けの キー」 であって、RDB の internals とは無関係である。したがって、データ 設計の段階において、マスター・キー を使って 「一意性の検証」 を前提して データ を設計することは避けなければならない。なぜなら、データ は全体 (row) の値が一意であれば良いのであって、アクセス の効率はべつの論点である。
flat-file に対しては、マスター・キー と一般 キー の関係が primary と secondary という関係にはならない。キー は、すべて、対等の キー である (duplicate-master-key = yes, change-master-key = yes)。そして、一意性を検証したいのであれば、1つの テーブル に対して 1つ (one and only) の マスター・キー を一般 キー のなかから生成することができる(duplicate-master-key = NO, change-master-key = NO)。
クラスター・キー は物理的な再編成のための キー であるから、データ は、すでに、ネイティブ・キー を前提にして物理的に配置されているので、クラスター・キー は ネイティブ・キー を前提にして生成される。 ヌル・キー は キー の値をヌル値にできる キー であるが、ネイティブ・キー および マスター・キー に対して ヌル (null) を代入することはできない。したがって、ヌル・キー は一般 キー に対して適用される。
[ 参考 ]
以上の キー を使って indexing が編成されるが、indexing は B-tree 構造を基本形として、VSAM 式と inverted 式があることは前述した。
ハッシュ・キー は indexing ではないので──しかも、パフォーマンス が良いので──、RDB の internals に適用することができる。たとえば、デッドロック を回避するために、データ の アクセス を監視する内部 テーブル には ハッシュ・キー が使われる。
以上に述べたことをまとめれば、
以上が 「キー の系統樹」 である。 |
indexing と hashing | ||
indexing | hashing | |
VSAM 式 | inverted 式 |
データ・アクセス の効率 | ||
マスター・キー | 一般キー |
データの物理的配置 | ||
ネイティブ・キー | クラスター・キー |
<< もどる | ベーシックス | すすむ >> | |
データベースの基礎知識 |