データウェアハウス-スキーマ

スキーマは、ファクトテーブルとディメンションテーブルが論理的に結合されているデータベースの論理記述として定義されます。データウェアハウスは、スター、スノーフレーク、およびファクトコンステレーションスキーマの形式で維持されます。

スタースキーマ

スタースキーマには、ファクトテーブルと複数のディメンションテーブルが含まれています。各ディメンションは1つのディメンションテーブルのみで表され、正規化されていません。ディメンションテーブルには、一連の属性が含まれています。

特徴

  • スタースキーマには、1つのファクトテーブルと複数のディメンションテーブルしかありません。
  • スタースキーマでは、各ディメンションは1つのディメンションテーブルで表されます。
  • ディメンションテーブルは、スタースキーマでは正規化されていません。
  • 各ディメンションテーブルは、ファクトテーブルのキーに結合されます。

次の図は、時間、アイテム、支店、場所の4つのディメンションに関する会社の売上データを示しています。

中央にファクトテーブルがあります。これには、4つの次元のそれぞれに対するキーが含まれています。ファクトテーブルには、属性、つまり販売されたドルと販売されたユニットも含まれています。

Note−各ディメンションには1つのディメンションテーブルのみがあり、各テーブルは一連の属性を保持します。たとえば、場所ディメンションテーブルには、属性セット{location_key、street、city、province_or_state、country}が含まれています。この制約により、データの冗長性が発生する可能性があります。

For example−「バンクーバー」と「ビクトリア」の両方の都市は、カナダのブリティッシュコロンビア州にあります。このような都市のエントリは、属性province_or_stateおよびcountryに沿ってデータの冗長性を引き起こす可能性があります。

雪片スキーマ

Snowflakeスキーマの一部のディメンションテーブルは正規化されています。次の図に示すように、正規化によってデータが追加のテーブルに分割されます。

スタースキーマとは異なり、スノーフレークスキーマのディメンションのテーブルは正規化されます。

For example−スタースキーマのアイテムディメンションテーブルは正規化され、アイテムテーブルとサプライヤテーブルの2つのディメンションテーブルに分割されます。これで、アイテムディメンションテーブルに、属性item_key、item_name、type、brand、およびsupplier-keyが含まれます。

サプライヤキーは、サプライヤディメンションテーブルにリンクされています。サプライヤディメンションテーブルには、属性supplier_keyおよびsupplier_typeが含まれています。

Note − Snowflakeスキーマの正規化により、冗長性が低下するため、保守が容易になり、ストレージスペースを節約できます。

ファクトコンステレーションスキーマ(ギャラクシースキーマ)

ファクトコンステレーションには複数のファクトテーブルがあります。ギャラクシースキーマとも呼ばれます。

次の図は、2つのファクトテーブル、つまり販売と出荷を示しています。

販売ファクトテーブルは、スタースキーマのテーブルと同じです。出荷ファクトテーブルには、item_key、time_key、shipper_key、from_location、to_locationの5つのディメンションがあります。出荷ファクトテーブルには、販売されたドルと販売された単位の2つのメジャーも含まれています。ファクトテーブル間でディメンションテーブルを共有することもできます。

For example −時間、アイテム、および場所のディメンションテーブルは、販売ファクトテーブルと出荷ファクトテーブルの間で共有されます。