2005年 2月16日 | 認知番号 (identifier) と キー | >> 目次 (テーマ ごと) |
● QUESTION | 認知番号は、キー ではないのか。 | |
▼ ANSWER | キー ではあるが、indexing 用の 「一意性」 を示す マスター・キー ではない。 | |
2010年 3月 1日 補遺 |
キー (key) は、ふつう、レコード を認知するための コード (あるいは、語) のことを云い、そして、「index key」 と言えば、任意の レコード (インスタンス) を索引きするために使われる 1つの フィールド を云う。任意の レコード (インスタンス) を 「一意に」 示すために使われる 「index key」 を、「プライマリ・キー (the primary key)」 とも云う。「プライマリ・キー」 は、(「マスター・キー(the master key)」 とも云われ、) 「1つ(以上)の」 データ 項目を使って生成される。キー を構成する (1つ以上の) データ 項目を、「key data element(s)」 と云う。 「primary」 があれば、対概念として、「secondary」 がある。「セカンダリ・キー(secondary keys)」 は、レコード (インスタンス) を 「一意に」 示す訳ではない。言い換えれば、1つ以上の レコード (インスタンス) が、同じ キー 値をもつことは起こり得る。「セカンダリ・キー」 は、ふつう、ファイル (レコード を包摂する概念) とか サブセット などを調べるために使われる。たとえば、「すべての従業員」 とか 「2005年度入社の従業員」 などのように。したがって、「セカンダリ・キー」 として、(一意的な認知番号以外の) アトリビュート の値が使われる。 「存在論(関係主義的存在論)」 の観点から言えば、世の中には、「同じ個体 (インスタンス)はない」 ということが前提になっている。したがって、それぞれの個体は、記号化され得る──言い換えれば、一意的な認知番号 (the unique identifier) を付与することができる。つまり、それぞれの個体は、一意的な キー (the primary key) を付与することができる。したがって、認知番号 (identifier) は、構文論のなかでは、「一意的」 である、として良い。
さて、意味論の観点からすれば、記号と事実的対象との対応 (指示関係) が論点になる。
(1) コード 体系と キー を切り離して考える。 (1) の観点に立てば、コード 体系を、モノ に帰属する アトリビュート の1つとして考え、一意的な キー (the primary key) を使って──コード 体系を使わないのであれば、なんらかの人為的な コード を導入することになるが──、レコード (インスタンス) を示す。ただし、その際、論点になるのは、the primary key を付与される個体を、どのようにして、認知するのか、という点である。すなわち、コード 体系のなかで、管理番号の付与された個体に対して、the primary key を付与すれば、コード 体系を前提にしていることになるし、コード 体系のなかで対象になっていない モノ を記号化されていると判断するためには──つまり、モノ として認知するためには──、どのような規準を使うのか、という点が示されなければならない。もし、そういう規準を示すことができないならば、モノ の認知が 「恣意的」 になってしまう。 (2) の観点に立てば、コード 体系のなかで記述されている管理番号を、キー (identifier) として、使うことになる。コード 体系を前提にするかぎりでは、モノ の認知が 「恣意的」 にはならないが、論点になるのは、キー (identifier) が、かならずしも、「一意的」 にはならない──つまり、the primary key にはならない──という点である。たとえば、「営業所」 (コード 体系には、営業所番号が記述されている) と 「契約」 (コード 体系には、契約番号が記述されている) を考えてみれば、以下の 2つの事態が起こりうる。
- 契約番号は、全社 (company-wide) のなかで、一意的に付与されている。 認知番号は、個体 (entity) を認知するために付与される。したがって、契約番号は、契約を認知するために付与されている。しかし、営業所ごとに、契約番号を付与すれば、契約番号の値は、全社 (company-wide) では、一意にはならない。つまり、コード 体系では、「コード の適用区域」が、かならず、考慮されなければならない。
もし、契約番号が、全社を適用区域として付与されているなら、契約番号は the primary key になるが、営業所ごとに付与されているのであれば、「営業所番号+契約番号」 が the primary key になる。 |
[ 補遺 ] (2010年 3月 1日)
現実的事態を モデル 化 (形式化) する場合、「個体は、個体として一意であればいい」──言い換えれば、個体を構成している すべての性質 (アトリビュート) の付値が一組となって、一つの個体を一意に指示すればいい──ということさえ外さなければ宜しい。 それらの アトリビュート の 「組」 (直積集合) が一つの個体であることを示すために──言い換えれば、一つずつの個体を それぞれ記号化するために──導入された 「個体指定子」 が identifier です。TM (T字形 ER手法の改良版) では、個体は以下のように定義されています。 個体である =Df 個体指定子を付与された管理対象である。 identifier のことを、TM は 「個体指定子」 と翻訳していますが、「個体指定子」 という訳語を使うようになった時期は、そう古くない──たぶん、「個体指定子」 に近い語を初めて使った拙著は、「赤本」 (「データベース 設計論」、2005年出版) だったと記憶しています [ 「個体指定子」 ではなくて、「個体指示子」 という語を使っていたと記憶しています ]。 それ以前においては、私は、identifier に対して どのような訳語を付与すればいいか悩んでいました。「論考」 (「論理 データベース 論考」、2000年出版) では、いまだ訳語を使わないで identifier のままにしていたと記憶しています。「論考」 は、TM の前身であるT字形 ER手法の 「意味論 (の前提)」 を変えたので、この時点で、identifier の訳語を示すべきだったのですが、私には適訳が なかなか思い浮かばなかった。「論考」 は、以下の 2つの目的で執筆されました。
(1) 構文論の技術を棚卸しする。 (1) では、数学基礎論の基本技術を棚卸して、T字形 ER手法の関係文法を検討することが目的でした。そして、(2) では、「意味論 (の前提)」 を 「意味の対応説」 から 「意味の使用説」 のほうに移すのが目的でした。 「意味論」 の前提を移したときに、「意味の使用説」 として導入した概念が 「合意」 でした。すなわち、或る限られた範囲 (生活様式) のなかで、その生活に関与している人たちのあいだで 「合意された 『意味』」 という概念を導入しました。 identifier を 「識別子」 というふうに訳すこともできるのですが、私が拘 (こだわ) った点は、「合意」 という概念だったので、「識別子」 を identifier の訳語にするのを躊躇 (ためら) った。そして、「論考」 を出版して 2年後くらいになってから、「認知番号」 という訳語を使うようになりました。すなわち、「合意された認知」 という概念です。この訳語は、「合意」 という概念と相性がよかったのですが、「番号」 という語が misleading になりそうだったので、「認知番号」 という訳語を完全に納得していた訳ではなかった──たとえば、「商品略称」 を identifier として使うこともあるので、かならずしも、「番号」 が identifier であると訳ではない。 identifier の訳語として 「個体指示子/個体指定子」 を使うようになった理由は、デイヴィドソン 氏の著作 「真理と解釈」 を読んでいて、その訳語を見つけたからです──訳者たちのだれが訳したのか について、私の記憶が曖昧です [ 本 ホームページ の 320ページ で綴った 「補遺」 を参照してください ]。「真理と解釈」 では、entity-setter を 「個体指示子」 と訳していました。そして、「赤本」 (2005年出版) で、この訳語を使っています。それ以後、この訳語を identifier の代わりに使うようになりました。ただ、「語呂」 では、「個体指定子」 よりも 「認知番号」 のほうが言いやすいので、いまでも、「認知番号」 という訳語を使うことが多い。 |
<< もどる | HOME | すすむ >> | |
▼ データ解析に関するFAQ |