ファクトテーブルとディメンションテーブルの違いは何ですか?


112

ビジネスオブジェクトの本を読んでいるときに、用語ファクトテーブルとディメンションテーブルに遭遇しました。

ディメンションテーブルとファクトテーブルの違いは何ですか?

インターネットで記事をいくつか読んだが、はっきりと理解できなかった。

簡単な例は私がよりよく理解するのに役立ちますか?


コンセプトはかなり詳細に説明するには長めです。基本的な定義を超えた特定の問題がある場合は、それについて教えてください。
NoChance 2013年

基本的に、ディメンションテーブルがファクトテーブルにもなるかどうかを理解しようとしていましたか?

回答:


52

これはその部分に答えることです:

ディメンションテーブルがファクトテーブルにもなるかどうかを理解しようとしていましたか?

短い答え(INMO)は「いいえ」です。これは、2種類のテーブルがさまざまな理由で作成されているためです。ただし、データベース設計の観点からは、ディメンションテーブルは、常にディメンションテーブル(またはそれ以上)を親として持つファクトテーブルの場合と同様に、親テーブルを持つことができます。また、ファクトテーブルは集計される場合がありますが、ディメンションテーブルは集計されません。もう1つの理由は、ファクトテーブルが適切に更新されるとは限らないのに対し、ディメンションテーブルは適切に更新される場合があるためです。

詳細:

ファクトテーブルとディメンションテーブルは、一般にスタースキーマと呼ばれるものに表示されます。スタースキーマの主な目的は、複雑な正規化されたテーブルのセットを簡略化し、(おそらく異なるシステムからの)データを1つのデータベース構造に統合して、非常に効率的な方法でクエリできるようにすることです。

最も単純な形式では、ファクトテーブル(例:StoreSales)と1つ以上のディメンションテーブルが含まれます。各ディメンションエントリには、0、1以上のファクトテーブルが関連付けられています(ディメンションテーブルの例:地理、アイテム、サプライヤー、顧客、時間など)。ディメンションが親を持つことも有効です。その場合、モデルのタイプは「スノーフレーク」です。ただし、結合を増やすとパフォーマンスが低下するため、設計者はこの種の設計を回避しようとします。StoreSalesの例では、Geographyディメンションは列(GeoID、ContenentName、CountryName、StateProvName、CityName、StartDate、EndDate)で構成できます。

Snow Flakesモデルでは、Geo情報用に2つの正規化テーブル、つまりコンテンツテーブル、国テーブルを作成できます。

あなたはスタースキーマでたくさんの例を見つけることができます。また、これをチェックして、スタースキーマモデルInmon vs. Kimballの別のビューを確認してください。キンバルには良いフォーラムがあります。キンボールフォーラムもチェックしてみてください。

編集:4NFの例についてのコメントに答えるには:

  • 4NFに違反するファクトテーブルの例:

販売ファクト(ID、BranchID、SalesPersonID、ItemID、Amount、TimeID)

  • 4NFに違反していないファクトテーブルの例:

AggregatedSales(BranchID、TotalAmount)

ここでの関係は4NFにあります

最後の例はかなり珍しいです。


1
一部のファクトテーブルは、トランザクションレベルのデータを反映しています。一部は集計データを反映しています。スタースキーマのファクトテーブルは、3NFでなくてもかまいません。たとえば、Sales Factには(ID、BranchID、Amount、SalesPerson、Time)などのデータが含まれている可能性があります。SalesPersonとBranchの依存関係があるため、これは3NF、BCNF、4NFに違反しています。したがって、一般的なファクトテーブルが4NFにあるとは限りません。
NoChance 2013年

258

データウェアハウスモデリングでは、スタースキーマスノーフレークスキーマは、ファクトテーブルとディメンションテーブルで構成されます

ファクトテーブル:

  • これには、ディメンションのすべての主キーと、販売数量、販売金額、平均売上高などの関連するファクトまたはメジャー(計算を実行できるプロパティ)が含まれています。

寸法表:

  • ディメンションテーブルは、ファクトテーブルに記録されたすべての測定の説明情報を提供します。
  • ファクトテーブルの比較として、ディメンションは比較的非常に小さいです。
  • 一般的に使用される次元は、人、製品、場所、時間です。

ここに画像の説明を入力してください

画像ソース


52
これは、受け入れられた回答よりもはるかに役立ちます
Booji Boy

15
まあ、絵は千の言葉の価値があります。他の回答を読んでも何もわかりませんでしたが、これで助かりました。
One

ディメンションは、説明的なデータを持っているため、図のファクトテーブルと比較して比較的大きく見えます。そして、それらもより多くです
Blue Clouds

1
@Blue Clouds:ファクトテーブルには、dimのforの可能なすべての組み合わせに対して1つのエントリが含まれていることを理解する必要があります(少なくともデータがある場合)。ロケーションディメンションには最大で、可能なすべてのロケーション(たとえば、50のPOS)に対して1つのエントリが含まれますが、まれに大きくなることはありませんが、新しいposが追加されると、ファクトテーブルはおそらくロケーションxアイテムxブランチごとに毎日大きくなります。したがって、ファクトは非常に高速に多数のレコードを取得します。
ダニエル

@Premrajファクトテーブルは主キーなしで存在できますか?
カラナ

109

これは、ファクトテーブルとディメンションテーブルを区別する方法に関する非常に単純な答えのようです。

