1. 程式人生 > >Star Schema完全參考手冊讀書筆記四

Star Schema完全參考手冊讀書筆記四

本部落格主要內容為對書中第三章事實表特性的知識的總結。
事實表特性主要包括粒度、可加性、稀疏性和退化維。

事實表特性

事實分為可加事實,半可加事實和非可加事實。
每個事實表通過獲取描述業務過程的度量來表達業務過程。然而,一些事實不能被聚集。這些不可求和的事實通常可以分解到其他可求和的事實表中。
事實表記錄資訊的細節程度被稱為粒度
儘可能將事實表的粒度設定為最詳細的資料粒度級別。
將事實相加以獲得對單個事實彙總的能力被稱為可加性
事實表是度量業務過程的引擎。事實表儲存用來描述過程的詳細粒度。事實採用外來鍵為每個度量提供維度環境。在某些情況下,事實表可以包含維度。作為過程度量的核心,事實表應包含與其描述的過程有關的所有事實,當然也可以包含從其他方面獲得的一些事實。事實以特定的細節層次儲存,但可以通過上卷產生各種級別的維度。由於事實具有可加性,因此這樣的聚集是可能的。某些度量不具備可加性,但通常可以分解成具有可加性的元件。
常見的錯誤是在事實表中儲存數量單位而不是儲存延伸量。數量單位通常用作維度。它也可以用於計算延伸量,延伸量通常作為事實存在。只有事實才具備可加性,提供靈活的分析能力。如果沒有合適的維度表用於儲存數量單位,可以將它們放置於退化維中。
存在非可加事實,如利潤率。

彙總行中的利潤率需要根據分類彙總的利潤額度和訂單額度的比值得到,而非通過將各個銷售人員的利潤率相加獲得。非可加事實以可加事實的比率方式計算。 由於非可加事實並未儲存在事實表中,需要注意不要丟失這些事實,應該被文件化。
出現在事實表中的組合數量遠遠小於可能存在的組合數量,該項特性被稱為稀疏性
有時,不可能將所有與業務相關的維度分類到一個緊湊的表集合中。類似這樣的情況,將一個或多個維度儲存到事實表中是合適的選擇。若採用了這種方法,儲存到事實表中的維度列被稱為退化維度,簡稱退化維
雖然被儲存在事實表中,但該列仍應被視為維度。與其他表中的維度列一樣,其值仍然可以用於過濾查詢、控制聚合層次、排序資料、定義主從關係等。應該謹慎使用退化維度,因為事實表累計記錄的速度很快,包含退化維度可能會造成儲存空間的過度消耗。多數情況下,適合選作退化維度的維度最好放置到雜項維度中,事務標識除外。事務標識通常作為退化維度儲存。它也可以作為事實表中行的唯一標識,並用於定義事實表的粒度。雖然事務標識通常作為退化維度儲存,但這並不是必須遵循的規則。