Data-Warehouse
何時選擇屬性與新維度?
我完全清楚什麼是事實、屬性和維度。但是,我很困惑我應該為維度選擇哪些特徵與該維度的屬性。例如,我正在建立一個醫院數據倉庫,而性別可能是一個維度。但是,它也可以是“患者”維度的屬性。
我知道選擇性別作為維度的一個好處是我可以節省空間(即可能有數百萬患者,因此可能有數百萬屬性)。但是,如果性別改變了怎麼辦?我怎樣才能追踪它?與其他屬性相同:診斷可以是一個維度,也可以是一個屬性。如果我選擇它作為維度,我如何跟踪患者的診斷流程/變化?
太感謝了
使性別成為一個獨立的“維度”,很可能是嘗試標準化您的維度模型。除非您具有與性別相關的屬性,否則它是一個維度嗎?是否有可能具有一致的性別維度?
至於診斷,您是在建模過程還是對值進行建模?非常不同的要求和要處理的問題。我會想像一系列維度和事實來準確跟踪診斷過程。
磁碟空間…考慮到我們現代的計算環境,空間是您最後的優化/設計關注點。如果真是這樣,你應該肯定知道這一點。
如果性別改變了怎麼辦?我怎樣才能追踪它?
如何跟踪患者的診斷流程/變化?
當我收集需求以創建模型並解決您的疑問時,我向自己或使用者提出的基本問題是“我們現在想要保留多少資訊,以及將來是否可以預見? "
如果它是附帶資訊,並且除了名稱之外您不需要儲存太多關於它的資訊,也許您可以將其保留為相應實體的屬性。如果您需要儲存特定相關的資訊,否則您需要對其進行大量非規範化以進行儲存,那麼最好創建一個包含所有相關資訊的單獨維度表,然後只保留外鍵。
無論如何,當您詢問 SCD 的情況時,無論您是將資訊儲存為屬性還是作為適當維度表的 FK,您都可以對錶進行歷史化。因此,對我而言,儲存此類更改的必要性不會在將其作為屬性或維度的決策中發揮任何作用。