なぜresourceにeventが混入してはいけないのか


T字形ER手法は

  • eventへのresource混入
  • resourceへのevent混入

を許さない。
例えば「社員マスタに所属部門コードがある」というデータ構造

社員マスタ = { 社員番号, 社員名, 所属部門コード }

は、社員というresourceに配属というeventが混入していると見なされ、修正される。

社員マスタ(R) = { 社員番号, 社員名 }
配属(E) = { 社員番号, 所属部門コード }

T字形がここにこだわる理由は何か。
一つはデータ構造が安定する(同時に複数部門に配属される社員が発生した時にデータ構造を変更しなくてよい)からだが、野矢茂樹 ウィトゲンシュタイン『論理哲学論考』を読む (ちくま学芸文庫) を読んだらインスパイヤされて別の理由が見えてきた。


論証を飛ばしていきなり結論を書くと、entityの数が、データベースが生み出す情報量の限界を決めているのだ。だから、entityを細かく分解していくほど、データベースの価値が上がっていく。
記録されているデータ項目数が増えなくても、entityの分解をすれば、そのデータベースから儲かる情報を抽出できる可能性が増えるのだ。
社員マスタだけより、社員マスタ+配属の方が、打ち手の数が多くなる。配属に別のresourceをぶつけて、新たな対照表を生むことができるから。
よく「使いもしないデータを取っておいても無駄」とか言うけど、そのデータが resource として独立していない(eventに埋まっている)から使えないだけなのではないか、と疑ってみる必要がある。


... むーん。そんなに間違ってないと思うけど、説得力のある具体例が欲しいな。