スノーフレークスキーマとは?
すのーふれーくすきーま
スノーフレークスキーマとは、データウェアハウスで用いられるデータベース設計手法で、ディメンションテーブルをさらに正規化して階層化した構造のことです。
スノーフレークスキーマ(Snowflake Schema)は、データウェアハウス(DWH)の論理設計手法のひとつです。中央にファクトテーブル(売上や取引などの数値データ)を置き、その周囲にディメンションテーブル(日付・商品・顧客などの属性情報)を配置する点はスタースキーマと共通ですが、ディメンションテーブルをさらに正規化して複数の階層テーブルに分割しているのが大きな特徴です。
たとえば「商品」ディメンションを持つ場合、スタースキーマでは商品名・カテゴリ・サブカテゴリをひとつのテーブルにまとめますが、スノーフレークスキーマではカテゴリを別テーブルに分離し、さらにサブカテゴリを別テーブルに分けます。この階層構造が雪の結晶(スノーフレーク)に見えることから名付けられました。
スノーフレークスキーマの主なメリットとデメリットは以下のとおりです。
- データ冗長性の削減: 正規化により同じ値の繰り返しが減り、ストレージを節約できます。
- データ整合性の向上: 更新時の不整合が起きにくくなります。
- クエリの複雑化: テーブル結合が増えるため、SQL文が複雑になりクエリ速度が落ちることがあります。
- 設計・保守の難易度: スタースキーマと比べて設計が複雑です。
BIツールや分析用途ではスタースキーマが好まれる場合が多いですが、データの整合性やストレージ効率を重視する場面ではスノーフレークスキーマが選択されます。
使い方・例文
大規模なECサイトの売上分析システムを設計する際に、商品カテゴリの階層をスノーフレークスキーマで表現しデータの冗長性を抑えた。
この用語をシェア
最終更新: