TM (T字形 ER手法) では、いわゆる 「HDR-DTL (one header - many details)」 構成を数学的構造の 「具象 カテゴリー・ファンクター」 および 「合成関数」 として、多値の 「AND 関係」 のなかで説明していて、単純な 「親子関係」 としてはいない。受注を例にして考えてみます。
認知番号を付与された受注 entity (event)は、以下の構造となります。
┌─────────────────┐
│ 受 注 │
├────────┬────────┤
│受注番号 │受注日 │
│ │受注数 │
│ │ │
│ │ │
└────────┴────────┘
この event に、resource (顧客、商品) が関与 (ingression、侵入) します。
受注に対して、以下の関係 (射) を考えてみます。
(1) 1つの顧客に対して、複数の受注が対応する。
(2) 1つの受注に対して、1つの顧客が対応する。
(3) 1つの受注に対して、複数の商品が対応する。
(4) 1つの商品に対して、複数の受注が対応する。
顧客と受注と商品には、以下の射が成立しています。
f g
商品 → 受注 → 顧客
a| f(a) ↑g(f(a))
└────────┘
したがって、受注は、以下の構造になるでしょう。
f(a)
┌─────────────────┐
│ 受 注 │
├────────┬────────┤
│顧客番号(R) │受注日 │
│受注番号 │受注数 │
│商品番号(R) │ │
│ │ │
└────────┴────────┘
しかし、この構造は、1つの受注が複数の商品に対応することを示していない。
HDR-DTL では、「受注」 のなかで、さらに、「1-対-複数」 の射が生じています。そこで、以下の構造に変えてみます。
g
┌───────────────────────┐
|g(f(a)) |f(a)
↓ |
┌─────────────────┐ ┌─────────────────┐
│ 顧客と受注との射 │ │ 受注と商品との射 │
├────────┬────────┤ ├────────┬────────┤
│顧客番号(R) │受注日 │ │受注番号 │受注数 │
│受注番号 │ ├┼───<│商品コード(R)│ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
└────────┴────────┘ └────────┴────────┘
DTL の メンバー を並べるために、(商品 コード を五十音順に並べてもいいでのすが、) 種別 コード を使うとします。
g
┌───────────────────────┐
|g(f(a)) |f(a)
↓ |
┌─────────────────┐ ┌─────────────────┐
│ 受注HDR │ │ 受注DTL │
├────────┬────────┤ ├────────┬────────┤
│受注番号 │受注日 │ │受注番号 │受注数 │
│顧客番号 │ ├┼───<│商品コード(R)│種別コード │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
└────────┴────────┘ └────────┴────────┘
種別コードは、メンバー を 「並べる」 ために使われる コード ですが、ふつうなら、受注伝票のなかに 「行番号」 が示されていますので、「行番号」 が種別 コード として作用して、以下のような図になるでしょう。
g
┌───────────────────────┐
|g(f(a)) |f(a)
↓ |
┌─────────────────┐ ┌─────────────────┐
│ 受注HDR │ │ 受注DTL │
├────────┬────────┤ ├────────┬────────┤
│受注番号 │受注日 │ │受注番号 │受注数 │
│顧客番号(R) │ ├┼───<│明細行番号 │ │
│ │ │ │商品コード(R)│ │
│ │ │ │ │ │
│ │ │ │ │ │
└────────┴────────┘ └────────┴────────┘
そして、g: DTL → HDR で、かつ、g が 「受注」 entity として考えられています。すなわち、「受注」 entity が、関数 (正確には、「関数の関数」、すなわち、関数の クラス) であるということです。すなわち、ファンクター が (TM 上の) 「受注」 entity として認知されている--F-真である--、という状態です。ただし、実 データ は、HDR-DTL の状態で演算されますので、ファンクター としての 「受注」 entity そのものは、TM 上、概念的 スーパーセット です。
g
┌─────────────────┐
│ 受注 MA│
├────────┬────────┤
│受注番号 │ │
│ │ │
│ │ │
└────────┼────────┘
|
× 概念的スーパーセット
↓
┌───────────┴───────────┐
↓g(f(a)) |f(a)
┌────────┴────────┐ ┌────────┴────────┐
│ 受注HDR │ │ 受注DTL │
├────────┬────────┤ ├────────┬────────┤
│受注番号 │受注日 │ │受注番号 │受注数 │
│顧客番号(R) │ ├┼───<│明細行番号 │ │
│ │ │ │商品番号(R) │ │
│ │ │ │ │ │
│ │ │ │ │ │
└────────┴────────┘ └────────┴────────┘
以上に述べたように、「HDR-DTL」 に関して、TMD の記法は、あのような記述しかない--数学的構造として、TMD 上、あのような記述しかできない--という記法になっています。
もっとも、私は、「HDR-DTL」 構成を整合的に説明するために、かつて、そうとうに悩んだことを正直に告白します。「黒本」 には、その悩みが記されています (96ページから 99ページ)。TM は、実体主義的な観点に立って、「S-P (主語-述語)」 形式を単位とした entity 概念を導入したので、「関係が、そのまま、個体になっている」 状態を記述しにくかったのです--関係が、そのまま、個体になっている状態は、対照表を使って対応していますが、「HDR-DTL」 については、当時 (「黒本」 を執筆した時点で、) 整合的に説明できなかった。「HDR-DTL」 が、数学的に、具象 カテゴリー・ファンクター と合成関数を使えば説明できることを知ったのは、「論考」 を執筆したときでした。
「HDR-DTL」 を整合的に説明できるようにはなったのですが、そのために、かえって、問題点が出てきました。というのは、TM は、実体主義の観点に立って、「S-P」 形式を単位とした entity 概念を導入していたのですが、「HDR-DTL」 は、クラス 概念を使わなければ説明できないので、TM の当初の前提を超えてしまいました。この問題点は、「黒本」 のなかでも言及しています (134ページ)。すなわち、「黒本」 のなかで、「或る事物の関係 (あるいは、事物の集合) が、『同時に (a la fois)』 事物そのものとして扱われる、という可能性を認める訳にはいかなくなる」 と綴っています。
TM は、実体主義の観点に立って、個体の認知を最初に考えるので、受注伝票を基礎にして、「受注」 entity を認知して、その 「受注」 entity が、「HDR-DTL」 構成になっているので、「相違の サブセット」 として説明しようと悪戦苦闘している様が 「黒本」 では現れていますが、「HDR-DTL」 は、クラス 概念を使って、具象 カテゴリー・ファンクター (および、合成関数) として説明したほうが単純であることを私は認めます。しかも、TM’ では、「概念的 スーパーセット」 として、クラス 概念を導入しているので--ただし、数学的な クラス 概念を純粋には使っていないけれど--、TM は、当初、前提として導入した命題論理を超えていますね。
TM および TM’ は、基本的に命題論理を前提にしているが、いちぶ、クラス 概念を導入しているという言いかたになるでしょうね。
(2006年11月23日)