2004年 7月16日 バリデーション・ルール (対照表の名称) >> 目次 (テーマ ごと)
  ● QUESTION   バリデーション・ルール の対照表と、「event」 の対照表は、違う名称にしないのか。
  ▼ ANSWER   しない。 なぜなら、バリデーション・ルール の対照表は 「任意」 だから。
2009年 8月 1日 補遺  



 理論的に整合的な対照表は、以下の 3点の検査を及第しなければならない。

  (1) T字形 ER手法の 4つの推論 ルール のなかで成立する。
  (2) 「関係の論理 (aRb)」 のなかで、R (関係) として成立する。
  (3) 「event」 としての性質が帰属する。

 以上の 3点の検査を及第した対照表が 「対照表」 である (「対照表」 という呼称を付与されている)。

 
 いっぽう、バリデーション・ルール としての対照表は 「任意」 である。言い換えれば、データ 構造としての妥当性はない。この点については、65ページ (「対照表の区別」) を参照されたい。<
 ただ、「event」 系の対照表と、バリデーション・ルール 系の対照表の違いが曖昧なこともある。
 以下を例にする。

 [ 前提 ]

  (1)従業員 {従業員番号、従業員名称、・・・}. [ R ]
  (2)部門 {部門 コード、部門名称、・・・}. [ R ]
  (3)従業員. 部門. 対照表 {従業員番号 (R)、部門 コード (R)}.

 さて、「従業員. 部門. 対照表」 は、もし、「配属日」 という性質を仮想すれば、「配属」 という 「event」 の原型になりうるので、「event」 系の対照表として考えることができる [ 過程としての 「配属 (assigning)」 ]。
 しかし、いっぽうでは、この対照表は、「どの従業員が、どの部門に配属されているか」という構成を示す バリデーション・ルール として解釈できる [ 結果としての「配属 (assigned)」 ]。

 逆に言えば、「配属」 は、以下の 2つの意味を示して、「多義」 になっている。

  (1)過程としての組織化
  (2)結果としての組織

 多義を排除するために──概念が違うのだから──、それぞれ、べつべつの名称を付けなければならないが、前述したように、バリデーション・ルール 系の対照表は、データ 構造として妥当性がない。したがって、データ 構造のなかで、指示すべき名称はない (指示すべき名称を付与してはいけない)。

 



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

 本 エッセー (2004年 執筆) で説明したことは、拙著 「赤本 (データベース 設計論)」 (2005年出版) で導入した概念を使って言い直せば、対照表は、以下の 2つの性質を帯びている、ということ。

 (1) 「(導出的な) L-真」
 (2) 「(事実的な) F-真」

 対照表は、関係文法に従って生成されるかぎり、つねに、「L-真」 を示します。そして、その 「L-真」 は、以下の いずれかの性質であるかを判断されなければならない。

 (1) 「L-真」 だが、「無意味」 である。
 (2) 「L-真」 で、かつ、データ のあいだに存在する 「制約・束縛」 を示す。
 (3) 「L-真」 で、かつ、「F-真」 (現実的事態を指示する状態) である。

 本 エッセー で説明している対照表は、「制約・束縛」 を示す対照表と 「F-真」 を示す対照表です。そして、「F-真」 以外は──言い換えれば、「事実 (現実的事態)」 を指示しないのであれば──「データ 構造」 のなかに構成しないのが 「原則です」。したがって、「制約・束縛」 を示す 「L-真」 の対照表は、以下の いずれかで扱われます。

 (1) プログラムのなかで、アルゴリズム として記述する。
 (2) Data Dictionary のなかに定義する。

 私 (佐藤正美) は、データベース・パラダイム で仕事をしている エンジニア なので、Data Dictionary で扱う立場をとっています。ただ、マーケット に存在する DBMS (の すべて) は、遺憾ながら、RDB を一元管理できるほどの Dictionary を搭載していないのが現実です。そのために、私は、「制約・束縛」 を示す対照表を データベース のなかに 「実装する」 ように指導しています──ただし、この やりかた は、あくまで、「便法」 です (正論では、Dictionary に定義すべきです)。

 「制約・束縛」 を示す対照表を データベース のなかに実装しているがために、その対照表と 「F-真」 を示す対照表との違いが争点になるのでしょうね。本来であれば、「制約・束縛」 を示す対照表は、Dictionary のなかに定義される constraints なので、「F-真」 を示す対照表とのあいだで、「名称」 は争点にならない。





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