ファクトテーブルとディメンションテーブルの違い

著者: Laura McKinney
作成日: 1 4月 2021
更新日: 13 5月 2024
Anonim
ファクト テーブルとディメンション テーブルの違い - インタビューの質問
ビデオ: ファクト テーブルとディメンション テーブルの違い - インタビューの質問

コンテンツ


ファクトテーブルとディメンションテーブルは、 スキーマ。ファクトテーブルのレコードは、異なるディメンションテーブルの属性の組み合わせです。ファクトテーブルは、ユーザーがビジネスディメンションを分析するのに役立ち、ビジネスを改善するための意思決定に役立ちます。一方、ディメンションテーブルは、ファクトテーブルが対策を講じる必要があるディメンションを収集するのに役立ちます。

ファクトテーブルとディメンションテーブルを区別するポイントは、 寸法表 測定が行われる属性が含まれます ファクトテーブル。ファクトテーブルとディメンションテーブルの違いを作成する要因は他にもあります。以下に示す比較チャートを見てみましょう。

  1. 比較表
  2. 定義
  3. 主な違い
  4. 結論

比較表

比較の根拠ファクト表寸法表
ベーシックファクトテーブルには、ディメンションテーブルの属性に沿った測定値が含まれます。 ディメンションテーブルには、ファクトテーブルがメトリックを計算する属性が含まれています。
属性と記録 ファクトテーブルには、より少ない属性とより多くのレコードが含まれます。ディメンションテーブルには、より多くの属性とより少ないレコードが含まれます。
テーブルサイズファクトテーブルは垂直方向に成長します。ディメンションテーブルは水平方向に拡大します。
キー ファクトテーブルには、すべてのディメンションテーブルのプライマリキーを連結したプライマリキーが含まれています。 各ディメンションテーブルには、そのプライマリキーが含まれています。
作成ファクトテーブルは、ディメンションテーブルが完成したときにのみ作成できます。最初にディメンションテーブルを作成する必要があります。
スキーマ スキーマに含まれるファクトテーブルの数は少なくなります。スキーマには、より多くのディメンションテーブルが含まれます。
属性ファクトテーブルには、数値形式とual形式のデータを含めることができます。ディメンションテーブルには、常にual形式の属性が含まれます。


ファクトテーブルの定義

ファクトテーブルは、以下を含むテーブルです 測定値 ディメンションテーブルの属性に沿って。可能な限り低いレベルの情報を含めることができます。一部のファクトテーブルには、サマリーデータが含まれています。 集計ファクト表。ファクトテーブルにはほとんどが含まれます 日付入り データ。ファクトテーブルの特性について説明します。

連結キー
ファクトテーブルには、すべてのディメンションテーブルのプライマリキーを連結した連結キーが含まれています。ファクトテーブルの連結キーは、ファクトテーブル内の行を一意に識別する必要があります。

データグレイン
データの粒度は、ファクトテーブルの測定値がどの程度保存されているかを示します。データの粒度は可能な限り最高レベルでなければなりません。

加算的測定
ファクトテーブルの属性は 完全に添加物 または セミアディティブ。完全に加算的なメジャーは、ファクトテーブルのすべてのディメンションについて簡単に要約できるメジャーです。たとえば、quantity_orderedは、すべてのディメンションについて合計できる属性です。同様に、特定の顧客、地域、日付、ブランドなどについて、quantity_orderの合計を取り出すことができます。準加法メジャーは、すべてのディメンションではなくファクトテーブルのディメンションに沿って合計できるメジャーです。同様に、残高は時間とともに変化するため、時間ディメンションにわたって合計することはできません。

スパースデータ
時々私たちは持っているファクトテーブルのレコードを見ることがあります と属性 ヌルメジャー。たとえば、休日には注文がない場合があります。そのため、この日付の属性にはNULLメジャーがあります。情報を提供しないため、このような種類のレコードのメジャーを保存する必要はありません。


