Dwh-schemas
データウェアハウジング-スキーマ
スキーマは、データベース全体の論理的な説明です。 関連するすべてのデータ項目と集計を含む、すべてのレコードタイプのレコードの名前と説明が含まれます。 データベースと同様に、データウェアハウスもスキーマを維持する必要があります。 データベースはリレーショナルモデルを使用し、データウェアハウスはStar、Snowflake、およびFact Constellationスキーマを使用します。 この章では、データウェアハウスで使用されるスキーマについて説明します。
スタースキーマ
- スタースキーマの各ディメンションは、1次元のテーブルのみで表されます。
- このディメンションテーブルには、属性のセットが含まれています。
- 次の図は、時間、品目、支店、場所の4つのディメンションに関する会社の販売データを示しています。
- 中央にファクトテーブルがあります。 これには、4つの各次元へのキーが含まれています。
- ファクトテーブルには、属性(販売ドルと販売単位)も含まれています。
注-各ディメンションには1つのディメンションテーブルのみがあり、各テーブルには属性のセットが保持されます。 たとえば、ロケーションディメンションテーブルには、属性セット\ {location_key、street、city、Province_or_state、country}が含まれます。 この制約により、データの冗長性が生じる場合があります。 たとえば、「バンクーバー」と「ビクトリア」はどちらもカナダのブリティッシュコロンビア州にあります。 そのような都市のエントリは、provision_or_stateおよびcountry属性に沿ってデータの冗長性を引き起こす可能性があります。
スノーフレークスキーマ
- Snowflakeスキーマの一部のディメンションテーブルは正規化されています。
- 正規化は、データを追加のテーブルに分割します。
- スタースキーマとは異なり、スノーフレークスキーマのディメンションテーブルは正規化されます。 たとえば、スタースキーマのアイテムディメンションテーブルは正規化され、2つのディメンションテーブル、つまりアイテムテーブルとサプライヤテーブルに分割されます。
- これで、アイテムディメンションテーブルには、item_key、item_name、type、brand、supplier-keyの属性が含まれます。
- サプライヤキーは、サプライヤディメンションテーブルにリンクされています。 サプライヤディメンションテーブルには、属性supplier_keyおよびsupplier_typeが含まれています。
注-Snowflakeスキーマの正規化により、冗長性が低下するため、保守が容易になり、ストレージスペースを節約できます。
ファクトコンステレーションスキーマ
- ファクトコンステレーションには複数のファクトテーブルがあります。 これはgalaxyスキーマとも呼ばれます。
- 次の図は、販売と出荷という2つのファクトテーブルを示しています。
- 売上ファクトテーブルは、スタースキーマのテーブルと同じです。
- 出荷ファクトテーブルには、item_key、time_key、shipper_key、from_location、to_locationの5つのディメンションがあります。
- 出荷ファクトテーブルには、2つのメジャー、つまり販売ドルと販売単位も含まれています。
- ファクトテーブル間でディメンションテーブルを共有することもできます。 たとえば、時間、アイテム、および場所のディメンションテーブルは、販売ファクトテーブルと出荷ファクトテーブルの間で共有されます。
スキーマ定義
多次元スキーマは、データマイニングクエリ言語(DMQL)を使用して定義されます。 データウェアハウスとデータマートの定義には、キューブ定義とディメンション定義の2つのプリミティブを使用できます。
キューブ定義の構文
ディメンション定義の構文
スタースキーマ定義
我々が議論したスタースキーマは、次のようにデータマイニングクエリ言語(DMQL)を使用して定義することができます-
スノーフレークスキーマ定義
スノーフレークスキーマは、次のようにDMQLを使用して定義できます-
ファクトコンステレーションスキーマの定義
事実星座スキーマは、次のようにDMQLを使用して定義することができます-