スターダイアグラムでディメンションとファクトテーブルはどのように関連していますか?

ザック・スミス

リレーショナルデータベースがあり、レポートの作成を開始したい場合は、次のようにすることができます(これが正しくない場合はお知らせください)。

  1. リレーショナルデータベースを調べて、レポートに含めるすべての列のリストを作成します。
  2. 関連する列をグループ化し、それらを追加のテーブルに分割(正規化)します。これらは寸法です。
  3. その場合、ディメンションには主キー(おそらく2つの行の組み合わせ)があり、ファクトテーブルには、各ディメンションを参照するための外部キーと、売上値など、最初から分離しないフィールドがあります。

質問:私は当初、ディメンションを外部ソースからのデータを参照するデータマートと見なしていました。ファクトテーブルは、ディメンション内のデータを参照していました。それは正しくありませんか?それは逆です...

または、一般に、データベースを正規化する場合、テーブルから取り出した列を常に外部キーに置き換え、新しいテーブルに主キーを追加しますか?

ニール・マクギガン

ファクトテーブルは、分析するプロセスまたはイベントを表します。

ステップ1:分析したいプロセスまたはイベントは何ですか?

ファクトテーブルの列は、分析に関連するすべての変数を表します。

ステップ2:分析に関連する変数は何ですか?

列をディメンションテーブルに「分割」するかどうかは、理解とは無関係です。これは、ファクトテーブルが占めるスペースを最小限に抑えるための最適化です。

メジャーとディメンションを区別する場合は、

ステップ3:ファクトテーブルの(真の)数値は何ですか?これらはあなたの対策です。

真の数値の例は、販売注文明細の拡張価格のような金額です。あなたはそれを合計するか、それの平均を取ることができます。

真の数値ではない例は、顧客ID 12345です。これは数値ですが、数値ではないもの(顧客)を表します。顧客IDの合計も、平均も意味がありません。掘る?

あなたの質問について:

  1. ファクトテーブルは、ディメンションテーブルに外部キーを必要としません。(ヒント:ホットスワップ可能な寸法を参照)

  2. 「外部ソースからのデータを参照するデータマートとしてのディメンション」。うーん...たぶん、でも今のところデータマートについては心配しないでください。ディメンションはファクトテーブルの単なる列です(これはメジャーではありません)。ディメンションテーブルは、関連するディメンションの単なるコレクションです。

  3. Excelから始めてください。分析に必要な列を見つけます。それらをExcelに入れます。それがあなたのファクトテーブルです。ファクトテーブルが大きくなる(数百MB)と予想される場合は、1レベルの正規化を実行します。

あなたの対策を理解してください。それらをファクトテーブルに残します。

あなたの寸法を把握します。それらをグループ化します(顧客情報を1つのグループに、ストア情報を別のグループに保存します)。

それらを独自のテーブルに配置します。それらに無意味な代理キーを与えます。それらのキーをファクトテーブルに配置します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

スターダイアグラムでディメンションとファクトテーブルはどのように関連していますか?

分類Dev

「EFIシステムパーティション」とUEFI * .efiファイルはどのように関連していますか?

分類Dev

ストアドプロシージャとトランザクションを使用して、他のテーブルのテーブル関連データに挿入するにはどうすればよいですか?

分類Dev

デュアルブートインストールを実行しようとしています:SCSI2(0、0、0)のパーティション#1にあるタイプext4のファイルシステムのテストで、未修正のエラーが見つかりました

分類Dev

ホームコントローラーのすべてのインデックスアクションをキャッチするためにパラメーターをルーティングしようとしています

分類Dev

jBPMシングルzipディストリビューションを使用して、アーティファクトへの依存関係を持つ大きなjarをアップロードするにはどうすればよいですか?

分類Dev

StormのタスクIDとメッセージIDとストリームIDの違いは?そして、「タプルのアンカー」と「アッカータスク」はコンテキストとどのように関連していますか?

分類Dev

ログイン成功後に別のアクティビティ(プロファイルアクティビティ)でユーザーのデータベースをロードするにはどうすればよいですか?プロフィールページを作成しようとしています

分類Dev

クライアントが OpenVPN クラウドにサインインすると、ネットワーク インターフェイスはどのようにしてカスタム サブネット IP 範囲のトラフィックをルーティングすることを認識しますか?

分類Dev

ラベルアクティビティレポート(O365データガバナンス)のユーザーレベルとファイルレベルをプログラムで取得するにはどうすればよいですか?

分類Dev

フィルタカスタムテンプレートを使用して、HTMLファイルからディクショナリ値にアクセスするにはどうすればよいですか?

分類Dev

同じディメンションテーブルを複数のファクトテーブルに関連付けることはできますか?

分類Dev

セクションに関連して、ページがスクロールしているときにnav liのアクティブクラスを変更するにはどうすればよいですか?

分類Dev

フォームとヘッダーの複数のクラスターをグループ化して、レスポンシブデザインで同じ行と中央に配置するにはどうすればよいですか?

分類Dev

ディスクにすでにインストールされているシステムに関連してEFIインストールに関する警告を回避するDebianpreseedパラメータはどれですか?

分類Dev

RPi3のクロスコンパイルアプリケーションのメインウィンドウにボーダーフレームとタイトルバーを表示するにはどうすればよいですか?

分類Dev

Bazelを使用してBUILDファイルの依存関係セクションでグループID、アーティファクト、バージョンを直接指定するにはどうすればよいですか?

分類Dev

タブ/フラグメントの遷移間で新しいフローティングアクションボタンをアニメーション化するにはどうすればよいですか?

分類Dev

ネイティブスクリプトAngularアプリでナビゲーションラグとメモリ不足の問題をプロファイリングするにはどうすればよいですか?

