MS 多維數據庫-基本架構

多維數據庫是一個非常有趣的領域,在企業應用中得到越來越多的應用,其創造的價值恐怕已經接近於數據庫了。當然在這個領域Oracle和IBM是當之無愧的老大,市場佔有份額加起來超過了8層了吧。但是單純從工具的易用性和方便性角度來講,MS的AS工具無疑佔據了領先地位。

爲什麼沒人買呢?引用一個做市場的哥們的話:因爲這個世界太浮躁了,老闆們不願意去培訓員工使用一套工具,它們只願意花錢去買看得見的東西。

這樣做的好處是,養活了大批的IT民工,壞處養活了更多不勞而獲的人。這就是現實。

 

好吧,廢話少說,本人還是很有興趣研究這套工具的。 

在msas中,cube是多維數據庫的核心對象,cube又是基於數據庫的關係表,而cube又是數據挖掘的基礎。下圖顯示了這些對象之間的關係:

 

從這張圖可以看出,多個Analysis Service的實例可以並存在一個服務器上,每個實例可以包含若干個對象。這個寫對象可以是數據庫,也可以是多維數據體,或者是數據挖掘實體。

用戶程序可以通過客戶端訪問這些實體,調用其功能。

 

Cube,數據立方體是多維數據庫中最重要的概念,它由度量和維度組成。

維度表通常表示靜止的實體,例如地區,時間,用戶信息。

幾個維度表分別貢獻一行數據,組合起來可以表示一個事件,例如Jack昨天在紐約。

那麼Jack昨天在紐約幹了些什麼呢?度量是對上述事實的數據說明,例如,Jack花了1美元,用了一小時,等等。

 

事實表,顧名思義,每行數據表示一個事實,IBM在中國西部的新疆投資1000萬。度量對應於事實表中的數據列或者數值函數,事實表還包含與維表進行關聯的外鍵列,IBM對應於投資者維度,中國西部對應於地域維度。

事實表和維表的關聯關係用圖來表示,就像中心,輻射出幾個小星星的樣子。因此稱爲星型模型。

如果維表不是直接連在事實表上,而是連在另一個維表上,那麼稱爲雪花模型。

 

維度表包含多個列,其中一個列唯一標誌一行數據,稱爲鍵列。維度表的每一行對應一個成員,每一列表示成員的一個屬性。

按照任一屬性可以將維分成兩個層次,第一層:所有成員聚合;第二層:按照該屬性的所有不同值聚合。

一個或多個屬性確定一個層次,例如年、月、日三個屬性確定了日這一層次。每個層次的成員對應一個或多個維表的成員。

由相關屬性確定的幾個層次組成一個層次結構。下層的多個成員唯一對應於上層的一個成員,組成父子關係。

 

使用msas創建cube的時候,首先選定一個數據庫,稱爲data source;

再創建一個數據源視圖,它將一個或多個DataSource中的表組合在一起,除了這些表自身的列以外,你還可以創建新的列;

如果表的結構足夠簡單明瞭,你可以使用MSAS的功能自動從數據源視圖上生成一個cube。

 

那麼MSAS是如何自動產生Cube的呢?

 

這個過程相當的神奇,其實msas很聰明的從表結構中找出了事實表。明辨出哪些列表示measure,哪些列是維表的外鍵。再找出哪些表是維表,分別使用什麼主鍵。最後將他們關聯起來。

但是事實表並不是和維表關聯,實際上,它是和維表上一個層次結構關聯。維表上的內在的層次結構是All和所有鍵列的值組成的。

 

下一篇文章裏,我們將詳細講維表的層次結構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章