2001年 9月15日 リレーションシップ (binary と N-ary) >> 目次 (作成日順)
  ● QUESTION   3つ以上の entity をいっっしょに結ぶことは駄目か。
  ▼ ANSWER   だめ。 かならず、binary 方式 (2つの entity 間のみ) を使うこと。
2006年10月16日 補遺  




 リレーションシップ の結びかたには以下の 2つがある。

  (1) binary 方式 (2つの entity のあいだ)
  (2) N-ary 方式 (3つ以上の entity のあいだ)

 T字形 ER手法は 「binary」 方式を使う (N-ary 方式を使用禁止にしている)。

 
▼ 具体例 [ 拙著 「論理データベース論考」 195ページ参照。]

 
 以下の 3つの 「resource」 を使う。

 (1) 生地   {生地コード、名称,...}
 (2) サイズ  {サイズ・コード、名称,...}
 (3) カラー  {カラー・コード、名称,...}

 以上の 3つの 「resource」 から、(aRb を考 えれば) たとえば、以下の 2つの疑似 「event」 を生成することができる。

 (1) {生地、サイズ}は、「裁断」 を示す。
    {生地コード (R)、サイズ・コード (R)、(DATE)}

 (2) {生地、カラー}は、「洗い (染め)」 を示す。
    {生地コード (R)、カラー・コード (R)、(DATE)}

 コード 体系のなかに、「裁断番号」 も 「洗い番号」 も記述され ていないから、「event」 として認知することができないので、対照表の形になる。次に、以下の (対照表の) 集合を考えてみる。

 (1) {{生地、サイズ}、カラー} は、「『裁断』 してから 『洗い』 をする」 ことを示す。
 (2) {{生地、カラー}、サイズ} は、「『洗い』 をしてから 『裁断』 する」 ことを示す。

 以上のように、(1) は 「裁断」 という 「event」 を生成してから、「洗い」 という 「event」 を生成しているが、(2) は 「洗い」 という 「event」 を生成してから 「裁断」 という 「event」 を生成しているので、「event」 の順序は (1) と (2) では逆になる。つまり、(対照表の順序対が違えば) 仕事の やりかた が違うことを表現している。これを、もし、N-ary を使って記述すれば、「event」 の順序対が 「隠れてしまう」。

 



[ 補遺 ] (2006年10月16日)

 数学上、「1つの n 組関係は、いくつかの 2項関係にばらすことができる」 ことは証明されている。
 ただ、n 組関係を使うか 2項関係を使うか という点は、モデル (modeling) 上、論点になる。コッド 関係 モデル (リレーショナル・データベース) は、n 組関係を使うが、TM (T字形 ER手法) は 2項関係を使う。

 数学上、「関係の論理 (aRb)」 は、以下の一般式として示される。

   R {s1 ∈ X1, s2 ∈ X2, ... sn ∈ Xn ∧ P (s1, s2, ... sn)}.

  X1, X2,... Xn という集合を セット (あるいは、ドメイン) といい、(s1, s2, ... sn) の集合を タプル (tuple) という。
 この式そのものは、数学では、基本中の基本であって、コッド 氏の独自な着想ではないけれど、かれが天才であったのは、X1, X2,... Xn という セット として 「属性値集合」 を考えた点である。

 ただし、この関係式を観てわかるとおりに、(s1, s2, ... sn) では 「並び」 が実現されていなければならないし、もし、それらのなかに、「null」 (「真」 とも 「偽」 とも判断できない事態) が起こったときに、どのように対応するのか が論点になる。
 コッド 氏は、データ 設計上、R (Relation) が 「『並び』 を完全に実現できない (「半順序」 になる)」 ので、Relation という用語のかわりに、Relationship という 「緩やかな」 用語を使うことを認め、「null」 に対しては、4値論理 (true、false、undefine、unknown) を導入した。

 TM (T字形 ER手法) は、この 2点 (「並び (半順序)」 と 「null」 に関して、「意味論」 を 「強く」 適用して、モデル上、指示規則として、「event と resource」 概念を導入し、生成規則として、R を関数としないで、「resource が event に関与する」 という実体主義的な哲学を導入した。この実体主義的な哲学では、当然ながら、2つの 「resource」 が対となれば、それらのあいだに 「関係」 が生まれる。たとえば、「従業員」 と 「部門」 のあいだには、「配属」 という関係が起こる--逆にいえば、「配属」 という 関係のなかに、「従業員」 と 「部門」 が関与する。
 TM では、2つの 「resource」 のあいだに 「対照表」 を生成するが、「対照表」 は、意味論上、指示を問われる。

 「対照表」 は、当初 (TM を作ったときに)、「真理値表」 として考えていた。すなわち、構文論上、それぞれの 「事態」 の成立・不成立を検証する リスト として考えていた。しかし、TM は、意味論を 「強く」 導入したので、「対照表」 そのものの性質が、意味論上、問われることになった。
 「対照表」 は、事業過程上 (言い換えれば、意味論上)、「事実的な F-真」 を指示しているかどうかを検証されなければならない。




  << もどる HOME すすむ >>
  データ解析に関するFAQ