2001年10月31日 VE (みなし entity) の乱用 >> 目次 (作成日順)
  ● QUESTION   VE は、DA 2段になるまで使わないほうが良い、と聞いたことがあるが、どうしてなのか。
  ▼ ANSWER   VE を正しく生成できるのは 4段である。
2006年12月 1日 補遺  




 VE が適切に作成できるようになれば、DA 4段である。
 DA 2段では、いまだ、VE と サブセット のちがいが、きちんとわかっていない。
[ DA の段位については、拙著 「T字形ER データベース 設計技法」 の 141ページ を参照されたい。]

 T字形 ER手法は 「命題論理」 (と「関係の論理」) を基底にして構築されている方法であるが、VE に関しては 「述語論理」 を援用している。
 「命題論理」 を使っている理由は、「主語-述語」 の形式のなかで、コード 体系を使いながら、entity を認知する規準が成立しているからである (だれが データ 集合を生成しても、同じ データ 集合となる、という点が成立するからである)。いっぽう、「述語論理」 を使って、同じ性質の データ 集合を生成しようとしたら、生成される データ 集合がまちまちになる危険性がある (「ベーシックス」 のなかで記述した 「クラス と セット」 を参照されたい)。
 しかし、「命題論理」--あるいは、コード 体系を使った言語解析--だけを使って 「完全な正規形 (標準形)」 を生成することはできない。そのために、「命題論理」 を使って データ 構造を形成した後に、「述語論理」 を使って、データ の周延を検証するのである。そのときに使う技術が VE である。

 ▼ 「意味論的に」 周延していない状態

 ┌─────────────────┐
 │       部 門      R│
 ├────────┬────────┤
 │部門コード   │部門名称    │
 │        │設立日     │
 │        │        │
 │        │        │
 │        │        │
 └────────┴────────┘


 ▼ 「意味論的に」 周延している状態

 ┌─────────────────┐     ┌─────────────────┐
 │       部 門      R│     │      部門. 設立    VE│
 ├────────┬────────┤     ├────────┬────────┤
 │部門コード   │部門名称    │     │部門コード(R)│設立日     │
 │        │        ├┼───┼┤        │        │
 │        │        │     │        │        │
 │        │        │     │        │        │
 │        │        │     │         │        │
 └────────┴────────┘     └────────┴────────┘


 以上のような 「アトリビュート (性質) の帰属性」 に関しては、(「entity 名称. 性質」 という 「帰属性を判断する目安」 があるので) VE の生成を間違うことは、ほとんど、ないが、「VE の乱用」というのは、「区分 コード」 に関して VE を適用することをいう
 「区分 コード」 は 「サブセット (部分集合)」 が正しいかどうかを検証する コード であるが、区分 コード の数が多くなれば、サブセット の階数も多くなって、データ を分析することがつらくなってくると、区分 コード を VE として扱って、データ の分析を誤魔化してしまうことが、ときどき、観られる。
 以下が、その悪しき例である。

 
 ▼ 「意味論的に」 周延を検証しなければならない状態

 ┌───────────────────┐
 │        営業所       R│
 ├─────────┬─────────┤
 │営業所コード   │営業所名称    │
 │         │営業所区分コード │
 │         │連結対象区分コード│
 │         │         │
 │         │         │
 └─────────┴─────────┘


 ▼ VE の乱用

 ┌─────────────────┐     ┌───────────────────┐
 │       営業所      R│     │     営業所. 営業所区分   VE│
 ├────────┬────────┤     ├─────────┬─────────┤
 │営業所コード  │営業所名称   │     │営業所コード(R)│営業所区分コード │
 │        │        ├┼───┼┤         │         │
 │        │        │     │         │         │
 │        │        │     │         │         │
 │        │        │     │          │         │
 └────────┼────────┘     └─────────┴─────────┘
          │
          ┼
          │              ┌───────────────────┐
          │              │    営業所. 連結対象区分   VE│
          │              ├─────────┬─────────┤
          │              │営業所コード(R)│連結対象区分コード│
          └─────────────┼┤         │         │
                         │         │         │
                         │         │         │
                         │         │         │
                         └─────────┴─────────┘



 以上にように、データ の周延を検証するはずの区分 コード を VE として扱ってしまったら、データ の周延を検証できないし、(データ 構造らしき図にはなっているが--いちおう、作図はされているが--) この図は、データ 構造を分析した図にはなっていない。区分 コード を VE として扱ってはいけない。


[ 補遺 ] (2006年12月 1日)

 数学的には、述語論理式 f (x) は 「性質」 として扱われ、その論理式を集合論に翻訳すれば、「メンバー と集合」 を単位にした 「モノ のあつまり」 を考えることができる。たとえば、以下を考える。

   a1 は男である。
   a2 は男である。
   b1 は女である。
   b2 は女である。

 それらに対して、性質 P をもつ集合を考えれば、以下の集合を作ることができる。

   男 { a1, a2 }.
   女 { b1, b2 }.

 或る集合に属する それぞれの メンバー の性質を 「周延的」 といい、集合の性質を 「集合的」 という。この例では、「...男である」 と 「...女である」 が メンバー の性質 (周延的) を示し、「男」 の性質と 「女」 の性質 が 集合の性質 (集合的) である。

 さて、以上の基礎知識を前提にして、以下の集合を考えてみれば、以下の点が論点になる。

 {部門コード、部門名称、設立日、...}.

 数学では、或る性質 P が、その個体 「そのもの-の」 性質であるかどうか を問わない。そういう性質を使って、或る集合を作ることができるというふうに考える。そのために論点になるのが、「設立日」 は、部門に帰属する性質かどうかという点である。

 もし、{部門コード、部門名称、設立日、...} を多項論理式として考えれば、それらの項のなかで、部門コードと設立日は 「1-対-1 の対応関係 (関数従属性)」 が成立するので、構文論的には、設立日は、この集合のなかに属していると云えるし、この式を観れば、意味論上、しかじかの部門が かくかくの日に設立したという意味を読み取ることができる。すなわち、f (x, y) という 「関係 (関数)」 のなかで個体は変項として考えられている。

 いっぽう、実体主義 (個体を最初に認知して、それから、個体間の関係を考えること) を前提にすれば、設立日は、設立という事態が起こった日であって、部門 「そのもの-の」 性質ではないということもできる。ただ、実体主義を前提にした際に論点になるのは、個体 (あるいは、個体 「そのもの-の」 性質) を 「定義できない」 という点である。

 意味論上、関係主義と実体主義の調整が非常に難しい。
 TM (T字形 ER手法) では、まず、実体主義に立って個体を認知して--事業過程・管理過程を対象にすれば、コード 体系の管理番号を個体認知の番号として考えて、「個体であること」 を定義することができるので--、関係の文法を適用する。しかも、TM では、個体は、関係の対称性・非対称性を考慮して、「event (関係の非対称性を示す)」 と 「resource (関係の対称性を示す)」 という性質に分割される。「event」 の定義は、「性質として日付が帰属する」 ことである。したがって、設立日は、「設立」 という 「event」 の性質とされ、「部門」 という 「resource」 には帰属しない。しかし、「設立」 という事態に対して、コード 体系上、管理番号は、まず、付与されていない。したがって、「設立」 という 「event」 を作ることはできない。或る entity に帰属するはずの性質が、ほかの entity に混入している事態を 「意味論的に」 調整する手段が VE である。したがって、VE は、名称が示しているように、ほかの entity を仮想できるのであって、1つの entity のなかで、さらに部分集合 (サブセット) を作る手段ではない。
 逆に言えば、或る entity の サブセット に対して、VE を使ってはいけない、ということである。




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