前回「データモデル正規化の目的と役割」では、論理データモデルの基本品質を作る「正規化」についてお話ししました。今回は「ビジネスを反映したER図となっているか」という視点で、データモデルの品質を確認する方法についてお話しします。
データモデルには2つの品質があり、1つは「基本品質」、もう1つが「応用品質」となります。
第9回「データモデル正規化の目的と役割」でお話しした正規化は、論理データモデルの「基本品質」を作り込む作業です。正規化は、一定のルールに基づいてビジネスの管理対象を明確にし、業務ルールをとらえた上で、リレーションシップの定義を行っていきます。つまり、正規化のルールに従ってER図を作成することにより、データモデルの基本品質ができあがります。
基本品質が高くても、実際のビジネスに対応できるものでなければ、品質が高いとはいえません。日々変化するビジネスに対して、最小限の変更で対応できるデータモデル、つまり安定性が高いデータモデルを作成すること、これがデータモデルの「応用品質」を作り込むことになります。
では、安定性が高いデータモデルとはどのようなものでしょうか
第6回「基本設計で作るべき『論理データモデル』の考え方」でもお伝えしましたが、将来起こりうるビジネスの変化を見据え、その変化に対応できるデータベース構造を構築することにより、安定性が高いデータモデルを作成できます。
具体的にはプライマリキーやリレーションシップの変更をシミュレーションし、データモデルの安定性を阻害する要因を発見し、対処することになります。検証すべき対象はデータモデルを構成する各要素であり、それらがビジネスの変化(外的要因、内的要因)や時間の経過にも影響を受けにくい構造になっているかを検証します。
それでは、各要素における安定性の阻害要因と、その対処について見ていきましょう。
検証対象の中で最も重要となるのがプライマリキーです。プライマリキーを変更するとエンティティのインスタンスが識別できなくなるだけでなく、それを外部キーに持つほかのエンティティにも影響を及ぼすため、安定性を大きく損なう要因となります。
それでは、以下に挙げるいくつかの観点からプライマリキーの安定性を検証してみます。
データの値や属性(型、けた数、精度)が、将来変更されることがないか検証します。例えば図1の「仕入先製品コード」のように、プライマリキーが自社でコントロールできない外部依存項目の場合、将来変更される可能性があります。このような項目はプライマリキーではなく、非キーとして定義することで、変化の影響を最小限に抑えることができます。
読者の中には、非キーにすることでデータ値の一意性が損なわれることを不安に思う方もいることでしょう。そのような場合には、代替キー(Alternate Key)を定義することで、従来通りの一意性を保証することができます(図1右)。
次に組織変更の場合を考えてみましょう。例えば図2のように、現在の組織しか管理できないデータ構造の場合は、組織の分割/統合があると「組織番号」の値を洗い替えることになります。すなわち、「組織」を時系列で管理できないことが分かります。
現在の組織だけでなく以前の組織も管理する必要があれば、「組織」と「前組織」の対照表を定義することで対応することができます(図2右)。これは、前回お話しした正規化簡便法のリレーションシップの設定ルールに従えば、誰にでも導くことができるデータ構造といえます。また、組織と同じように分割/統合を繰り返すものには、生産管理の工程などがあり、ここでも同じルールを適用することができます。
Copyright © ITmedia, Inc. All Rights Reserved.