このウインドウを閉じる

It is folly to lose the flesh for the bones.

 

 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日)

 

  このウインドウを閉じる