2009年 1月 1日 「技術編-19 データ の関係 (再帰)」 を読む >> 目次にもどる
2017年10月15日 補遺  


 

 「再帰」 とは、aRb ──すなわち、R (a, b) ──において、a = b のときの 「関係」 です。言い換えれば、ひとつの集合の 「直積」 です [ たとえば、ひとつの集合を U とすれば、U × U ]。ただし、「直積」 と云っても、ひとつの集合のなかの元をすべて並べるのではなくて、ひとつの集合のなかから元を いくつか選んで並べる関数です。

 「再帰」 の例は、本書 85ページに示した例で充分でしょう (それ以上の説明は要らないでしょう)。ただ、84ページに綴った文のなかで、曖昧な記述があるので、補足します。曖昧な記述は、84ページの最後の段落に綴られている文です。

    取り消す対象になっている 「先行受注」 の番号を、「後続受注」 の属性として記述している実例を見ることがあるが、

 この文で示されている状態を具体的に図示すれば、以下のとおり。

  ▼ 正しくない状態
 ┌─────────────────┐
 │       受注       E│
 ├────────┬────────┤
 │受注番号    │受注日     │
 │        │受注数     │
 │        │取消受注番号  │
 │        │        │
 │        │        │
 └────────┴────────┘

 たとえば、85ページで示した例では、(再帰表には、) 受注番号および数量は、以下の値が代入されます。

 { 01, 100 }. { 02, 30 }. { 03, −100 }.

 この組を上述した 「正しくない状態」 に代入すれば、受注番号 01 および受注番号 02 において、取消受注番号が以下のように null の状態になります。

 { 01, 100, null }. { 02, 30, null }. { 03, −100, 01 }.

 Null は、充足していない状態を示すので── undefined と unknown の ふたつの状態を示すので──、モデル 上、「F-真」 を問えないので 「妥当ではない」 ということ。 □

 



[ 補遺 ] (2017年10月15日)

 取り立てて補足する説明はないでしょう──「黒本」 「論考」 の 「再帰」 も読んで下さい。

 さて、「再帰表」 を意味論から観てみれば、値を入れるには次の ふたつの やりかた があります (本文の 「受注」 の例を使って 「受注. 受注. 再帰表」──つまり、 (受注番号 (R)、受注番号 (R))──の値の充足を説明します)。

 (1) (03, 01)
 (2) (01, 03)

 私が講師をしている セミナー では、参加者たちに アンケート をとって、上に述べた どちらの やりかた をとっているか を訊いているのですが、7割から 8割くらいの人たちが (1) の やりかた をとっていました。(1) の やりかた は、「赤黒伝票」 という呼称が示すように、「どの伝票が どの伝票を取り消したか」 を示す値の入れ方ですね。(2) は、event の全順序 (日付の値の大小関係で並べる) という性質に沿った やりかた ですね。どちらの やりかた でもいい、と私は思いますが、いったん、やりかた を決めたら、その やりかた を続けてください [ 途中で、変更しないでください──たとえば、(1) を使っていたのに、途中から (2) に変えるとか ]。






  << もどる HOME すすむ >>
  目次にもどる