【スタースキーマ】
スタースキーマ とは?
💡 データ分析のための星座図、真ん中に数字・周りに説明
📌 このページのポイント
- 中央のファクトテーブル(数値データ)と周囲のディメンションテーブル(属性データ)で構成される
- テーブル構造がシンプルでクエリが書きやすく、分析用途に最適化されている
- OLAPやBIツールと相性がよく、データウェアハウスの標準的な設計パターン
- スノーフレークスキーマと比較して非正規化寄りだが、クエリ性能に優れる
スタースキーマって、星の形をしたデータベースなの?
テーブルの関係図を描くと星形に見えるからそう呼ばれるんだ。真ん中に「ファクトテーブル」という売上金額とか数量とかの数値データを入れるテーブルがあって、そこから放射状に「ディメンションテーブル」という商品名や日付、店舗情報などの属性テーブルがつながるんだよ
なんで普通のテーブル設計じゃダメなの?
ファクトテーブルとディメンションテーブルって具体的にはどんな感じ?
BIツールと相性がいいって聞いたけど、なんで?
スノーフレークスキーマっていうのもあるの?
あるよ。スタースキーマのディメンションテーブルをさらに正規化して分割したのがスノーフレークスキーマだよ。例えば「商品」テーブルから「カテゴリ」テーブルを分離するイメージ。雪の結晶みたいに枝分かれするから雪片(Snowflake)と呼ばれるんだ
どっちを使えばいいの?
基本はスタースキーマがおすすめだよ。クエリがシンプルで速いし、理解しやすいからね。スノーフレークスキーマはディスク容量を節約できるメリットがあるけど、最近はストレージが安いから、クエリ性能を優先してスタースキーマを選ぶケースが多いんだよ
📖 おまけ:英語の意味
「Star Schema」 = 星形スキーマ
💬 ER図を描くとファクトテーブルを中心にディメンションテーブルが放射状につながって、星(Star)のように見えるからこう呼ばれるんだよ