A[受注番号]−(部署コード.商品コード.受注数.受注年月日・・・・・)というイベントエンティティのサマリー、つまり要約エンティティを考えてみます。
たとえばB[部署コード.商品コード.受注年月]−(受注合計数)です。
[部署コード]−(部署名)のエンティティインスタンスが全部で5件、
[商品コード]−(商品名)のエンティティインスタンスが全部で10件、
対象の受注年月は話を単純にするために当月分だけと仮定します。
このとき要約エンティティBの件数は部署エンティティと商品エンティティの直積である50件と考えられます。しかし、受注エンティティAをサマリーすると、実際に受注した部署や商品だけがサマリーの対象となりますから、要約エンティティBは50件よりもずっと少ない件数になります。
概念データモデルにエンティティタイプは表現できますが、エンティティセットの違いは表現しにくいです。もちろん、モデリングしていて困った場合はサブタイプの表現を使ってなんとか捌きます。しかし単に[部署コード.商品コード.受注年月]−(受注合計数)と記述されただけでは、直積かそうでないかの区別ができません。
直積でない場合、組み合わせがなかったエンティティインスタンスについては受注合計数=0と数字を入れることも可能です。もう一歩踏み込んで言えば、実務的に組み合わせが発生しうるものは、エンティティインスタンスが存在し受注合計数=0とすべきでしょう。逆に、実務的に組み合わせが発生しえないものは、エンティティインスタンスも存在しないと考えたいでしょう。このへんの微妙な表現までデータモデル上で扱えると良いのですが・・・。
























