Data-Warehouse
維度繼承的維度模型
如果一個維度在邏輯上繼承自另一個維度,那麼維度通常如何在維度模型中建模?
例如,假設我有一個
Employee
維度和一個Driver
維度,其中 Driver 具有 Employee 的所有屬性,但也具有一個Truck Number
屬性。這些維度應該如何建模?
在傳統的 OLTP 系統中,您可能需要關注規範化和繼承,而在典型的數據倉庫系統中,您將希望進行非規範化以加速查詢響應。
在這種情況下,我將設計一個
Employee_Dimension
表,其中包含您可能要查詢的有關員工的所有相關列,以及我可能呼叫的附加列,我將用、等employee_role
條目填寫,然後有另一列填寫了作為司機的員工,或者在他們不是司機時離開該列。當然,您可以添加更多列以包含其他員工角色的資訊。Driver``Manager``truck_number``NULL
長話短說,如果你正在建構一個典型的星型模式,你可以通過使用大量的非規範化來獲得更快的查詢結果,當然會以儲存空間為代價。
聽說我會採用可交換的維度模式。創建具有相同 SK 的三個維度:
1) **Employee** Base table with the common attributes 2) **Driver** table with driver specific attributes note the SK' needs to match the table above 3) **DriverEmployee** a view that joins the values from one and two.
那麼當您報告數據時,請選擇最適合要求的結構:Employee、Driver、DriverEmployee