問題タブ [dimensional-modeling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
relational-database - 非正規化リレーショナル モデルではなく次元モデルを使用する理由
いくつかの質問で混乱しています。彼らの答えが必要です。リレーショナル モデルも非正規化である場合、なぜ次元モデルを好むのでしょうか? リレーショナル モデルよりも次元モデルを好む理由は何ですか? 履歴データも OLTP に保存でき、任意の OLTP でレポートを簡単に実行できます。なぜ次元モデルとデータ ウェアハウスを使用するのでしょうか? ディメンションと非正規化テーブルの違いは何ですか?
前もって感謝します
ssas - まばらに入力されたパーセンテージ値の「平均」集計
現在、1 日あたり 1 つのレコードが完全に取り込まれているコスト センターの割り当てデータがあり、それぞれに 1 つのコスト センター ディメンション キーがあります。キューブには人数メジャーがあり (データは "1" に設定されています)、集計関数は "LastChild" に設定されています。つまり、ヘッド カウント レポートでは、特定の期間にコスト センターで 1 人だけがカウントされます。
部分割り当ての導入 - 新しいメジャーには割り当てのパーセンテージ値があり、複数の同時コスト センターで割り当てを合計すると 100% になります (「日」は粒度レベルです)。他の期間にわたって集計を構成する方法を理解しようとしています。「平均」は問題なく機能するはずだと思いました。つまり、期間の半分で 50% でコスト センターに割り当てられた人は、その期間で 25% と報告されます。問題は、コスト センターへの割り当てが 0% だった日のファクトが入力されていないことです。説明する:
月ごとのレポートに関する上記のデータは、CostCenterB への割り当てが 50% であることを示していますが、その人は 1 日しか割り当てられておらず、月単位の平均パーセンテージは 1.6% である必要があります。
データに 0% の割り当てを生成することはできると思いますが、その結果、ファクト テーブルが爆発的に増加するため、「平均」集計がまばらに入力されたファクトのパーセンテージ値、つまり平均値を処理する方法を変更したいと考えています。ファクト テーブルの行数 (0.5/1) ではなく、レポート期間の単位数 (月の日数、この場合は 0.5/31) に基づいて計算する必要があります。これはSSASで実行できますか?
ssas - MDX 階層をフィルター処理しても、休暇の合計が表示されます - 不規則な階層ですか?
次のクエリ
次の結果が表示されます。
私の問題は、[Dim User].[UserTypeHierarchy] をフィルタリングしているため、表示されているメジャー値は、[Commercial Partner].&[Agent] のタイプを持つものだけであるということです。ユーザーツリーを表示しているにもかかわらず、表示されている数値はすべてのメジャーを示しており、あたかも子孫([Hierarchy], 0, self_and_after)のようになっていることを望みます。
どうすればこれを達成できますか? 既に計算メンバーを使用してみましたが、表示されている数値は [Dim User].[UserTypeHierarchy] 階層の下にあるすべてのユーザー タイプの子孫を集計していません。
自分自身をよりよく説明するために、次の画像はユーザー タイプ フィルターなしです。
したがって、私の望ましい結果は、ユーザータイプの商用パートナーのユーザーのみを表示している最初の画像ですが、2番目の画像の数字です。たとえば
513 は、子孫を集計したすべての図を表示します
100310 は、第 3 レベルで彼の下にあるすべてのユーザーを集計したすべての数値を表示します
それでは4番目に。
database-design - 相互参照表...次元か事実か?
初心者の次元モデリングに関する質問:
正式な「ビジネス プロセス」の外で、ディメンション間の関係をどのようにモデル化しますか? たとえば、ファンタジー ベースボール リーグをモデル化しているとします。いくつかの明白な次元はチームとプレーヤーであり、例の事実はプレーヤーが打席に来た結果です。私が混乱しているのは、どのプレイヤーがどのチームに所属しているかを簡単に追跡する方法です。
第 3 正規形では、チームとプレーヤーの FK のクロス リファレンス テーブル、および 2 つの組み合わせに特に関連する追加フィールド (募集日、ベンチ プレーヤー インジケーターなど) を作成します。これは、スター スキーマと何か違いがありますか? そうでない場合、このテーブルは数値属性のないファクト テーブルと見なされますか?
私を混乱させているのは、この相互参照表が単独ではあまり役に立たないということです。他のファクト テーブルに結合して、別のファクト/プロセスに関連付けられたチームのプレーヤーのリストを取得する場合にのみ意味があります。これにより、事実というよりも次元のように感じられます。
join - データベースの多方向結合とは何ですか?
データベースの多方向結合とは何ですか?
たくさん検索しましたが、定義や例が見つかりません。
これは、データベース管理の質問というよりもデータベース開発の質問であるため、SO vs dba.stackexchange に投稿します。
出典: Ralph Kimball によるデータ ウェアハウス ツールキット、16 ページ。