寸法を物体またはオブジェクトと考えると役立つ場合があります。商品などは、イベントに巻き込まれなくても存在することができます。次元はあなたの名詞です。これは、セールなど、ビジネスイベントとは無関係に存在できるものです。製品、従業員、設備はすべて存在するものです。ディメンションは、何かを実行するか、何かを実行します。

従業員は売り、顧客は買います。従業員と顧客はディメンションの例です。

製品は販売されており、何かが行われているため、寸法でもあります。

事実は動詞です。ファクトテーブルのエントリは、ディメンションテーブルの何かに発生する個別のイベントを示します。製品の販売はファクトテーブルに記録されます。販売のイベントは、販売された製品、販売された従業員、および購入された顧客によって記録されます。Product、Employee、およびCustomerはすべて、イベントである販売を表すディメンションです。

さらに、ファクトテーブルには通常、ある種の定量的データも含まれます。販売数量、アイテムあたりの価格、合計価格など。

出典:http : //arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/


5
優れた文章で、コンセプトを理解するのに必要な時間は5分だけです。
user1951 2018年

要約すると、ディメンションはファクトイベントの属性です。DAFE。DAFE、何してるの?
youcantryreachingme

3
はい、それは私がそれらを覚えている方法です。それはあなたが考えることの逆です。あなたは、事実そのものが石に設定され、次元自体が言葉そのものに基づいて動的であると考えるでしょう。しかし、それは逆です。基本的な薄暗いテーブルはかなり静的なルックアップリストであり、基本的なファクトテーブルは入力されている生きているデータです。
undrline '31年

1
これは私のお気に入りの説明であり、頭の中でクリックしてしまいました。ありがとう!
アルジュンアルン

9

この答えは、DB / DWの用語をあまり知らない人から見ると理解しやすいと思います。

http://databases.about.com/od/datamining/a/Facts-Vs-Dimensions.htm

より詳細に調べるために、最初にこれを確認してから、Emmad Kareemの回答を確認することをお勧めします。お役に立てば幸いです。


1
完全に明確な最初の説明。単純な素人の言葉で、いくつかの詳細を明らかにする非常に役立つ例。今やっとそれを手に入れました。
シャロン2016

とても素敵です...あなたは正しいと思います...最初にそれを読んでください。すべての回答は役に立ちます...しかし、これには、より「人間的な」言葉でコンセプトを言葉で表現する方法があります。
コード初心者

4

超簡単な説明:

ファクトテーブル:ルックアップIDを一緒にマップするデータテーブル。通常は、アプリケーションの中心となるメインテーブルの1つです。

ディメンションテーブル:ファクトテーブルで頻繁に繰り返される値(都市名や州など)を格納するために使用される参照テーブル。


2

最も単純な形式では、ディメンションテーブルは「マスター」テーブルのようなものだと思います。つまり、いわばすべての「アイテム」のリストを保持しています。

ファクトテーブルは、すべてのトランザクションを記述するトランザクションテーブルです。さらに、営業担当者ごとの総売上高、支店ごとの総売上高などの集計(グループ化)データ-このような種類のテーブルも、独立したファクトテーブルとして存在する場合があります。


2

ディメンションテーブル ディメンションテーブルは、ファクトテーブルに格納されている測定値の属性を含むテーブルです。このテーブルは、ノードのトラバースに使用できる階層、カテゴリ、ロジックで構成されています。

ファクトテーブルにはビジネスプロセスの測定値が含まれ、ディメンションテーブルの外部キーが含まれています。

例–ビジネスプロセスがレンガの製造である場合

1人のマシンで製造されたレンガの平均数–ビジネスプロセスの測定


1
  1. ファクトテーブルは、主にビジネスファクトと、ディメンションテーブルの主キーを参照する外部キーで構成されます。ディメンションテーブルは、主にテキストフィールドである説明的な属性で構成されます。
  2. ディメンションテーブルには、代理キー、自然キー、および一連の属性が含まれています。反対に、ファクトテーブルには、外部キー、測定値、縮退ディメンションが含まれています。
  3. ディメンションテーブルは、ファクトテーブルの測定に関する説明またはコンテキスト情報を提供します。一方、ファクトテーブルは企業の測定値を提供します。
  4. 2つのテーブルのサイズを比較すると、ファクトテーブルはディメンションテーブルよりも大きくなります。比較テーブルでは、ファクトテーブルよりも多くのディメンションが表示されます。ファクトテーブルでは、観察されるファクトの数は少なくなります。
  5. 最初に次元テーブルをロードする必要があります。ファクトテーブルの読み込み中に、ディメンションテーブルを確認する必要があります。これは、ファクトテーブルにディメンションテーブルの主キーであるメジャー、ファクト、および外部キーがあるためです。

続きを読む:ディメンションテーブルとファクトテーブル| の違い| ディメンションテーブルとファクトテーブルhttp://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo


-3

ディメンションテーブル:ディメンションテーブルと呼ばれる、特徴付けられた日付に関する情報を維持できます。

例:時間ディメンション、製品ディメンション。

ファクトテーブル:メトリックまたは事前計算データに関する情報を維持することができるだけです。

例:販売ファクト、注文ファクト。

スタースキーマ:開始スキーマとしてのディメンションテーブルフォームとの1つのファクトテーブルリンク。

ここに画像の説明を入力してください


2
(この投稿は質問に対する質の高い回答を提供していないようです。回答を編集するか、質問へのコメントとして投稿してください)。
sɐunıɔןɐqɐp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.