一、維表&事實(shí)表
- 說(shuō)法一
以前一直對(duì)維度表, 事實(shí)表, 數(shù)據(jù)分析, BI等概念等有一些模糊. 這幾天的學(xué)習(xí)終于讓這些有了一些眉目了:
維度表示你要對(duì)數(shù)據(jù)進(jìn)行分析時(shí)所用的一個(gè)量, 比如你要分析產(chǎn)品銷(xiāo)售情況, 你可以選擇按類別來(lái)進(jìn)行分析,或按區(qū)域來(lái)分析. 這樣的按..分析就構(gòu)成一個(gè)維度。前面的示例就可以有兩個(gè)維度:類型和區(qū)域。另外每個(gè)維度還可以有子維度(稱為屬性),例如類別可以有子類型,產(chǎn)品名等屬性。下面是兩個(gè)常見(jiàn)的維度表結(jié)構(gòu):
產(chǎn)品維度表:Prod_id, Product_Name, Category, Color, Size, Price
時(shí)間維度表:TimeKey, Season, Year, Month, Date
而事實(shí)表是數(shù)據(jù)聚合后依據(jù)某個(gè)維度生成的結(jié)果表。它的結(jié)構(gòu)示例如下:
銷(xiāo)售事實(shí)表:Prod_id(引用產(chǎn)品維度表), TimeKey(引用時(shí)間維度表), SalesAmount(銷(xiāo)售總量,以貨幣計(jì)), Unit(銷(xiāo)售量)
上面的這些表就是存在于數(shù)據(jù)倉(cāng)庫(kù)中的。從這里可以看出它有幾個(gè)特點(diǎn):
- 維度表的冗余很大,主要是因?yàn)榫S度一般不大(相對(duì)于事實(shí)表來(lái)說(shuō)的),而維度表的冗余可以使事實(shí)表節(jié)省很多空間。
- 事實(shí)表一般都很大,如果以普通方式查詢的話,得到結(jié)果一般發(fā)的時(shí)間都不是我們可以接受的。所以它一般要進(jìn)行一些特殊處理。如SQL Server 2005就會(huì)對(duì)事實(shí)表進(jìn)行如預(yù)生成處理等。
- 維度表的主鍵一般都取整型值的標(biāo)志列類型,這樣也是為了節(jié)省事實(shí)表的存儲(chǔ)空間。
- 說(shuō)法二
事實(shí)是各個(gè)維度的的交點(diǎn),是對(duì)某個(gè)特定事件的度量。若干個(gè)一致的事實(shí)能夠被組合到一個(gè)公共的結(jié)構(gòu)中就是事實(shí)表。
關(guān)于事實(shí)的描述性屬性能夠被組合到一個(gè)或多個(gè)公共的結(jié)構(gòu)中就是維表。維表的本質(zhì)是多維分析空間在某個(gè)角度的投影,多個(gè)維表共同建立一個(gè)多維的分析空間。
維表是用戶分析決策的角度,事實(shí)表是分析主體的量化體現(xiàn)。