ビジネスの視点でデータを整理する
エンティティは一定のルールで関連付け可能
(5)手順9と手順10:「リレーションシップの定義とフォーリン・キーの設定」
手順9と手順10は、同時に行います。エンティティ間のリレーションシップは、フォーリン・キーの設定ルールをもとに設定します。親エンティティの識別子を子エンティティのフォーリン・キーとして設定することで、関連付けを行います。
この「フォーリン・キー設定ルール」は、手順7で識別したエンティティ・タイプと、エンティティ間の多重度を表すカーディナリティ(「1:N」、「N:N」)の組み合わせによって異なります。ここでは、いくつかの例を紹介します(図4)。
- (1)「リソース:イベント」が「1:N」の場合
-
「イベントがリソースを参照する」パターンは、最も多く見受けられます。図の例では、「顧客」と「受注」がこのパターンです。なお、フォーリン・キーの挿入先は、エンティティの独立性が「(N)」の場合にはプライマリ・キー側、「(U)」の場合には非キー側となります。
- (2)「イベント:イベント」が「1:1」の場合
-
イベント同士の場合、参照関係は時系列順になります。つまり「受注」が「請求」を参照するという関係になります。
- (3)「イベント:イベント」が「N:1」の場合
-
カーディナリティだけに着目して誤ってリレーションシップを定義することのないように注意します。時系列を正しく捉えれば、ビジネスの流れと参照関係が逆転したデータ・モデルを作ることはありません。
図4: フォーリン・キー設定ルール(クリックで拡大) |
(6)手順11:「DUMMYエンティティの解決」
手順9、10で「対応表」が追加されたら、DUMMYエンティティの各属性が従属できるかどうかを確認し、転記します。例えば、「受注数量」と「商品小計」が、対応表「受注・商品」の管理情報となるため、これに従属させます。また、「受注・商品」には「数量的要素項目」が従属したことで、イベントとして扱われます。
簡単ですが、以上が、正規化簡便法による手順です。
図5: DUMMYエンティティの解決(クリックで拡大) |
ビジネス活動を意識したER図の作成を
正規化によってデータの整理が完了しても、データの重複は依然として残っています。このため、次の工程である最適化と一般化の手順が控えています。次回は、これらに加え、ビジネスの変化に迅速かつ柔軟に対応するための施策「安定化検証」について紹介します。
「ビジネスを効率よく表現する。高品質なER図で表現する」ためには、なんらかの方法論に基づいた技法が必要です。正規化簡便法では、一般的な正規化手法では曖昧だった手順をなくすことを目的に、作業工程を細分化し、誰もが同じデータ・モデルを描けるようにルールを手順化しています。是非、実践してみてください。