本文へスキップ

スノーフレークスキーマとは?

すのーふれーくすきーま

スノーフレークスキーマとは、データウェアハウスで用いられるデータベース設計手法で、ディメンションテーブルをさらに正規化して階層化した構造のことです。

スノーフレークスキーマSnowflake Schema)は、データウェアハウス(DWH)の論理設計手法のひとつです。中央にファクトテーブル売上取引などの数値データ)を置き、その周囲にディメンションテーブル(日付・商品・顧客などの属性情報)を配置する点はスタースキーマと共通ですが、ディメンションテーブルをさらに正規化して複数の階層テーブルに分割しているのが大きな特徴です。

たとえば「商品」ディメンションを持つ場合、スタースキーマでは商品名・カテゴリ・サブカテゴリをひとつのテーブルにまとめますが、スノーフレークスキーマではカテゴリを別テーブルに分離し、さらにサブカテゴリを別テーブルに分けます。この階層構造が雪の結晶(スノーフレーク)に見えることから名付けられました。

スノーフレークスキーマの主なメリットとデメリットは以下のとおりです。

  • データ冗長性の削減: 正規化により同じ値の繰り返しが減り、ストレージを節約できます。
  • データ整合性の向上: 更新時の不整合が起きにくくなります。
  • クエリの複雑化: テーブル結合が増えるため、SQL文が複雑になりクエリ速度が落ちることがあります。
  • 設計・保守の難易度: スタースキーマと比べて設計が複雑です。

BIツールや分析用途ではスタースキーマが好まれる場合が多いですが、データの整合性やストレージ効率を重視する場面ではスノーフレークスキーマが選択されます。

使い方・例文

大規模なECサイトの売上分析システムを設計する際に、商品カテゴリの階層をスノーフレークスキーマで表現しデータの冗長性を抑えた。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語