web-dev-qa-db-ja.com

属性と新しいディメンションを選択するのはいつですか?

私は事実、属性、および次元とは何かを完全に認識しています。ただし、ディメンションとそのディメンションの属性のどちらの特性を選択するかについては、かなり混乱しています。たとえば、病院のデータウェアハウスを構築していて、性別が問題になる場合があります。ただし、「患者」ディメンションの属性にすることもできます。

性別をディメンションとして選択することの利点の1つは、スペースを節約できることです(つまり、数百万の患者、つまり数百万の属性が存在する可能性がある)。しかし、性別が変わった場合はどうなりますか?どうすれば追跡できますか?他の属性と同じ:診断はディメンションであり、属性である可能性があります。ディメンションとして選択した場合、患者のフロー/診断の変更をどのように追跡できますか?

どうもありがとうございます

4
LearnByReading

性別を独立した「次元」にすることは、おそらく次元モデルを正規化する試みです。性別に関連付けられた属性がない限り、それはどのようにディメンションですか?性別の次元を一致させることは可能ですか?

診断については、プロセスまたは値をモデル化していますか?非常に異なる要件と対処すべき問題。診断プロセスを正確に追跡するための一連の側面と事実を想像します。

ディスクスペース...現代のコンピューティング環境を考えると、スペースは最後の最適化/設計の問題です。それが本当にそうであるなら、あなたはこれを知っておくべきです 確かに

性別が変わったら?どうすれば追跡できますか?

SCDタイプ2ディメンション

患者のフロー/診断の変化をどのように追跡できますか?

トランザクションまたは累積スナップショットファクトテーブル

1
Dave

モデルを作成して疑問を解決するための要件を収集するときに私自身またはユーザーに尋ねる基本的な質問は、「これについて現在保持しておきたい情報の量と、将来予測できるかどうか」です。 」

付帯情報であり、名前以外の情報をあまり保存する必要がない場合は、対応するエンティティの属性として保持できます。具体的に関連する情報を格納する必要がある場合、そうでない場合は、格納するために大幅に非正規化する必要があります。すべての関連情報を含む分離されたディメンションテーブルを作成し、外部キーのみを保持することをお勧めします。

とにかく、SCDの場合について尋ねると、どちらの場合も、情報を属性として保存する場合でも、適切なディメンションテーブルのFKとして保存する場合でも、テーブルを履歴化できます。したがって、私にとっては、そのような変更を保存する必要性は、それを属性またはディメンションとして持つという意思決定に何の役割も果たしません。

0
LironCareto