この内容は、以前、日経システムで特集で組まれていた内容の箇条書きメモである。この筆者は、第7回の参考資料で上げた本の人と同じだったと思う。
データモデリングの8カ条
データの重複を防ぐ
- One Fact in One Place
-
モデルの正規化を適切に行う
-
異音同義語の存在を見抜き、適切に正規化する
-
移行データは期間限定で捨てる
-
コードの新旧を継続して持つということは辞める
-
重複データは作成元を明確にする
-
正規化を崩す場合は、正のデータがどれなのかを明確にする
-
追加・削除・変更などは同じトランザクション内で実施する
-
問題発生時には、すぐに再作成できる仕組みを用意する
データの誤りを防ぐ
- 掛け持ちデータを作らない
- NULL値を使ってはいけない
- データの登録時など、NULL登録しなければいけないような属性はモデリングとして不正確
- データのライフサイクルにあわせて登録するようなデータモデルを用意する
- 一つのエンティティに対して、異なるタイミングで追加される項目が混在していると起こる
- 主キーだけで統合しない
- 主キーが同じだからと言って安易にエンティティを統合しない
- 発生タイミングが異なるとNULL値が発生する
- トランザクションが特定のエンティティに集中することを防ぐ
データの抜けを防ぐ
- 分析用データは正規化しない
- マスターの断面管理を実践する
- 最新のマスタデータだけを保持するのではなく、変更履歴を保持する
トランザクションの分類コード
トランザクションデータを分析するときに便利な11種類の分類コード。最初からマスタデータにつけるのではなく、別途後付にする。
マスタデータを階層構造でとらえて分析するための分類コード
- 商品ブランド
- 商品階層
- 取引先グループ
- 販売チャネル
- 勘定科目
- 組織
意味の異なる値を正しく識別して分析するための分類コード
- 単位(個、ダース、コンテナなど)
- 国/地域(日本、米国など)
- 性別
- 通貨
- 言語
参考文献
日経システム 2011年 08号 特集 きれいなデータの作り方より