縮退した寸法
場合によっては、ファクトテーブルのいくつかのディメンションに出くわすことがありますが、これらはまったく加算されません。たとえば、order_number、customer_id、これらのタイプのディメンションは追加できません。ただし、場合によっては、特定の顧客が今月に行った注文を見つける必要があります。検索を関連付けるにはcustomer_idが必要になります。ファクトテーブルの属性またはディメンションが呼び出される場合、これらのタイプ 縮退したディメンション.

ディメンションテーブルの定義

ディメンションテーブルは、スキーマの開始の重要なコンポーネントです。ディメンションテーブルには、ディメンションを表す属性が含まれ、それに沿ってファクトテーブルで測定が行われます。さらに、ディメンションテーブルのいくつかの特性について説明します。

属性とキー
すべてのディメンションテーブルには 主キー テーブルの各レコードを一意に識別します。一般的に、ディメンションテーブルには多くの属性が含まれています。したがって、それは ワイド つまり、ディメンションテーブルを作成すると、そのテーブルが広がります。 水平に.

属性値
ディメンションテーブルの属性の値はめったに数値ではありません。ほとんどの場合、属性の値は デュアルフォーマット。たとえば、製品名、ブランド、カテゴリ、サブカテゴリなど。

属性間の関係
多くの場合、ディメンションテーブルで遭遇する属性は直接関係していません。同様に、Product_brandはpackage_dateに対して何もする必要はありませんが、それでも両方がProductディメンションテーブルの属性になる可能性があります。

正規化
次元テーブルは じゃない 察するに 正規化。これは、テーブルを正規化すると多くの中間テーブルが作成されるためです。クエリがディメンションテーブルから属性を取得し、ファクトテーブルの測定値に沿って測定値を回復する場合、クエリは非効率になる中間テーブルを経由する必要があります。したがって、ディメンションテーブルは正規化されません。

ドリルダウン、ロールアップ
ディメンションテーブルの属性を使用すると、より高いレベルの集約属性からより低いレベルの属性に移動することにより、詳細を取得できます。たとえば、ある地域の総売上高を検索する場合は、ドリルダウンして州、都市、郵便番号ごとの売上高を検索できます。ロールアップして、最初に郵便番号で、次に市、州で合計売上を見つけることもできます。

複数の階層
多くの場合、ディメンションテーブルは複数の階層を提供します。たとえば、デパートの製品ディメンションテーブルがあります。現在、マーケティング部門と経理部門の2つの部門があります。

マーケティング部門は、特定の階層の製品ディメンションテーブルの属性をドリルダウンして、ファクトテーブルの測定値を取得します。

一方、経理部門は、異なる階層の製品ディメンションテーブルの属性をドリルダウンして、ファクトテーブルの測定値を取得します。

したがって、ディメンションテーブルには、ユーザーが複数の階層のいずれかに沿ってドリルダウンできるように、複数の階層または属性の集約レベルが必要です。

記録
ディメンションテーブルの属性は多すぎますが、レコードは少なくなります。

  1. ファクトテーブルには、ディメンションテーブルのディメンション/属性に沿った測定値が含まれます。
  2. ディメンションテーブルと比較して、ファクトテーブルにはより多くのレコードが含まれ、属性はより少なくなりますが、ディメンションテーブルにはより多くの属性とより少ないレコードが含まれます。
  3. ファクトテーブルのテーブルサイズは垂直方向に大きくなりますが、ディメンションテーブルのテーブルサイズは水平方向に大きくなります。
  4. 各ディメンションテーブルには、テーブル内の各レコードを識別するためのプライマリキーが含まれていますが、ファクトテーブルには、すべてのディメンションテーブルのすべてのプライマリキーの組み合わせである連結キーが含まれています。
  5. ファクトテーブルを作成する前に、ディメンションテーブルを記録する必要があります。
  6. スキーマに含まれるファクトテーブルの数は少なくなりますが、ディメンションテーブルの数は増えます。
  7. ファクトテーブルの属性は数値とualですが、ディメンションテーブルの属性はual属性のみを持ちます。

結論:

スキーマの作成にはどちらも等しく重要ですが、ディメンションテーブルはファクトテーブルの前に記録する必要があります。ディメンションなしでファクトテーブルを作成することは不可能です。