複合キーを構成するキー項目の組み合わせや数が、将来変更されることがないか検証します。
例えば図3左のように、商品の識別が分類項目との複合キーによって定義されている場合、新たに分類項目が追加されると複合キーの数が変更されることになり、データ構造そのものに影響を及ぼすことになります(図3右)。また、これらの変更の影響は商品だけにとどまらず、商品を参照しているさまざまなエンティティの外部キーの数にも影響を及ぼすことになります。データの移行やアプリケーションの改修、再テストなどの工数を考えると、運用後に大きな変更がないようにしておかなければなりません。
複合キーと同様に、各けたがビジネス上の意味を持つ「有意コード」の場合も、コード内に内在する複数の意味の組み合わせや数、けた数などが将来変更することがないかを検証します。
例えば図4のように、頭3けたが製品を、残り2けたが部門を表す「商品コード」で管理している場合、次のような変化があるとデータ構造は大きな影響を受けることになります。
また、1つの有意コード内には複数の情報が管理されるため、さまざまな切り口で情報分析するシステムでは扱いづらい存在になります。さらに、有意コード内の一部のけたで条件抽出した場合、索引が使用されないことによりレスポンスが悪化するなど、処理性能面でも影響があります。
このような項目は非キーとして定義すべきであり、プライマリキーは連番などの代理キーを定義すればよいことになります。(図4右)
Copyright © ITmedia, Inc. All Rights Reserved.