リレーショナルデータベースがあり、レポートの作成を開始したい場合は、次のようにすることができます(これが正しくない場合はお知らせください)。
質問:私は当初、ディメンションを外部ソースからのデータを参照するデータマートと見なしていました。ファクトテーブルは、ディメンション内のデータを参照していました。それは正しくありませんか?それは逆です...
または、一般に、データベースを正規化する場合、テーブルから取り出した列を常に外部キーに置き換え、新しいテーブルに主キーを追加しますか?
ファクトテーブルは、分析するプロセスまたはイベントを表します。
ステップ1:分析したいプロセスまたはイベントは何ですか?
ファクトテーブルの列は、分析に関連するすべての変数を表します。
ステップ2:分析に関連する変数は何ですか?
列をディメンションテーブルに「分割」するかどうかは、理解とは無関係です。これは、ファクトテーブルが占めるスペースを最小限に抑えるための最適化です。
メジャーとディメンションを区別する場合は、
ステップ3:ファクトテーブルの(真の)数値は何ですか?これらはあなたの対策です。
真の数値の例は、販売注文明細の拡張価格のような金額です。あなたはそれを合計するか、それの平均を取ることができます。
真の数値ではない例は、顧客ID 12345です。これは数値ですが、数値ではないもの(顧客)を表します。顧客IDの合計も、平均も意味がありません。掘る?
あなたの質問について:
ファクトテーブルは、ディメンションテーブルに外部キーを必要としません。(ヒント:ホットスワップ可能な寸法を参照)
「外部ソースからのデータを参照するデータマートとしてのディメンション」。うーん...たぶん、でも今のところデータマートについては心配しないでください。ディメンションはファクトテーブルの単なる列です(これはメジャーではありません)。ディメンションテーブルは、関連するディメンションの単なるコレクションです。
Excelから始めてください。分析に必要な列を見つけます。それらをExcelに入れます。それがあなたのファクトテーブルです。ファクトテーブルが大きくなる(数百MB)と予想される場合は、1レベルの正規化を実行します。
あなたの対策を理解してください。それらをファクトテーブルに残します。
あなたの寸法を把握します。それらをグループ化します(顧客情報を1つのグループに、ストア情報を別のグループに保存します)。
それらを独自のテーブルに配置します。それらに無意味な代理キーを与えます。それらのキーをファクトテーブルに配置します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加