2005年 6月16日 「多値の AND」 と 「多値の OR」 (その1) >> 目次 (作成日順)
  ● QUESTION   「多値の AND」 と 「多値の OR」では、データ 構造が、どのように違うのか。
  ▼ ANSWER   「多値の AND」は HDR-DTL 構成であり、「多値の OR」は多義である。
2010年 7月 1日 補遺  



[ 前提 ]

 (1) 会議室を予約する。1回の予約で、複数の会議室を予約できる。
 (2) 会議室には、部屋番号が付与されている。
 (3) 予約には、以下の 2つの形態がある。

  (3)-1 複数の (1つ以上の) 会議室は、すべて、予約される。

  (3)-2 予約された複数の会議室は、(使用する) 候補である──最大数 3つまで、仮予約できる、
       とする。それらのなかから、最終的に、実際に使用する会議室は、1つである。

 
[ データ 構造 ]

 Entity は、以下の 2つとする。

   会議室 {部屋番号、席数、・・・}.

   予約 {予約番号、予約日、申込者氏名、・・・}.

 
[ 考えかた ]

1. 多値の 「AND (連言)」

 複数の (1つ以上の) 会議室が、1回の予約にて、指示されるのであれば、HDR-DTL 構成となる。

   会議室   {部屋番号、席数、・・・}.

   予約 HDR {予約番号、予約日、申込者氏名、・・・}.

   予約 DTL {予約番号、部屋番号 (R)、使用予定日、・・・}.(注意)

 
2. 多値の 「OR (選言)」

 予約された複数の会議室のなかから、最終的に、1つの会議室を選ぶなら、「多義」 を使う。

   会議室 {部屋番号、席数、・・・}.

   予約 {予約番号、予約日、申込者氏名、・・・}.

   予約. 部屋種別 {予約番号 (R)、部屋番号 (R)、部屋種別 コード}.(参考)

 
 そして、複数の会議室のなかから、1つが選ばれたら、「予約確定日」 を記録するのであれば、以下の
 構造になる。なお、仮予約と本予約に対して、予約状態遷移 コード (区分 コード) が付与されている。

   会議室 {部屋番号、席数、・・・}.

   予約
    |
    × 予約状態遷移 コード
    │
    ├ 仮予約 {予約番号、予約日、申込者氏名、・・・}.
    │  │
    |  └ 予約. 部屋種別 {予約番号 (R)、部屋番号 (R)、部屋種別 コード、・・・}.
    │
    └ 本予約 {予約番号、部屋番号 (R)、使用予定日、確定日}.

 
(注意) 使用予定日は、「できごと (event)」 が実際に起こった日ではない点に注意されたい。

(参考) 部屋種別 コード には、値として、「1 (第一候補)、2 (第二候補)、3 (第三候補)」 が定義されるかもしれない。

 

 



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

 取り立てて補足説明はいらないでしょう。

 ひとつだけ注意をしておけば、「多値の AND」 と 「多値の OR」 は、関数上、「意味」 がちがうので、関数を図式した有向 グラフ 上で、それらの ちがいが一目でわかるようになっていなければならないでしょうね。TMD (TM Diagram) では、「多値の AND」 を 「MA (または、MAND)」 として、かつ、ファンクター (あるいは、合成関数) であることがわかるような表記を使い、「多値の OR」 を 「MO (または、MOR)」 としています。





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