KEYを頼りにエンティティを見つける方法は、誰でも同じ答えにたどり着く、よい方法です。
一方で、形式的なモデリングになりがちで、ほんもののエンティティにたどり着く保証はありません。
いくつかの限界を紹介します。
第一に、すでに存在するKEYの名称に、エンティティの名称が左右されます。「顧客コード」があった、だから「顧客エンティティ」を見つけた!となるわけで、この名称が適切でないと、とんでもないエンティティがデータモデルに登場します。
第二に、コードや番号の体系が、実世界の管理対象の構造とずれている場合です。コード体系のまずさばかりが目立つデータモデルができあがり、ほんとうに見るべき対象が出てきません。典型的なものは「商品コード体系」です。30桁もあり、それぞれの桁に意味があると、その構造を可視化するので精一杯。商品本来の構造が見えてきません。
第三に、同じ管理対象が2つ、3つとKEYをもっている場合です。帳票や画面単位の小さなデータモデルを作成しているときは問題ないのですが、200〜300を超える画面・帳票の範囲に広がると健在化します。すなわち、本来は1つのエンティティとして認識すべきところ、それぞれのコードの名称が異なるために、2つ、3つのエンティティが切り出されてしまうのです。
この場合の正解は、1つのエンティティに2つ、3つのKEYを記述しなければなりません。(ちなみに、この表現を「代替KEY」と呼んでいます。)これをつきとめるためには、データ項目の値を検証する必要があります。「顧客コード=0001が鈴木商店、企業コード=357が鈴木商店、よってこの2つは同じ企業を指していますね」といった要領です。
限界があるとしても、KEYに頼った第一近似データモデルは、より本質的なエンティティに近づくために必要です。ユーザ部門とシステム部門が共通に会話できる「共通言語」と「場」ができるからです。
« KEYがエンティティの守備範囲を決めるエンティティの粒度 »
























