web-dev-qa-db-ja.com

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

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

ディメンションテーブルとファクトテーブルの違いを理解しようとしていますか?

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

簡単な例は理解を深めるのに役立ちますか?

61
user2467545

これは一部に答えることです:

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

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

詳細:

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

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

Snow Flakesモデルでは、Geo情報用に2つの正規化されたテーブル、つまりコンテンツテーブル、国テーブルを持つことができます。

スタースキーマには多くの例があります。また、スタースキーマモデルの代替ビュー Inmon vs. Kimball も確認してください。 Kimbalには良いフォーラムがあります。こちらもご覧ください: Kimball Forum

編集:4NFの例に関するコメントに答えるには:

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

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

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

AggregatedSales(BranchID、TotalAmount)

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

最後の例はかなり一般的ではありません。

35
NoChance

データウェアハウスモデリングでは、スタースキーマおよびスノーフレークスキーマで構成されますFactおよびDimensionテーブル。

ファクトテーブル:

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

寸法表:

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

enter image description here

画像ソース

81
Premraj

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

ディメンションを物やオブジェクトとして考えると役立つ場合があります。製品のようなものは、ビジネスイベントに関与することなく存在できます。ディメンションはあなたの名詞です。これは、販売などのビジネスイベントとは無関係に存在できるものです。製品、従業員、機器はすべて存在するものです。ディメンションは、何らかの処理を行うか、何らかの処理を行います。

従業員が販売し、顧客が購入します。従業員と顧客はディメンションの例です。

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

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

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

ソース: http://arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/

81
AeyJey

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

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

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

6
aa8y

超簡単な説明:

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

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

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

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

1
guest

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

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

1
user5729371