[ディメンショナルモデリング](https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/) は、[[Ralph Kimball]] が提唱したデータウェアハウス設計手法である。ビジネスプロセスを [[ファクトテーブル]] とディメンションテーブルに分離するスタースキーマが中核で、分析クエリの理解しやすさとパフォーマンスを両立させる点が特徴である。
この手法は、1996 年の『[[The Data Warehouse Toolkit]]』を起点に DWH 設計の標準になり、クラウド DWH 時代でも BI やレポーティングのデータマートとして機能し、セマンティックレイヤーや LLM ベース分析の前提構造として再評価が進んでいる。
## 設計プロセス
ディメンショナルモデリングの設計は、Ralph Kimball の [Four-Step Dimensional Design Process](https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/four-4-step-design-process/) として定式化されており、以下の順序で進める。
1. ビジネスプロセスを選択する
2. 粒度を宣言する (理想は最小粒度)
3. ディメンションを特定する
4. ファクトを特定する
## 設計テクニック
- [[長文テキスト属性は Text Comment Dimension に切り出す]]
- [[ディメンションテーブルの日付属性はプレーンな DATE をデフォルトにする]]
- [[スタースキーマの NULL 可否は列の役割で決める]]
- [[Default Row の行数は NULL の原因をどこまで区別するかで決める]]
- [[ファクトテーブルのサロゲートキーはグレイン列のハッシュとして生成する]] (仮)
- [[次元階層はファクトテーブルの FK ではなくディメンション内の属性として包含する]] (仮)
- [[低カーディナリティ属性は Junk Dimension に統合する]] (仮)
- [[同一概念のディメンションは Role-Playing Dimension で使い回す]] (仮)
## 用語集
- [[Centipede Fact Table]]
- [[Default Row]]
- [[Degenerate Dimension]]
- [[ファクトテーブル]]
- [[Junk Dimension]]
- [[Text Comment Dimension]]
## 参考文献
- [[The Data Warehouse Toolkit]]: ディメンショナルモデリングを体系的にまとめた原典
- [[Star Schema The Complete Reference]]: スタースキーマ設計の体系的な解説書
- [[アジャイルデータモデリング]]: ビジネスイベント分析と協働モデリングの実践書