15年以上も前になりますが、「エンティティとは何か」を議論したことがあります。そのときの話を紹介します。
一般に、エンティティを認識するためには、「KEYの値を決めると従属データの値が決まる」という関係を見つけなければなりません。「この関係に着目すると加工式を一種のエンティティとして認識できるのではないか」とある人が言うのです。
たとえば商品単価×受注数量=受注金額という加工式があった場合
[商品単価.受注数量]−(受注金額)というエンティティになります。[商品単価.受注数量]がKEYで(受注金額)が従属データです。
このように考えると独立変数と従属変数が固定的な加工式はすべてエンティティとなります。もっと汎化すると[かける数.かけられる数]−(積)までエンティティとなるのでしょうか?
加工式がエンティティだとすると、加工結果の値を得る処理は、関数をつかった計算ではなくKEYを指定して従属データを得るJOINだということになります。KEYの値を指定して帰り値を得ると割り切ってしまえば、関数もデータベースも一種のサービスであると言えるかもしれません。
実際のところ、概念データモデル上にエンティティとして認識した加工式を表現することはありません。「四則演算として認識するもの」と「データとして認識するもの」は区別しています。一般の関数従属と区別するために、四則演算の関係を算術従属と呼ぶことがあります。
