分類Dev

ビューのボタンからカスタム メソッドを呼び出して、オブジェクトに関連付けられたファイルを削除するにはどうすればよいですか? Railsアプリ

分類Dev

配列をグーグルアナリティクスのカスタムディメンションとして送信するにはどうすればよいですか?

分類Dev

DAXを使用して、2つのテーブルの予約ディメンションと到着日のディメンションでフィルタリングするにはどうすればよいですか?

分類Dev

テキストファイルからデータをインポートするときにPythonディクショナリの値をインクリメントするにはどうすればよいですか?

分類Dev

コマンドラインからフランスのWindowsシステムでファイルとプリンターの共有をアクティブ化するにはどうすればよいですか?

分類Dev

PHPアプリケーションはどのようにしてエラーを/ var / log / httpd /ディレクトリのカスタムファイルに記録できますか?

分類Dev

デフォルトのコンストラクタが指定されていない場合、Javaシリアライゼーションはどのように最終フィールドをデシリアライズしますか?

分類Dev

特定のセッションに関連するクライアント要求はどのようにルーティングされますか?

分類Dev

botoライブラリを介してEMRクラスターオプションの「テーブルメタデータにAWSGlueデータカタログを使用する」を設定するにはどうすればよいですか?

分類Dev

Spring MVCは、Webアプリケーションのサービス、コントローラー、データアクセスレイヤーとどのように関連していますか?

Related 関連記事

  1. 1

    スターダイアグラムでディメンションとファクトテーブルはどのように関連していますか?

  2. 2

    「EFIシステムパーティション」とUEFI * .efiファイルはどのように関連していますか?

  3. 3

    ストアドプロシージャとトランザクションを使用して、他のテーブルのテーブル関連データに挿入するにはどうすればよいですか?

  4. 4

    デュアルブートインストールを実行しようとしています:SCSI2(0、0、0)のパーティション#1にあるタイプext4のファイルシステムのテストで、未修正のエラーが見つかりました

  5. 5

    ホームコントローラーのすべてのインデックスアクションをキャッチするためにパラメーターをルーティングしようとしています

  6. 6

    jBPMシングルzipディストリビューションを使用して、アーティファクトへの依存関係を持つ大きなjarをアップロードするにはどうすればよいですか?

  7. 7

    StormのタスクIDとメッセージIDとストリームIDの違いは?そして、「タプルのアンカー」と「アッカータスク」はコンテキストとどのように関連していますか?

  8. 8

    ログイン成功後に別のアクティビティ(プロファイルアクティビティ)でユーザーのデータベースをロードするにはどうすればよいですか?プロフィールページを作成しようとしています

  9. 9

    クライアントが OpenVPN クラウドにサインインすると、ネットワーク インターフェイスはどのようにしてカスタム サブネット IP 範囲のトラフィックをルーティングすることを認識しますか?

  10. 10

    ラベルアクティビティレポート(O365データガバナンス)のユーザーレベルとファイルレベルをプログラムで取得するにはどうすればよいですか?

  11. 11

    フィルタカスタムテンプレートを使用して、HTMLファイルからディクショナリ値にアクセスするにはどうすればよいですか?

  12. 12

    同じディメンションテーブルを複数のファクトテーブルに関連付けることはできますか?

  13. 13

    セクションに関連して、ページがスクロールしているときにnav liのアクティブクラスを変更するにはどうすればよいですか?

  14. 14

    フォームとヘッダーの複数のクラスターをグループ化して、レスポンシブデザインで同じ行と中央に配置するにはどうすればよいですか?

  15. 15

    ディスクにすでにインストールされているシステムに関連してEFIインストールに関する警告を回避するDebianpreseedパラメータはどれですか?

  16. 16

    RPi3のクロスコンパイルアプリケーションのメインウィンドウにボーダーフレームとタイトルバーを表示するにはどうすればよいですか?

  17. 17

    Bazelを使用してBUILDファイルの依存関係セクションでグループID、アーティファクト、バージョンを直接指定するにはどうすればよいですか?

  18. 18

    タブ/フラグメントの遷移間で新しいフローティングアクションボタンをアニメーション化するにはどうすればよいですか?

  19. 19

    ネイティブスクリプトAngularアプリでナビゲーションラグとメモリ不足の問題をプロファイリングするにはどうすればよいですか?

  20. 20

    ビューのボタンからカスタム メソッドを呼び出して、オブジェクトに関連付けられたファイルを削除するにはどうすればよいですか? Railsアプリ

  21. 21

    配列をグーグルアナリティクスのカスタムディメンションとして送信するにはどうすればよいですか?

  22. 22

    DAXを使用して、2つのテーブルの予約ディメンションと到着日のディメンションでフィルタリングするにはどうすればよいですか?

  23. 23

    テキストファイルからデータをインポートするときにPythonディクショナリの値をインクリメントするにはどうすればよいですか?

  24. 24

    コマンドラインからフランスのWindowsシステムでファイルとプリンターの共有をアクティブ化するにはどうすればよいですか?

  25. 25

    PHPアプリケーションはどのようにしてエラーを/ var / log / httpd /ディレクトリのカスタムファイルに記録できますか?

  26. 26

    デフォルトのコンストラクタが指定されていない場合、Javaシリアライゼーションはどのように最終フィールドをデシリアライズしますか?

  27. 27

    特定のセッションに関連するクライアント要求はどのようにルーティングされますか?

  28. 28

    botoライブラリを介してEMRクラスターオプションの「テーブルメタデータにAWSGlueデータカタログを使用する」を設定するにはどうすればよいですか?

  29. 29

    Spring MVCは、Webアプリケーションのサービス、コントローラー、データアクセスレイヤーとどのように関連していますか?

ホットタグ

アーカイブ