ある企業が、データウェアハウスのスタースキーマ設計を採用してOLAP分析を行おうとしている。「売上ファクトテーブル」と「日付ディメンションテーブル・商品ディメンションテーブル・店舗ディメンションテーブル」の関係について、スタースキーマの特徴として最も正確に述べているものはどれか。
- A. ファクトテーブルには集計済みサマリーのみを格納し、個々のトランザクションレコードは保持しない
- B. ディメンションテーブルは数値の測定値のみを格納し、説明的な属性情報はファクトテーブルに集約される
- C. ファクトテーブルは各ディメンションテーブルの外部キーと測定値(売上金額・数量など)を持ち、ディメンションテーブルはファクトを説明する属性情報を持つ設計になっている
- D. スタースキーマでは全テーブルが1つのテーブルに非正規化統合されており、JOINが不要な設計になっている
解答と解説を見る
正解: C
スタースキーマの設計では、中央にファクトテーブルを配置し、そこに各ディメンションの外部キー(日付ID、商品ID、店舗ID)と測定値(売上金額、販売数量など)を格納する。周囲のディメンションテーブルには、ファクトを説明する属性情報(日付テーブルなら年・月・曜日・祝日フラグなど)を格納する。クエリはファクトとディメンションをJOINして多次元集計を行う。選択肢Aはファクトテーブルには個々のトランザクションレコード(詳細レベルのファクト)も格納されるため誤りである。集計済みサマリーしか持たないのはアグリゲートテーブルであり、ファクトテーブルとは異なる。選択肢Dはスタースキーマの説明として誤りである。スタースキーマは非正規化設計を採用しているが、複数のテーブルを1つに統合するわけではなく、ファクトテーブルとディメンションテーブルは別テーブルとして管理しJOINして使用する。選択肢Bはファクトとディメンションのテーブルの役割が逆転した説明で誤りである。測定値はファクトテーブルが持ち、説明属性はディメンションテーブルが持つのが正しい設計である。