【スタースキーマ】

スタースキーマ とは?

最終更新:
💡 分析する出来事を中心に、商品・日付などの切り口をつなぐ

分析向けのテーブル設計パターン。売上などの出来事を記録するファクトテーブルを中心に、商品・顧客・日付などのディメンションテーブルを結び、絞り込みや集計を行いやすくする。

📌 このページのポイント
出来事と分析の切り口を結ぶ 日付 日付ID 年・月 商品 商品ID 商品名 カテゴリ 顧客 顧客ID 名前 地域 売上ファクト 商品ID・顧客ID 日付ID 数量・金額 1行=注文明細 青:ディメンション(分析の属性) 線:キーを使ったテーブルの関係 例:カテゴリ別・月別の売上集計
注文明細を1行とする売上の仮例。ファクトは数字だけでなく属性へのキーも持つ。線は処理の順序ではない。
ひよこ ひよこ
スタースキーマって星形のデータベース?
ペンギン先生 ペンギン先生
テーブルの関係図が星形に見える設計だよ。中心のファクトに売上などの出来事を記録し、商品・顧客・日付といったディメンションを周囲につなぐ。実際の記憶装置が星形になるわけではないよ。
ひよこ ひよこ
ファクトは数字だけのテーブルなの?
ペンギン先生 ペンギン先生
金額や数量などの集計対象だけでなく、どの商品・顧客・日付に対応するかを示すキーも持つよ。ディメンションには商品名やカテゴリ、地域などを置き、絞り込みやグループ分けに使うんだ。
ひよこ ひよこ
1行が何を表すかも決めるの?
ペンギン先生 ペンギン先生
それが粒度だよ。たとえば「注文の明細1行」なのか「月ごとの商品別売上」なのかを決める。同じファクトに異なる粒度を不用意に混ぜると、集計を誤る原因になるので、粒度をそろえて記録するんだ。
ひよこ ひよこ
BIツールではどう使うの?
ペンギン先生 ペンギン先生
ディメンションで「どの商品カテゴリか」「どの月か」と絞り込み、ファクトの金額などを集計する。分析の切り口と集計対象を分けた構造なので、Power BIなどのモデルを整理するのに役立つよ。
ひよこ ひよこ
ペンギン先生 ペンギン先生
必ずではないよ。スノーフレークは商品・カテゴリなど、ディメンションをさらに正規化して分ける設計。結合の数や重複データ、使いやすさに違いがあり、性能や容量の最適な選択はデータ量と実装、問い合わせによって変わるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「スタースキーマ」って出てきたら「分析する出来事を中心に、属性のテーブルをつなぐ設計」と思えばだいたいOK!
📖 おまけ:英語の意味
「Star Schema」 = 星形スキーマ
💬 ER図を描くとファクトテーブルを中心にディメンションテーブルが放射状につながって、星(Star)のように見えるからこう呼ばれるんだよ

参考資料

← 用語集にもどる