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

ゼロからのデータモデリング入門(9):データモデル正規化の目的と役割 (2/3)

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

正規化簡便法について

 では、正規化簡便法はどのような手順で実施するのか見てみましょう。正規化簡便法は11の手順(表1参照)に従い正規化作業を行うことで第3正規化まで完了することができます。本連載ではこの中で特に重要となる個所についてのみご紹介します。

●表1 正規化簡便法11の手順
手順 作業項目 作業内容
1 識別子の洗い出し 企業が管理対象としたビジネス上の事物や事象、概念を表す識別子。(受注番号、製品番号など)
2 エンティティの命名 識別子から「コード」「番号」「ID」「SEQ」などを除外した属性名をエンティティ名とする
3 属性の洗い出し 識別子に従属する属性の洗い出し。従属しない属性は、いったんDUMMYエンティティに従属させる
4 繰り返し項目の確認 手順3で抽出した属性から繰り返し項目群を見つけ出し、新たなエンティティとして切り出す
5 属性間の確認 手順3で抽出した属性間に従属関係がないかチェックし、あれば新たなエンティティとして切り出す
6 導出項目の確認 手順3で抽出した属性が、導出項目(計算結果)かどうかを確認し、導出項目であれば(D)を記入
7 エンティティ・タイプの識別 エンティティが、リソース系かイベント系かを識別し、リソース系は(R)、イベント系は(E)を記入
8 独立性の識別 識別子がエンティティ内で一意性を保証しているかを識別し、一意性がある場合は(U)、一意性がない場合は(N)を記入
9 リレーションシップの定義 手順9と手順10は同時に実施。リレーションシップの定義は、親エンティティのプライマリキーを、子エンティティの外部キーとして設定する。この際「外部キー設定ルール」に従い外部キーを設定する。エンティティ・タイプと、カーディナリティによりルールは異なる
10 外部キーの設定
11 DUMMYエンティティの解決 手順3で一旦DUMMYエンティティに従属させた属性の従属先エンティティを決める

手順1:識別子の洗い出し

 正規化簡便法の中で最も特徴的な手順が、この識別子の洗い出しです。プライマリキーではなく、識別子という考え方でデータを整理するため、複合キーに悩まされることもありません。

 識別子とは、多くのデータ群からエンティティを識別するためのIDであり、1つの属性のみで構成され、1つの識別子をもとに1つのエンティティが生成されます。企業が管理対象としたビジネス上の事物や事象、概念には、すべてこの識別子が存在します。識別子の探し方は簡単で、既存のファイルや帳票/画面の属性名に[コード]や[番号][ID][SEQ]などが含まれるものが候補となります。例えば「部門コード」や「受注番号」「請求No」「社員ID」「工程SEQ」などです。

手順3:属性の洗い出し

 手順1で洗い出された識別子に従属する属性を見つけ出します。その際、いずれの識別子にも従属しない属性は、いったん「DUMMYエンティティ」に従属(移動)させます。DUMMYエンティティに従属する属性とは、複合キーにしか従属できない属性です。例えば、図5にある「運賃」は、「地域コード」と「車種コード」の複合キーにより初めて一意になるため、手順3の時点では、DUMMYエンティティに従属させます。

●図5 DUMMYエンティティ ●図5 DUMMYエンティティ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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