摘 要: 在分析數據倉庫主題特征的基礎上提出了一種搜索方法,能夠從關系數據庫中自動搜索最具有數據倉庫主題特征的表。這種方法可以用于在數據倉庫設計中輔助確定主題。
關鍵詞: 數據倉庫 主題 關系數據庫
隨著計算機技術的發(fā)展,信息系統(tǒng)在企業(yè)中得到了廣泛的應用。市場競爭使得企業(yè)對信息化提出了新的需求,即要求以操作數據庫為基礎,建立數據倉庫(DW),對積累的海量數據進行整理、匯總、挖掘,為企業(yè)提供決策支持。相應地,數據倉庫理論與應用方面的研究也就成為了學術上的研究熱點。在目前的數據倉庫設計中,一般都是通過需求分析來確定主題。而這種方法是主觀的,它依賴于設計者的經驗和需求分析的準確性,缺乏客觀的評估標準和可信度。本文根據數據倉庫主題的特征屬性,提出了一種搜索方法。此方法能夠自動地從關系數據庫中尋找具有這種數據倉庫主題特征的表,為數據倉庫設計的主題選擇提供輔助參考。
1 相關概念
數據倉庫的主題即中心事實表,表現為多維數據模型,與關系數據庫中的表存在一定的耦合關系。通過數據倉庫主題特征的分析可知,關系數據庫中某些表與數據倉庫的中心事實表具有一定程度的相似性,被稱為具有一定程度的數據倉庫主題特征,它們可以作為數據倉庫中心事實表的原型。這些表具有這樣的特征;有較多的外鍵和視圖數;通常都直接或者間接包含有數值類型和時間類型的屬性字段;有比較大的元組數。這樣的表在業(yè)務操作系統(tǒng)的關系數據庫中是最核心的基礎信息表,記錄了各種詳細的操作數據,是各種統(tǒng)計分析的數據來源,最適合作為確定數據倉庫主題的參考對象。下面對關系數據庫中表的數據倉庫主題特征以及主題選擇法則進行定義。
為了便于說明,以集合的形式進行描述。給定一個關系數據庫Ω={R1,R2,……,Rn},Ri為數據庫中的關系表,n為數據庫中關系表的個數。對于每個表Ri,其元組集合為Ti,Ri的字段(屬性)集合為Ai={a1,a2,……,ap},Ri上的外鍵集合為Fi={f1,f2,……,fq},Ri上的視圖集合為Vi={v1,v2,……,vk}。
定義1(外鍵特征值f):若數據庫Ω中表Ri的外鍵數為S(Fi),所有的表外鍵數中最大值為S(F)max,則表Ri的外鍵特征值fi=S(Fi)/S(F)max。
數據倉庫中事實表和維表的關聯(lián)程度體現了數據的粒度特征,外鍵特征值表征了關系數據庫中表的粒度特征。
定義2(數值特征值n):對數據庫Ω中表Ri的字段屬性集合Ai={a1,a2,……,ap},如果存在有am∈Ai,并且am為數值類型,則表Ri的數值特征值ni=1,否則ni=0。
數據倉庫的事實表是用數值來度量的,所以具有數值字段的表更有可能成為數據倉庫的事實表。
定義3(時間特征值d):對數據庫Ω中表Ri的字段屬性集合Ai={a1,a2,……,ap},如果存在有an∈Ai并且an為日期類型,則表Ri的時間特征值di=1,否則di=0。
數據倉庫事實表中的數據具有顯式的或者隱式的時間屬性。因此在選擇數據倉庫中心事實表時,應考慮表中是否具有或者隱含了時間類型的字段。
定義4(視圖特征值v):數據庫Ω中表Ri上的視圖集合為Vi={v1,v2,……,vk},視圖數為S(Vi),數據庫中所有的表視圖數中最大值為S(V)max,則表Ri的視圖特征值vi=S(Vi)/S(V)max。
在源數據庫中,一個數值字段多次被用來建立視圖或進行Group By計算,說明它的利用率很高而且是經常被匯總查詢的數據量,這符合數據倉庫中對主題數據的需求。
定義5(元組特征值):數據庫Ω中表Ri中的元組數為S(Ti),所有元組數中最大值為S(T)max,則表Ri的元組特征值ti=S(Ti)/S(T)max。
所謂元組數,也就是表中記錄行數。通常,一個沒有記錄或者記錄很少的表的利用率是很低的。而數據倉庫中的主題是用來輔助決策的,需要大量的數據,所以該特征值用來表征事實表中存儲的數據量。
定義6(主題特征值Md):上述五個定義給出了數據庫Ω中表Ri的主題相關屬性值,其中外鍵特征值、數值特征值、時間特征值和視圖特征值都是靜態(tài)的,元組特征值是動態(tài)的。取靜態(tài)特征值的平均數與動態(tài)特征值的乘積作為表的主題特征值,定義表Ri的主題特征向量為Md=t*(f+n+d+v)/4。
有關數據倉庫主題特征更詳細的討論,請參見文獻[3]。
2 搜索算法
對于數據庫Ω中的所有表,以它們的主題特征值Md作為度量的標準。Md越大的表,越具有數據倉庫的主題特征,越適合作為建立數據倉庫的中心事實表。由此設計出一種算法,能夠自動地對關系數據庫中的所有表進行遍歷搜索,找出數據庫中最具有數據倉庫主題特征的表。
此算法的步驟如下:
(1)首先進行初始化,配置有關數據庫信息,定義算法中使用的數據結構。
(2)對數據庫中的表進行遍歷,計算各個表的特征值對應的統(tǒng)計數:外鍵數、數值字段數、時間字段數、視圖數和元組數,把表的名稱和五個特征值對應的統(tǒng)計數賦值給步驟(1)所創(chuàng)建的數據結構。
(3)計算并找出各項表統(tǒng)計數中的最大值,作為計算歸一化特征值的參考值。
(4)對步驟(2)中保存了表的各項統(tǒng)計數的數據結構進行遍歷,對各個表的各項統(tǒng)計數進行歸一化計算得到其主題相關特征值,并計算各表的主題特征值Md。
(5)按照Md的值,從大到小地輸出結果集。Md越大的表越具有數據倉庫主題特征,越適合作為數據倉庫事實表的備選項。
在數據庫管理系統(tǒng)(DBMS)中,數據庫對象的信息都保存在系統(tǒng)表或者用戶表中,因此可以通過編寫程序實現本文提出的搜索算法。在MS SQL Server 2000中用存儲過程實現該搜索算法的代碼如下:



