2004年 3月16日 多義 (選言) と並列 (連言) >> 目次 (テーマ ごと)
  ● QUESTION   「resource : event = 複数 : 複数」 のなかで起こる並列は、多義ではないのか。
  ▼ ANSWER   違う。 多義は 「選言 (排他)」 だが、並列は 「連言」 である。
2009年 4月 1日 補遺  



 「多義」 は、同じ性質の繰り返しが、選言 (排他関係) として作用する。これは 「多値従属性」 の論点である。たとえば、典型的な例として、「品目」 entity のなかに帰属する 「単価」 が 2種類 (正単価、割引単価) あるとすれば、2種類の単価は、「同時に、成立しない (いずれかが成立する)」。

 {品目番号、品目名称、単価 (正単価)、単価 (割引単価)}.

 データ 構造は、以下のようになる。

 品目、
 {品目番号、品目名称、・・・}.

 品目. 単価種別、
 {品目番号 (R)、単価種別 コード、単価}. [ データ は 2件となる。 ]

 
 「並列」 は、(その呼称が示しているように、) 同じ性質の繰り返しが、1つの単位 (連言) となって作用する。これは 「結合従属性」 の論点である。たとえば、「品目」 entity のなかに帰属する 「単価」 が 2種類 (本体単価、付随単価) ある、とする。付随単価は、品目を製造するためには、a must の単価であり、つねに、正単価と組になって成立する。したがって、2つの単価は、「同時に、成立する」。

 {品目番号、品目名称、単価 (正単価)、単価 (付随単価)}.

 データ 構造は、以下のようになる (HDR-DTL 形態)。

 品目 HDR、
 {品目番号、品目名称、・・・}.

 品目 DTL、
 {品目番号、単価種別 コード、単価}. [ データ は 2件となる。 ]

 
 「繰返項目 (a repeating group)」 には、「選言 (or)」 と 「連言 (and)」 がある。
 この相違点を、どのようにして、「明示的な (explicitly) 構造」 として記述するか、という点は、「数理 モデル」 と 「意味論」 を結ぶ際の やっかいな点である。多義も HDR-DTL も、上述のデータ 構造を観れば、実装形は、同じになる。実装形は同じだが、論理設計上の記述は違う。論理設計上の記述の違いが、それぞれの 「意味」 を記述している。
 なお、多義の記述方式と HDR-DTL の記述方式の違いは、「論理 データベース 論考」 (あるいは、「T字形 ER データベース 設計技法」) を参照してください。

 



[ 補遺 ] (2009年 4月 1日)

 本 エッセー は、日付を見ると、2004年 3月に綴られていて、いまだ、「多値関数」 を的確に説明しきれていないですね。「多値関数」 を MOR および MAND の観点で体系化できたのは、「赤本 (データベース 設計論〜関係 モデル と オブジェクト 指向の統合をめざして)」 (2005年 9月) です。「赤本」 の出版年から バックワード で本 エッセー を読んでみれば、「赤本」 出版の一年半前に綴られた本 エッセー では、いまだ、「多値関数」 (MOR および MAND の 2つの現象) を まとめきれていない跡が明らかに残っていますね。

 本 エッセー では、MOR を 「多義 (選言)」 とし、MAND を 「並列 (連言)」 として 違いを説明しています。そして、「並列 (連言)」 を いわゆる 「HDR-DTL (one-header-many-details)」 構成で示しています。この考えかたそのものは間違っていないのですが──「多義 (選言)」 を MOR に読み替え、「並列 (連言)」 を MAND に読み替えれば、「赤本」 の説明に近いのですが──、説明が下手くそだと思います (苦笑)。以下のように説明するのが的確でしょうね。

 (1) 多値関数とは、ひとつの変数が複数・多数の値を充足する関数をいう。

 (2) 多値関数には、MOR と MAND が生じる。

 (3) MOR では、ひとつの変数が複数・多数の値をもっても、それらの値のなかで、或る一時点では、ひとつの値
   のみ充足する。したがって、多値関数と云っても、ふつうの関数として扱ってもよい。

 (4) MAND では、或る一時点で、複数・多数の値が同時に充足される。MAND は 「合成関数」 である。

 (5) したがって、MOR および MAND は、意味論上、相違が一目でわかる構成で作図されなければならない。





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