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