2003年 2月16日 | ネイティブ・キー と マスター・キー | >> 目次 (テーマ ごと) |
(1) ネイティブ・キー (the native-key) (1) から (6) までは、「indexing」 編成を構成する キー であるが、(7) は 「indexing」 を編成しない キー である。
[ 注意 ]
まず、ネイティブ・キー と マスター・キー を対照して考えてみる。 それらの キー の違いを、以下の従業員 レコード を例にして解説する。 |
従業員番号 | 従業員名称 | 社会保険番号 |
01 | 佐藤正美 | 035 |
02 | 稲森いずみ | 011 |
03 | 佐藤恵美子 | 040 |
以上の データ に対して、以下の キー を定義する。
(1) 従業員番号を マスター・キー とする。
とすれば、データ は 「物理的には」 以下のように並ぶ。 |
従業員番号 | 従業員名称 | 社会保険番号 |
02 | 稲森いずみ | 011 |
01 | 佐藤正美 | 035 |
03 | 佐藤恵美子 | 040 |
新たな従業員の データ は マスター・キー (「一意性の検証」) が重複することになって、リジェクト (reject) される。 さて、プロダクト として RDB を作るときに、ネイティブ・キー と マスター・キー は、以下のように扱うことができる。
(1) ネイティブ・キー と マスター・キー を 1つの キーとして扱う。 ネイティブ・キー と マスター・キー が、どのように扱われているかは、それぞれの プロダクト を調べられたい。
1つの テーブル (ファイル) に対して、複数の キー を用意したとすれば、それらのなかの 1つが主 キー となって、ほかの キー は二次 キー となるが、主 キー として、マスター・キー が選らばれる。
(1) キー の値を変更することを認めるのか。
主 キー である マスター・キー は 「一意性の検証」 のために使われるので、以上の 2点は、いずれも、認められない。
とすれば、プロダクト として RDB を作るとき、「キー 値の変更」 と 「キー 値の重複」 という 2つの パラメータ を用意して、「yes」 または 「no」 (あるいは、「on」 と 「off」) を定義することを ユーザ に任せれば、1つの テーブル に対して、マスター・キー を、かならずしも、定義しないことがあり得る。
なぜなら、データ は、「row (レコード としてもよい) 全体として一意であればよい」 のであって、キー (および 「indexing」) は データ に対する アクセス 効率の論点であって、データ 解析 (論理 データ 設計) と キー の定義 (物理 データ 設計) を同時に実施して混同してはいけない。
次回は、「indexing」 について解説する。 |
<< もどる | ベーシックス | すすむ >> | |
データベースの基礎知識 |