ビジネスオブジェクトの本を読んでいると、用語テーブルとディメンションテーブルに出会いました。
ディメンションテーブルとファクトテーブルの違いを理解しようとしていますか?
インターネットでいくつかの記事を読みましたが、はっきりと理解できませんでした。
簡単な例は理解を深めるのに役立ちますか?
これは一部に答えることです:
ディメンションテーブルもファクトテーブルにできるかどうかを理解しようとしていましたか?
短い答え(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の例に関するコメントに答えるには:
売上ファクト(ID、BranchID、SalesPersonID、ItemID、Amount、TimeID)
AggregatedSales(BranchID、TotalAmount)
ここで、関係は4NFにあります
最後の例はかなり一般的ではありません。
データウェアハウスモデリングでは、スタースキーマおよびスノーフレークスキーマで構成されますFactおよびDimensionテーブル。
ファクトテーブル:
寸法表:
これは、ファクトテーブルとディメンションテーブルを区別する方法に関する非常に簡単な答えのようです。
ディメンションを物やオブジェクトとして考えると役立つ場合があります。製品のようなものは、ビジネスイベントに関与することなく存在できます。ディメンションはあなたの名詞です。これは、販売などのビジネスイベントとは無関係に存在できるものです。製品、従業員、機器はすべて存在するものです。ディメンションは、何らかの処理を行うか、何らかの処理を行います。
従業員が販売し、顧客が購入します。従業員と顧客はディメンションの例です。
製品は販売されていますが、製品には何かが施されているため、寸法でもあります。
事実は動詞です。ファクトテーブルのエントリは、ディメンションテーブルの何かに発生する個別のイベントをマークします。製品の販売は、ファクトテーブルに記録されます。販売のイベントは、販売された製品、販売された従業員、および購入された顧客によって記録されます。製品、従業員、および顧客はすべて、イベント、販売を記述するディメンションです。
さらに、ファクトテーブルには通常、ある種の定量データもあります。販売数量、アイテムごとの価格、合計価格など。
ソース: http://arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/
DB/DWの用語をあまり知らない人の観点からは、この答えは理解しやすいと思います。
http://databases.about.com/od/datamining/a/Facts-Vs-Dimensions.htm
最初にこれを確認してから、Emmad Kareemの回答を詳細に確認することをお勧めします。役に立てば幸いです。
超簡単な説明:
ファクトテーブル:ルックアップIDをマップするデータテーブル。通常、アプリケーションの中心となるメインテーブルの1つです。
ディメンションテーブル:ファクトテーブルで頻繁に繰り返される値(都市名や州など)を格納するために使用されるルックアップテーブル。
詳細:ディメンションテーブルとファクトテーブル|の違い|ディメンションテーブルとファクトテーブル http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo
最も単純な形式では、ディメンションテーブルは「マスター」テーブルのようなものだと思います。つまり、すべての「アイテム」のリストを保持しています。
ファクトテーブルは、すべてのトランザクションを記述するトランザクションテーブルです。さらに、営業担当者による総売上高、支店別の総売上高などの集計(グループ化)データ-このような種類のテーブルは、独立したファクトテーブルとして存在する場合もあります。