天天看點

次元表和事實表

   次元表示對資料進行分析時所用的一個量, 比如分析産品銷售情況, 可以選擇按類别來進行分析,或按區域來分析. 這樣的按..分析就構成一個次元。前面的示例就可以有兩個次元:類型和區域。另外每個次元還可以有子次元(稱為屬性),例如類别可以有子類型,産品名等屬性。下面是兩個常見的次元表結構:

産品次元表:Prod_id, Product_Name, Category, Color, Size, Price

時間次元表:TimeKey, Season, Year, Month, Date

   而事實表是資料聚合後依據某個次元生成的結果表。它的結構示例如下:

銷售事實表:Prod_id(引用産品次元表), TimeKey(引用時間次元表), SalesAmount(銷售總量,以貨币計), Unit(銷售量)

上面的這些表就是存在于資料倉庫中的。從這裡可以看出它有幾個特點:

1. 次元表的備援很大,主要是因為次元一般不大(相對于事實表來說的),而次元表的備援可以使事實表節省很多空間。

2. 事實表一般都很大,如果以普通方式查詢的話,得到結果一般發的時間都不是我們可以接受的。是以它一般要進行一些特殊處理。如SQL Server 2005就會對事實表進行如預生成處理等。

3. 次元表的主鍵一般都取整型值的标志列類型,這樣也是為了節省事實表的存儲空間。

   一個典型的例子是,把邏輯業務比作一個立方體,産品維、時間維、地點維分别作為不同的坐标軸,而坐标軸的交點就是一個具體的事實。也就是說事實表是多個次元表的一個交點。而次元表是分析事實的一個視窗。  

      首先介紹下資料庫結構中的星型結構,該結構在位于結構中心的單個事實資料表中維護資料,其它次元資料存儲在次元表中。每個次元表與事實資料表直接相關,且通常通過一個鍵聯接到事實資料表中。星型架構是資料倉庫比較流向的一種架構。

       事實表是資料倉庫結構中的中央表,它包含聯系事實與次元表的數字路徑成本和鍵。事實資料表包含描述業務(例如産品銷售)内特定事件的資料。

       次元表是次元屬性的集合。是分析問題的一個視窗。是人們觀察資料的特定角度,是考慮問題時的一類屬性,屬性的集合構成一個維。

繼續閱讀