3 應用實例
運用此算法對山東青島某中型集裝箱國際貨運公司的業(yè)務數據庫進行了搜索。該數據庫中積累了二年的業(yè)務數據,經過搜索得到按照Md從大到小排列的前十個輸出結果如表1所示。

對上面十個表進行簡單分析:序號1為集裝箱動態(tài)表,記錄了每個集裝箱的動態(tài)信息;序號2、3為業(yè)務費用相關表,記錄船務系統(tǒng)所有業(yè)務產生的收支費用信息;序號4、5、6、7、8、9、10為進出口業(yè)務單證相關表,記錄船務系統(tǒng)的定艙、裝箱、貨物、貨主等詳細信息。集裝箱動態(tài)、業(yè)務費用和業(yè)務單證是集裝箱海運系統(tǒng)最主要的業(yè)務數據,是海運物流決策支持系統(tǒng)的核心分析數據,最適合作為集裝箱海運數據倉庫的中心主題,這與通過需求分析得到的結果是基本一致的。
4 結束語
利用主題特征搜索數據倉庫的主題對于數據倉庫的設計有著實際意義。一方面可以將搜索的結果與通過需求分析確定的數據倉庫主題進行參照對比,判斷需求分析和設計的客觀性;另一方面,可以對未知的關系數據庫進行快速分析,找出最具有數據倉庫主題特征的表,輔助數據倉庫設計人員確定主題事實表。但是,目前對數據倉庫主題特征的研究還不是很徹底,對主題特征相關特征值之間的比例關系基本上是平均考慮。如何設定各特征值的權重,使搜索結果更理想,是需要進一步深入研究的問題。
參考文獻
1 Theodoratos D,Sellis T.Designing data warehouses.Data & Knowledge Engineering.1999;(31)
2 orger J L,Vossen G.Multidimensional normal forms for data warehouse design.Information Systems.2002;27
3 劉娟,段成華.評估數據倉庫主題興趣度的Md距離測度方法.計算機應用與軟件.2003;(20)
4 Inmon W H.數據倉庫(第二版).北京:機械工業(yè)出版社,2000
