數據倉庫建模:定義事實表的粒度


維度建模中一個非常重要的步驟是定義事實表的粒度。定義了事實表的粒度,則事實表能表達數據的詳細程度就確定了。定義粒度的例子如下:

1.客戶的零售單據上的每個條目。

2.保險單上的每個交易。

定義好事實表的粒度有很大的用處。

第一個用處就是用來確定維度是否與該事實表相關。例如,對於粒度細到醫療單據上條目項的事實表來說,醫療結果是不會作為維度和它進行關聯的,因為它們不在同一個粒度上。但是,對於一般的E/R數據模型來說,醫療單據是和醫療結果是進行關聯的。通常的規范化建模里沒有粒度的概念,它們表示的是實體之間的關系,這也是規范化建模和維度建模中一個較大的不同之處。

定義成原子的事實表粒度后,可以選擇較多的維度來對該事實表進行描述。也就是說,事實表的粒度越細,能記載的信息就會越多。原子粒度的事實表對維度建模來說是至關重要的。

前面列舉的幾個例子中的粒度定義都是最低粒度的,這些事實表的數據是原子的,不能再進行細分了。但是我們可以在這個基礎上定義高粒度的聚集事實表。舉例如下:

1.一天一個倉庫一個產品的銷售總量。

2.每月的保險交易總數。

3.每月診斷治療的交費金額。

這些高粒度的聚集事實表總是具有較少的維度。通常在建立這些聚集事實表的時候,我們會去掉一些維度或者縮減某些維度的范圍。也正因為如此,聚集事實表應該和其對應的原子事實表一起使用。當需要更詳細信息時,可以訪問其對應的原子事實表。

第二個用處是定義好事實表的粒度后,能更清楚的確定哪個事實與該事實表相關。簡單的說,事實必須對於該粒度是正確的,不同粒度的事實是不能定義在該事實表中的。

總結來說,我們定義事實表的粒度及維度建模時可以采用如下的步驟:

1.熟悉源數據的情況。

2.定義事實表的粒度,最好定義到原子粒度。

3.將與這個粒度的相關信息都添加為維度。

4.添加與該粒度相關的度量信息為事實。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM