2003年12月16日 「event の並び」 の例外 >> 目次 (作成日順)
  ● QUESTION   「event の並び」 のなかで例外が起こるが、どのように扱えばよいか。
  ▼ ANSWER   それぞれの事象を記述して、概念的 スーパーセット を使えばよい。
2009年 1月 1日 補遺  



● 事業の前提

 正常営業循環として、出荷してから請求する、という事業形態である。
 ただ、或る商品に対しては、請求してから出荷するという形態を導入している。

 
● データ 構造 (正常営業循環)

 商品
 { 商品番号、商品名称、... }.

 出荷
 { 出荷番号、商品番号(R)、出荷日、出荷数、... }.

 請求
 { 請求書番号、出荷番号(R)、請求日、請求金額、... }.

 ただし、この構造では、「請求 → 出荷」 を扱うことができない。

 
● 事実を記述した データ 構造

 商品
 { 商品番号、商品名称、... }.

 出荷
 { 出荷番号、商品番号(R)、出荷日、出荷数、... }.

 請求
 { 請求書番号、出荷番号(R)、請求日、請求金額、... }.

 請求
 { 請求書番号、商品番号(R)、請求日、請求金額、... }.

 出荷
 { 出荷番号、請求番号(R)、出荷日、出荷数、... }.

 そして、出荷および請求に対して、それぞれ、概念的 スーパーセット (クラス) を生成すればよい。
 そうすれば、出荷と請求の関係として、2つの形態 (「出荷 → 請求」 と 「請求 → 出荷」) があることを見て取ることができる。

 



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

 概念的 スーパーセット (クラス) を使うということは、逆に言えば、相違の サブセット として扱うこともできるということです──ただし、概念的 スーパーセット が、かならずしも、相違の サブセット として翻訳できない現象もある点に注意して下さい (たとえば、「one-header-many-details」 構成のような 「合成関数」 のとき)。ここでは、相違の サブセット として翻訳することもできるでしょうね。たとえば、以下のように。ただし、作図において、「event」 の並びには配慮して下さい。

 出荷
 { 出荷番号、商品番号 (R)、出荷日、出荷数、... }──────────────────┐
     ┼                                      │
 請求  ┼                                      │
 { 請求書番号、出荷番号 (R)、請求日、請求金額、... }─┐              │
                             ├×─ 請求          ├×─ 出荷
 請求                          ┘null (出荷番号、商品番号) │null (請求番号、商品番号)
 { 請求書番号、商品番号(R)、請求日、請求金額、... }                 │
     ┼                                      │
 出荷  ┼                                      │
 { 出荷番号、請求番号 (R)、出荷日、出荷数、... }──────────────────┘

 以上が正しい記述ですが、この記述が煩瑣であると思われるなら、「対応表」 を使ってもいいでしょう。たとえば、以下のように。

 出荷
 { 出荷番号、商品番号 (R)、出荷日、出荷数、... }
     ┼
     │
     ○─── 出荷. 請求. 対応表 { 出荷番号 (R)、請求番号 (R)}
     │
 請求  ┼
 { 請求書番号、出荷番号 (R)、請求日、請求金額、... }

 対応表は、ふつうなら 「組 オブジェクト」 なのですが──すなわち、構成員は全順序として記述されるのですが [ 出荷が先行して、請求が後続するのですが ]──、ここでは 「集合 オブジェクト」 として扱えばいいでしょう。すなわち、「出荷」 と 「請求」 の並びを問わないで、ふたつの event が成立していればいいというふうに扱えばいいでしょうね。したがって、「出荷」 か 「請求」 のいずれかしか起こっていない状態であれば、対応表のなかには記述されないということです。たとえば、「請求」 が先行して、「出荷」 が まだおこなわれていない状態であれば、「請求」 entity のなかに instance が存在しても、対応表のなかには、それに対応する原像 (すなわち、「出荷」)──あるいは、順序を (請求、出荷) として考えるならば、写像集合 「出荷」── は存在しないということです。





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