2011年5月10日火曜日

第5回:ディメンショナルモデリング:スタースキーマ

今回はデータベースのデザインでもっとも重要なディメンショナルモデリングのスタースキーマについて解説します。

データウェアハウスモデリングは業務データモデリングと違う
まず、スタースキーマについて説明する前に、データウェアハウスのモデリングと業務データベースのモデリングは違うということについて強調しておきたいと思います。業務データベースの設計をやっていた人が、データウェアハウスのモデリングでまず驚くのがこの違いです。私も業務データベースの設計をしていたので、データウェアハウスのモデリングを勉強したときはあまりの違いになかなか馴染めませんでした。

ということでまず次を読む前に業務データベースの設計は忘れてください!

データウェアハウスモデリングの極意!スタースキーマ
データウェアハウスのそもそもの目的ってなんでしょうか。そう、データを分析することです。データ分析って何に注目するのでしょうか。それは数字です。例えば、売上高、ウェブサイトのページビュー、会員数などです。データウェアハウスのモデリングはまずこの数字に着目します。モデリング用語ではこれをファクトと呼びます。製品によってはメジャーと呼んだりもします。

では、そのファクト、例えば売上高に着目した時にどうやって分析しますか?例えば、支社別の売上高とか月別の売上高とか顧客別とか、いくつかのまとまりで売上高を見ますよね?これをモデリングではディメンションと呼ぶのです。

そして、データウェアハウスのモデリングではファクトテーブルを真ん中において、それを囲むようにディメンションをリンクします。モデリングのかたちが星形に似ていることからスタースキーマと呼ばれます。

下記に例を示します。下記は売上ファクトテーブルを真ん中にして、それを日付ディメンション、営業所ディメンション、顧客ディメンションでリンクしています。



これにより簡単にGroup byでレポートを作ることができます。実際にサンプルデータで確認して見ましょう。
下記に上のモデリングのサンプルデータとレポートを示します。


レポートでは月別の売上を表示しています。SQLで言えば、SUM関数とGROUP BYで簡単に結果を出すことができます。スタースキーマの強みはなんといってもレスポンスの早さです。ジョインが少ないので、クエリを素早く実行することができます。

簡単な例ですが、以上がスタースキーマのモデリングの概要になります。
次回は階層とスノーフレークについて解説します。

0 件のコメント:

コメントを投稿