第5回:ディメンショナルモデリング:スタースキーマ
今回はデータベースのデザインでもっとも重要なディメンショナルモデリングのスタースキーマについて解説します。
データウェアハウスモデリングは業務データモデリングと違う
まず、スタースキーマについて説明する前に、データウェアハウスのモデリングと業務データベースのモデリングは違うということを強調しておきたいと思います。業務データベースの設計をやっていた人が、データウェアハウスのモデリングでまず驚くのがこの違いです。私も業務データベースの設計をしていたので、データウェアハウスのモデリングを勉強したときはあまりの違いになかなか馴染めませんでした。ということでまず次を読む前に業務データベースの設計は忘れてください!
データウェアハウスモデリングの極意!スタースキーマ
データウェアハウスのそもそもの目的ってなんでしょうか。そう、データを分析することです。データ分析では何に注目するものでしょうか。それは数字です。例えば、売上高、ウェブサイトのページビュー、会員数などです。データウェアハウスのモデリングでは、まずこの数字に着目します。モデリング用語ではこれをファクトと呼びます。製品によってはメジャーと呼んだりもします。
では、そのファクト、例えば売上高に着目した時にどうやって分析しますか?例えば、支社別の売上高とか月別の売上高とか顧客別とか、いくつかのまとまりで売上高を見ますよね?これをモデリングではディメンションと呼ぶのです。
そして、データウェアハウスのモデリングではファクトテーブルを真ん中において、それを囲むようにディメンションをリンクします。完成したモデルの形が星形に似ていることからスタースキーマと呼びます。
下記に例を示します。下記は売上ファクトテーブルを真ん中にして、それを日付ディメンション、営業所ディメンション、顧客ディメンションでリンクしています。
これにより簡単にGroup byでレポートを作ることができます。実際にサンプルデータで確認してみましょう。下記に上のモデリングのサンプルデータとレポートを示します。
レポートでは月別の売上を表示しています。SQLで言えば、SUM関数とGROUP BYで簡単に結果を出せます。スタースキーマの強みは、なんといってもレスポンスの早さです。ジョインが少ないので、クエリを素早く実行できるのです。
簡単な例ですが、以上がスタースキーマのモデリングの概要になります。
次回は階層とスノーフレークについて解説します。