連載
» 2009年11月11日 00時00分 公開

ゼロからのデータモデリング入門(10):ビジネスの変化に強いデータモデルを作る (2/3)

[沖冠吾,株式会社アシスト]

複合キー

 複合キーを構成するキー項目の組み合わせや数が、将来変更されることがないか検証します。

 例えば図3左のように、商品の識別が分類項目との複合キーによって定義されている場合、新たに分類項目が追加されると複合キーの数が変更されることになり、データ構造そのものに影響を及ぼすことになります(図3右)。また、これらの変更の影響は商品だけにとどまらず、商品を参照しているさまざまなエンティティの外部キーの数にも影響を及ぼすことになります。データの移行やアプリケーションの改修、再テストなどの工数を考えると、運用後に大きな変更がないようにしておかなければなりません。

●図3 阻害要因(3)とその対処 ●図3 阻害要因(3)とその対処

有意コード

 複合キーと同様に、各けたがビジネス上の意味を持つ「有意コード」の場合も、コード内に内在する複数の意味の組み合わせや数、けた数などが将来変更することがないかを検証します。

 例えば図4のように、頭3けたが製品を、残り2けたが部門を表す「商品コード」で管理している場合、次のような変化があるとデータ構造は大きな影響を受けることになります。

  • 有意コード内の部門番号が統合
  • 取扱部門が時間の経過とともに増加
  • 有意コード内の組み合わせが変化

 また、1つの有意コード内には複数の情報が管理されるため、さまざまな切り口で情報分析するシステムでは扱いづらい存在になります。さらに、有意コード内の一部のけたで条件抽出した場合、索引が使用されないことによりレスポンスが悪化するなど、処理性能面でも影響があります。

 このような項目は非キーとして定義すべきであり、プライマリキーは連番などの代理キーを定義すればよいことになります。(図4右)

●図4 阻害要因(4)とその対処 ●図4 阻害要因(4)とその対処

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。