2017-05-26 38 views
0

我正在設計一個使用Data Vault模型的數據倉庫。我的數據倉庫中有一個名爲Specialty的實體。有這些專業的查找表根據他們的代碼具有從Specialty_CD到描述的一對一映射。該查找表中有數據條目的歷史記錄(特殊代碼可以改變含義)以及我保管庫中的所有衛星表。Data Vault模型和查找表

我遇到了一個奇怪的案例,我想將Data Vault中另一個名爲「Professional」的實體鏈接到專業實體,專業人員可以擁有多個專業。但是,專業實體沒有樞紐。我當前的解決方案只有一個Professional Hub,它爲每個專業人員提供業務密鑰和業務密鑰哈希,一個將專業BK哈希映射到專業實踐專業專業代碼的鏈接表,以及從特殊代碼到描述的查找表。這裏的問題是鏈接表將集線器連接到查找表,而不是另一個集線器。我不禁感到這會打破Data Vault模型。這是否違反了Data Vault模型的規則?這是否毀了我整個模型的正常化?

我覺得爲特色創建一個Hub會導致額外的數據檢索連接。由於專業代碼已經是專業描述的唯一標識符,我寧願只爲這個專業實體設置一個查找表,而不是專用實體的集線器和額外衛星,而這些我不需要。特別是因爲它只是在數據倉庫中服務於專業代碼定義和描述的目的。

歡迎對此情況提出任何建議。通過將集線器連接到查找表,在這種情況下數據倉庫是否毀了?這個專業實體是否值得在檢索過程中額外的開銷和聯合創建一箇中心和衛星?

謝謝!

回答

2

你已經回答了自己的問題: 「的專業代碼的特色是專業實踐」

特產顯然是一個核心的經營理念,是一個樞紐。它只有兩個字段(代碼和說明)的事實是不相關的。

數據保險庫適用於模式。它不是「只在數據庫中才能達到定義的目的」。如果它被刪除,數據庫仍然可用?例如,我從數據庫將繼續運行的地址中刪除郵編。我會猜測,如果您刪除了專業,那麼某些報告可能會出現問題。

當您創建原始數據保險庫時,您需要習慣這樣一個事實,即您將擁有更多的表(大約7是常規指標)。

PCD

0

我覺得你的模型應該像這樣

  • Specialty_HUB(HUB_ID(PK),Specialty_CD)
  • Specialty_SAT(SAT_ID(PK),HUB_ID(FK),Load_Date,說明)
  • Professional_HUB(HUB_ID(pk),Professional_PK)
  • Professional_SAT(SAT_ID(pk),(HUB_ID(fk),專業詳情...)
  • Profesional_X_Specialty_LNK(LNK_ID(PK),Load_Date日期,結束日期,Professional_HUB_ID(FK),Specialty_HUB_ID(FK))

注意,在這個設計,你必須在鏈路表中END_DATE,你可以要求需要退出一個獨立於專業或專業地位的協會,並且您需要確保您的ETL邏輯提取「刪除」。如果與專業相關的代碼也可以改變,那麼在鏈接表和專業SAT之間需要另一層抽象,以確保鏈接保持穩定。