スター スキーマとスノーフレーク スキーマ – それらの違い

スター スキーマとスノーフレーク スキーマの主な違い

  • スター スキーマは、最も単純なタイプのデータ ウェアハウス スキーマです。 その構造が星に似ているため、スター スキーマとして知られています。
  • スノーフレーク スキーマとスター スキーマを比較すると、スノーフレーク スキーマはスター スキーマの拡張であり、追加の次元が追加されています。 その図が雪の結晶に似ていることからスノーフレークと呼ばれています。
  • スター スキーマでは、単一の結合のみがファクト テーブルとディメンション テーブル間の関係を定義します。
  • スター スキーマには、ディメンション テーブルで囲まれたファクト テーブルが含まれています。
  • スノーフレーク スキーマはディメンション テーブルで囲まれ、ディメンション テーブルはさらにディメンション テーブルで囲まれます。
  • スノーフレーク スキーマでは、データをフェッチするために多くの結合が必要です。
  • スター スキーマとスノーフレーク スキーマを比較すると、スター スキーマの DB 設計はシンプルですが、スノーフレーク スキーマの DB 設計は非常に複雑です。

スタースキーマとは何ですか?

スタースキーマ データ ウェアハウスでは、星の中心に XNUMX つのファクト テーブルと、それに関連付けられた多数のディメンション テーブルを含めることができます。 その構造が星に似ているため、スター スキーマとして知られています。 スター スキーマ データ モデルは、最も単純なタイプのデータ ウェアハウス スキーマです。 これはスター結合スキーマとしても知られており、大規模なデータ セットのクエリ用に最適化されています。

次のスター スキーマの例では、ファクト テーブルが中央にあり、Dealer_ID、Model ID、Date_ID、Product_ID、Branch_ID などのすべてのディメンション テーブルと、販売数や収益などのその他の属性へのキーが含まれています。

スタースキーマ図の例
スタースキーマ図の例

スノーフレーク スキーマとは何ですか?

スノーフレークスキーマ データ ウェアハウスにおける、多次元データベース内のテーブルの論理的な配置です。 ER図 雪の結晶の形に似ています。 スノーフレーク スキーマはスター スキーマの拡張であり、追加の次元が追加されます。 ディメンション テーブルは正規化されており、データが追加のテーブルに分割されます。

次の Snowflake スキーマの例では、Country がさらに個別のテーブルに正規化されています。

スノーフレークスキーマの例

スノーフレークスキーマの例

スター スキーマとスノーフレーク スキーマの違い

スノーフレーク スキーマとスター スキーマの主な違いは次のとおりです。

スタースキーマ スノーフレークスキーマ
ディメンションの階層はディメンション テーブルに保存されます。 階層は個別のテーブルに分割されます。
これには、ディメンション テーブルで囲まれたファクト テーブルが含まれています。 ディメンション テーブルで囲まれた XNUMX つのファクト テーブル、さらにディメンション テーブルで囲まれたファクト テーブル
スター スキーマでは、単一の結合のみがファクト テーブルとディメンション テーブル間の関係を作成します。 スノーフレーク スキーマでは、データをフェッチするために多くの結合が必要です。
シンプルなDB設計。 非常に複雑な DB 設計。
非正規化されたデータ構造とクエリも高速に実行されます。 正規化されたデータ構造。
高レベルのデータ冗長性 非常に低レベルのデータ冗長性
単一ディメンション テーブルには集計データが含まれます。 データは異なるディメンション テーブルに分割されます。
キューブの処理が高速になります。 結合が複雑なため、キューブの処理が遅くなる可能性があります。
スター結合クエリ最適化を使用して、よりパフォーマンスの高いクエリを提供します。
テーブルは複数のディメンションに接続できます。
Snowflake スキーマは、複数のディメンションに接続される可能性が低い集中ファクト テーブルによって表されます。