2005年 1月16日 「event」 の履歴 >> 目次 (テーマ ごと)
  ● QUESTION   「event」 の履歴を、「多義 (多値の OR 関係)」 として扱ってよいか。
  ▼ ANSWER   だめ。
2010年 2月 1日 補遺  



[ データ 構造 (entity) ]

 商品
  {商品 コード、商品名称、・・・}.

 契約
  {契約番号、有効開始日、有効終了日、・・・}.

 
[ 事業の前提 ]

 (1) 契約が存続するあいだ、商品を取り扱う。
 (2) 1つの契約が取り扱う商品は、複数 (1つ以上) ある。

 
[ 考えかた ]

 商品の履歴を、「多義 (多値の OR 関係)」として記録したい、という着意は、1つの契約のなかで、商品が複数個になるから、という理由かもしれない。そうだとすれば、「多義」 ではなくて、「HDR-DTL (one-header-many-details)」として考えるほうが良い。ただし、「HDR-DTL」も、この事象に関するかぎり、正しい対応ではない。

 まず、「多義」 は、「(モノの) 性質」 に関する論点であって、「値の真理性 (指示規則)」 の論点である。したがって、モノ (entity) を記述するための規則ではない。

 次に、「契約」 entity は、「event」 ではない、という点に注意されたい。
 T字形 ER手法では、「event」は、以下のように定義されている。

   「event」 である = Df 取引日が帰属する entity である。

 「契約」 entity は、あくまで、「event」 が生起する──「event」を記録する──ために開設された時間軸 (閉じた区間) を示しているのであって、取引として生起した 「event」 ではない。

 「契約」 entity は、認知番号が付与された entity であるが、「event」 でなければ、T字形 ER手法の定義によれば、「resource」 である。したがって、「商品」 entity と「契約」 entity は、それぞれ、「resource」 なので、それらの関係は、対照表として記述される。

 商品
  {商品 コード、商品名称、・・・}.

 契約
  {契約番号、有効開始日、有効終了日、・・・}.

 契約. 商品. 対照表
  {契約番号 (R)、商品 コード (R)、有効開始日、有効終了日}.

 
 この対照表は、「取引日」 を記録した 「event」 ではない──「validation-rule」を記述した検証表である。
 この対照表のなかに、複数の商品が記録される。

 



[ 補遺 ] (2010年 2月 1日)

 まず、「多義 (あるいは、多値)」 を説明します。

 TM (T字形 ER手法の改良版) の前身である T字形 ER手法では、いわゆる 「繰返項目 (あるいは、配列)」 を 「多義」 として扱っていました──そして、T字形 ER手法では、「多義」 を T字形 ER図上で 「entity.role」 と呼んでいました。

 TM では、「多義」 という ことば は廃止して、「多値 (many-value function、多価関数)」 という ことば を使います。そして、「多値」 は、以下の 2つに類別されています。

  (1) 多値の OR 関係
  (2) 多値の AND 関係

 「多値の OR 関係」 は、或る一時点で、複数の値のなかで一つの値のみ存在することを云います──たとえば、「商品」 entity に帰属する性質として 「商品単価」 が存在して、しかも、「商品単価」 の値が 2つ以上 (たとえば、正単価と割引単価とか) 存在する場合です。

 「多値の AND 関係」 は、或る一時点で、複数の値が同時に成立することを云います──たとえば、「受注」 entity のなかで、商品が複数 注文される場合 [ いわゆる 「HDR-DTL」 構成 ] です。

 本 エッセー で扱った質問は、TM では、一見、「多値」 の現象として判断されるかもしれないのですが、本文のなかで綴ったように、「契約」 entity は、「event」 としての要件を満たしていない──したがって、「resource」 として判断されます。この形態は、いわゆる 「マスター・ファイル」 (一種の mock-up) と呼ばれている 形態 です。したがって、本文で述べたように、「対照表」 を構成します。

 「対照表」 には、以下の 2種類が存在します。

 (1) (事実的な) F-真
 (2) (導出的な) L-真 [ しかも、entity 間の 「制約・束縛」 を記述している構成 ]

 「対照表」 が F-真 であるという状態は、現実的事態と対比して、「対照表」 として構成された状態が実存する場合です──言い換えれば、「対照表」 に帰属する性質として 「日付 (過去の取引日)」 が実存する (あるいは、「日付」 を仮想したい) 場合です。本文で構成した 「契約. 商品. 対照表」 は、F-真ではない。

 「対照表」 は、TM の文法に従って構成される限りにおいて、かならず、L-真です。L-真の 「対照表」 のなかで、F-真の 「対照表」 が存在します。そして、F-真でない 「対照表」 のなかで、与件の entity 間の 「制約・束縛」 を記述する 「対照表」 は、TM では、実装することを推奨しています。ちなみに、「制約・束縛」 という ことば は、かつての T字形 ER手法では、「validation-rule」 というふうに云っていました──言い換えれば、「validation-rule」 を記述する 「対照表」 は、「制約・束縛」 を記述する 「対照表」 という言いかたに改められました。





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