プログラマ38の日記

主にプログラムメモです。

DWH: スタースキーマをベースにあらためて考えてみたデータモデリングの9つのこと

DWHのデータモデルでとても有名な"スタースキーマ"。

でも、アプライアンスDBを導入したんだからきちんと正規化した方が後々使いやすいといった意見もあったりします。

 

私は、スタースキーマはとてもシンプルでわかりやすく、そして結合が少なくて使いやすい、何より性能が安定するモデルと考えています。

そこで、自分の思いを踏まえてスタースキーマをベースにしたデータモデリングについて書いていこうと思います。

 

[いわゆるスタースキーマの絵] ※以前の記事にも同じものを貼っています

真ん中の売上データのテーブルを一般的にファクトテーブル(以下、ファクト)そして、周りのカレンダ、商品、店舗、顧客のテーブルをディメンションテーブル(以下、ディメンション)という名前で呼びます。

f:id:crmprogrammer38:20170208123750p:plain

 

 

1.ディメンションとファクトは、物理的に1:Nで結合する。

2.ディメンションとファクトは、内部結合にする。

3.ヘッダと明細の構成のファクトは1つのファクトに結合する。

4.結合するキーは極力サイズを小さくする。

5.ディメンションを大きくし過ぎない。

6.ファクトは極限まで小さくする。

7.先週との比較値、先月との比較値、前年との比較値などは、BIツールの機能を利用する。(機能がないならデータマートを作ろう)

8.ナチュラルキーを基本とし、サロゲートキーはピンポイントで使う。

9.1から8にとらわれすぎない。

 

次からの記事で1つ1つを細かく記載します。