2003年 4月16日 対照表と 「分布図」 >> 目次 (作成日順)
  ● QUESTION   「分布図」 を記述するには、どうすればよいか。
  ▼ ANSWER   対照表を使えばよい。
2008年 5月 1日 補遺  



 対照表 (combination-table、truth-table) は、データ の間に成立する バリデーション・ルール を記述することができるので、「分布図」 を記述することもできる。

[ 注意 ]
 対照表は 「DATE」 が帰属することを原則 (T字形ER手法の ルール) とする。
 「DATE」 が帰属しない 「バリデーション・ルール を記述する」 対照表は、「実装してもいいし、実装しなくてもいい」 という点に注意されたい。
 「バリデーション・ルール を記述する」 対照表を実装しなければ、アルゴリズム のなかで バリデーション を記述する。
 (65 ページ を参照されたい。)

 以下の事象を考えてみる。

 (1) 従業員に対する人事考課 (役職手当) は 「役職」 と 「等級」 を判断としている。
 (2)「役職」 と 「等級」 は相対評価であって、全従業員に対して、構成比率が定義されている。

 データ 構造は以下の構造である。

 従業員 {従業員番号、従業員名称、・・・} [ R ]
 役職 {役職コード、役職名称、・・・} [ R ]
 等級 {等級コード、等級名称、・・・} [ R ]
 役職. 等級. 対照表 {役職 コード (R)、等級 コード (R)} [ 対照表 ]
 従業員. 役職. 等級. 対照表 {従業員番号 (R)、役職 コード (R)、等級 コード (R)} [ 対照表 ]

 以上のような構造であれば、「役職と等級の構成比率」 は 「役職. 等級. 対照表」 を使えば記述できる。
 たとえば、以下の構成比率を考えてみる。



役職. 等級. 構成比率
役職 等級 比率
A 1 20%
B 2 60%
C 3 20%


 とすれば、「役職. 等級. 対照表」 を以下のような構造にすれば、「一撃必殺の I/O」 (アルゴリズム の I/O 化) を使って高 パフォーマンス と高生産性を実現できる。

 役職. 等級. 対照表 {役職 コード (R)、等級 コード (R)、比率[ 対照表 ]

 しかし、もし、(「相対評価」 を止めて) 「A1」 と 「B2」 の垣根を外して、「A1 と B2 の合計」 が全体のなかで、ほぼ 40%くらいになればよい、という制度になれば、上述の対照表を使うことができない。
 そのときには、アルゴリズム を作成して シミュレーション をしなければならない。
 そうであれば、「役職. 等級」 という制度が良いのかどうか (「役職. 等級. 対照表」 の意味) を問うことができる。

 



[ 補遺 ] (2008年 5月 1日)

 対照表は、(TM の文法に従って作成される) 構成表です。したがって、「(導出的な) L-真」 を示します。いっぽうで、構成された対照表が、「(事実的な) F-真」 を示すかどうかを験証しなければならない。対照表が 「F-真」 を示すのは、以下のときに (そして、そのときに) 限ります。

  (1) 性質として、日付 (事態の発生日) が帰属する。
    (実 データ として、そういう日付があるか、あるいは、そういう日付を仮想したいとき。)
  (2) 「resource (言い換えれば、subject)」 として作用する。

 「F-真」 の対照表は、データベース 上、「事実」 として実装しますが、「L-真」 の対照表は、(「事実」 に対して) 制約・束縛として作用するので、データベース 上に実装される データ ではないとするのが妥当です。言い換えれば、「L-真」 の対照表は、プログラム のなかで アルゴリズム として記述するか、あるいは、(データベース を管理する) Data Dictionary のなかに定義するのが正当です。

 ただ、データベース を active に管理できる Data Dictionary がないので、私は、「L-真」 の対照表も データベース 上に実装しています。「L-真」 の対照表を データベース 上に実装すれば、「L-真」 を検証するための アルゴリズム はいらないので、プログラム が コンパクト (「見通し」 が良い状態) になります──プログラム は リレーショナル 演算 (select、join)・集合論演算を基本形にして、判断 if を排除した単純な構成になります。その典型的な例の一つが 本 エッセー で示した 「分布図」 でしょうね。




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