《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于CWM的元數(shù)據(jù)管理策略
基于CWM的元數(shù)據(jù)管理策略
來源:微型機(jī)與應(yīng)用2011年第23期
謝培基,余金山
(華僑大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,福建 泉州 362021)
摘要: 對(duì)三種經(jīng)典的元數(shù)據(jù)管理策略進(jìn)行了分析和比較,總結(jié)了基于CWM的元數(shù)據(jù)管理策略的優(yōu)勢,對(duì)該策略給出了改進(jìn)的元數(shù)據(jù)管理體系結(jié)構(gòu),解決了各軟件產(chǎn)品或工具間的元數(shù)據(jù)的便捷交換問題,做到元數(shù)據(jù)存儲(chǔ)、管理和交換的協(xié)調(diào)統(tǒng)一,重點(diǎn)討論了其核心部分(元倉庫)的設(shè)計(jì)與實(shí)現(xiàn)。
Abstract:
Key words :

摘  要: 對(duì)三種經(jīng)典的元數(shù)據(jù)管理策略進(jìn)行了分析和比較,總結(jié)了基于CWM的元數(shù)據(jù)管理策略的優(yōu)勢,對(duì)該策略給出了改進(jìn)的元數(shù)據(jù)管理體系結(jié)構(gòu),解決了各軟件產(chǎn)品或工具間的元數(shù)據(jù)的便捷交換問題,做到元數(shù)據(jù)存儲(chǔ)、管理和交換的協(xié)調(diào)統(tǒng)一,重點(diǎn)討論了其核心部分(元倉庫)的設(shè)計(jì)與實(shí)現(xiàn)。
關(guān)鍵詞: CWM;元數(shù)據(jù)管理;元倉庫;對(duì)象關(guān)系映射

 數(shù)據(jù)倉庫技術(shù)是在數(shù)據(jù)庫基礎(chǔ)上發(fā)展而來的新一代信息管理技術(shù),主要用于支持企業(yè)信息集成、數(shù)據(jù)挖掘、企業(yè)決策支持等的應(yīng)用。在數(shù)據(jù)倉庫建設(shè)過程中,由于各工具廠商采用不同的元數(shù)據(jù)標(biāo)準(zhǔn)和不同的元數(shù)據(jù)管理策略,使得依靠這些工具進(jìn)行數(shù)據(jù)集成、數(shù)據(jù)共享顯得十分困難。為了統(tǒng)一數(shù)據(jù)倉庫開發(fā)商元數(shù)據(jù)管理策略,實(shí)現(xiàn)元數(shù)據(jù)的交流和數(shù)據(jù)的集成,2001年OMG組織在其已制定的規(guī)范UML、MOF、XMI的基礎(chǔ)上提出公共倉庫元模型(CWM)。CWM是OMG制定的一個(gè)互操作標(biāo)準(zhǔn),為數(shù)據(jù)倉庫和業(yè)務(wù)分析領(lǐng)域中使用的元數(shù)據(jù)定義了一種通用語言和交換機(jī)制[1]。CWM不僅提供了極受歡迎的描述數(shù)據(jù)倉庫與業(yè)務(wù)分析元數(shù)據(jù)的公共元模型,而且還提供了基于XML的交換工具。CWM本質(zhì)上是一種交換技術(shù),其目的是促進(jìn)多個(gè)廠商的不同軟件工具間的元數(shù)據(jù)交換活動(dòng)。
 本文基于CWM的元數(shù)據(jù)管理策略,介紹了元數(shù)據(jù)管理的三種主要策略,并對(duì)此三種策略進(jìn)行比較,分析各策略的功能與復(fù)雜度,總結(jié)基于CWM的元數(shù)據(jù)管理策略的優(yōu)勢,進(jìn)而給出基于CWM元數(shù)據(jù)管理策略改進(jìn)的元數(shù)據(jù)管理體系結(jié)構(gòu),最后討論了元倉庫的設(shè)計(jì)。
1 元數(shù)據(jù)的不同管理策略及其比較
 元數(shù)據(jù)管理策略為元數(shù)據(jù)集成、共享和重用制定目標(biāo)和需求。成功進(jìn)行元數(shù)據(jù)集成的關(guān)鍵之一是建立一個(gè)有效的元數(shù)據(jù)管理策略。從元數(shù)據(jù)的發(fā)展歷史[2]來看,元數(shù)據(jù)管理策略包括三種:搭建元數(shù)據(jù)橋、搭建元數(shù)據(jù)中央存儲(chǔ)庫、構(gòu)建元數(shù)據(jù)倉庫。
 (1)搭建元數(shù)據(jù)橋[3]:是一種能夠?qū)⒁粋€(gè)產(chǎn)品的元數(shù)據(jù)轉(zhuǎn)換成另一個(gè)產(chǎn)品所要求的格式的軟件。使用元數(shù)據(jù)橋?qū)崿F(xiàn)不同工具間的元數(shù)據(jù)集成是一種點(diǎn)到點(diǎn)的元數(shù)據(jù)體系結(jié)構(gòu)。在這種結(jié)構(gòu)中,每一對(duì)被集成的工具之間都需要一個(gè)獨(dú)立、雙向的橋,對(duì)于n個(gè)產(chǎn)品要實(shí)現(xiàn)元數(shù)據(jù)交換必須建立n×(n-I)個(gè)元數(shù)據(jù)橋。這種方式集成元數(shù)據(jù)大幅增加了開發(fā)和維護(hù)費(fèi)用,而且通常將一種格式的元數(shù)據(jù)轉(zhuǎn)換為另一種格式時(shí),都會(huì)有一定的信息損失。
 (2)搭建元數(shù)據(jù)中央存儲(chǔ)庫[4]:是具有特定目的的數(shù)據(jù)庫,它存儲(chǔ)、控制并能操作環(huán)境中其他所有相關(guān)軟件產(chǎn)品的元數(shù)據(jù)。軟件產(chǎn)品從中央存儲(chǔ)庫中檢索、使用元數(shù)據(jù),每個(gè)產(chǎn)品必須實(shí)現(xiàn)它自己的存儲(chǔ)庫訪問層(另一種形式的橋)。通過使用元數(shù)據(jù)中央存儲(chǔ)庫可以在一定程度上解決定義全局可用且被廣泛理解的元數(shù)據(jù)的需要但并沒有完全消除問題,它仍然需要使用到元數(shù)據(jù)橋,使得成本無法降低很多,也沒有消除受制于特定的廠商的問題。
 由于點(diǎn)到點(diǎn)的體系結(jié)構(gòu)和中央存儲(chǔ)庫的集成體系結(jié)構(gòu)并沒有形成一個(gè)統(tǒng)一的元數(shù)據(jù)標(biāo)準(zhǔn),所以其方案成本都相對(duì)昂貴。
 (3)構(gòu)建元數(shù)據(jù)倉庫:即是基于CWM的元數(shù)據(jù)管理策略。元數(shù)據(jù)倉庫的功能包括對(duì)元數(shù)據(jù)源的ETL、元數(shù)據(jù)的Warehouse以及終端用戶的各種分析、挖掘、報(bào)告工具。通過構(gòu)建基于CWM的元數(shù)據(jù)倉庫,使得各軟件產(chǎn)品元數(shù)據(jù)有一個(gè)一致的標(biāo)準(zhǔn)(CWM標(biāo)準(zhǔn)),各軟件工具之間只需要建立一個(gè)與元數(shù)據(jù)倉庫連接的“橋”(即CWM適配器)就能實(shí)現(xiàn)元數(shù)據(jù)的交換或共享。元數(shù)據(jù)倉庫與元數(shù)據(jù)存儲(chǔ)庫都要求建立通用的元數(shù)據(jù)標(biāo)準(zhǔn),但二者相比有所不同:①元數(shù)據(jù)存儲(chǔ)庫的刷新周期相對(duì)于元數(shù)據(jù)倉庫來說要慢,元數(shù)據(jù)倉庫的元數(shù)據(jù)是準(zhǔn)實(shí)時(shí)的,而元數(shù)據(jù)存儲(chǔ)庫的元數(shù)據(jù)通常的刷新周期在1天以上;②元數(shù)據(jù)倉庫所集成的元數(shù)據(jù)不斷變化,其保存元數(shù)據(jù)的更新情況。而元數(shù)據(jù)存儲(chǔ)庫則是將所有不同時(shí)期的元數(shù)據(jù)都存儲(chǔ)下來。
 通過對(duì)上述三種元數(shù)據(jù)管理策略的分析,得出如圖1所示的三種策略的對(duì)比圖。

 基于CWM的元數(shù)據(jù)管理策略使得元數(shù)據(jù)的交換有了一個(gè)統(tǒng)一的具體通用標(biāo)準(zhǔn),解決了用元數(shù)據(jù)橋式的元數(shù)據(jù)交換帶來的元數(shù)據(jù)的雜亂無章、不可理解性,以及為了讀懂接收的元數(shù)據(jù),對(duì)交換的元數(shù)據(jù)進(jìn)行從一種格式到另一種格式的轉(zhuǎn)換所帶來的一定數(shù)量的元數(shù)據(jù)的丟失,破壞了元數(shù)據(jù)的完整性、準(zhǔn)確性。
 比較三種元數(shù)據(jù)的功能復(fù)雜度,CWM元數(shù)據(jù)管理策略中使用的CWM元倉庫既滿足了性能的要求,又能夠提供很廉價(jià)的存放元數(shù)據(jù)的場所;而對(duì)于元數(shù)據(jù)中央存儲(chǔ)庫,雖然性能上偏優(yōu),但元數(shù)據(jù)在獲得庫所提供的復(fù)雜性能的同時(shí)也會(huì)受到它的限制,例如庫本身的復(fù)雜性和資源需求,導(dǎo)致人員培訓(xùn)費(fèi)用的增加等。
2 基于CWM的元數(shù)據(jù)管理體系結(jié)構(gòu)
 通過對(duì)三種元數(shù)據(jù)管理策略的分析比較可以發(fā)現(xiàn),搭建基于CWM的元數(shù)據(jù)倉庫的管理策略存在較多的優(yōu)點(diǎn),它能夠以較少的代價(jià)提供豐富的數(shù)據(jù)管理功能,即持續(xù)存儲(chǔ)、允許并發(fā)、對(duì)數(shù)據(jù)倉庫環(huán)境中復(fù)雜元數(shù)據(jù)提供事物訪問,而相對(duì)于一個(gè)完善的基于元數(shù)據(jù)中央存儲(chǔ)庫的元數(shù)據(jù)管理系統(tǒng)來說,基于CWM的元數(shù)據(jù)管理系統(tǒng)在功能上還存在一些不足,如版本化、生命周期的管理等。針對(duì)基于CWM的元數(shù)據(jù)管理策略不足,本文給出了一種如圖2所示改進(jìn)的元數(shù)據(jù)管理體系結(jié)構(gòu)。

 

 

 該系統(tǒng)結(jié)構(gòu)主要由元倉庫、可操作的數(shù)據(jù)存儲(chǔ)器、建模工具、元數(shù)據(jù)管理工具及其他一些數(shù)據(jù)庫應(yīng)用工具或軟件產(chǎn)品等模塊組成。
 (1)元倉庫:是整個(gè)架構(gòu)的核心,是一個(gè)全局共享元數(shù)據(jù)的以CWM編碼的關(guān)系型數(shù)據(jù)庫,主要用于存儲(chǔ)管理各以CWM為元數(shù)據(jù)標(biāo)準(zhǔn)的工具產(chǎn)生的元數(shù)據(jù)和以CWM規(guī)范建模和操作過程中所產(chǎn)生的元數(shù)據(jù)以及從各類型數(shù)據(jù)庫提取的元數(shù)據(jù)。
 (2)建模工具:可供用戶對(duì)可操作的數(shù)據(jù)存儲(chǔ)器中的某一主題建立元模型實(shí)例,直接收集元數(shù)據(jù),然后存入到元倉庫中,作為其他工具所需要元數(shù)據(jù)的數(shù)據(jù)源。
 (3)元數(shù)據(jù)管理工具:可供對(duì)元倉庫中的元數(shù)據(jù)進(jìn)行增刪改查操作,方便用戶對(duì)元倉庫的更新和維護(hù)。但元倉庫中的元數(shù)據(jù)一般的用戶很難讀懂,很難將一堆雜亂的元數(shù)據(jù)聯(lián)系起來理解其實(shí)際意義,應(yīng)當(dāng)將其與建模工具相結(jié)合,用圖形化的形式顯示這些元數(shù)據(jù)的元數(shù)據(jù)模型。
 (4)與元倉庫連接的各軟件工具、應(yīng)用程序都支持CWM標(biāo)準(zhǔn),它們都實(shí)現(xiàn)了相同的用于元數(shù)據(jù)交換的公共接口,這也意味著任何支持CWM的軟件組件都能夠很容易地理解其他支持CWM的組件的元數(shù)據(jù)實(shí)例,并且能通過標(biāo)準(zhǔn)的CWM元數(shù)據(jù)接口集來訪問元數(shù)據(jù)。在這些支持CWM的工具與元倉庫的元數(shù)據(jù)交流中,同樣需要一個(gè)元數(shù)據(jù)“橋”,這個(gè)橋可以用一個(gè)CWM適配器的輕量級(jí)的橋代替。
 (5)CWM適配器是一個(gè)軟件,它可以理解CWM元模型以及擁有該適配器的軟件產(chǎn)品內(nèi)部的元模型和專有的元數(shù)據(jù)接口。適配器的公共端實(shí)現(xiàn)CWM的標(biāo)準(zhǔn)接口,另一端則連接到產(chǎn)品的特定接口。針對(duì)某一軟件產(chǎn)品或工具寫適應(yīng)它的適配器只需要編寫一次,所以它相對(duì)于其他的元數(shù)據(jù)橋節(jié)省了很多開銷。
3 元倉庫的設(shè)計(jì)
 在元數(shù)據(jù)管理體系結(jié)構(gòu)中,CWM編碼的元倉庫是整個(gè)架構(gòu)的核心。因?yàn)镃WM本身是一個(gè)面向?qū)ο蟮脑P?,而各軟件產(chǎn)品或工具的元數(shù)據(jù)大部分是建立在關(guān)系數(shù)據(jù)庫之上,且目前面向?qū)ο蟮臄?shù)據(jù)庫管理系統(tǒng)不普及[5],因而無法使用面向?qū)ο蟮腄BMS來創(chuàng)建一個(gè)元倉庫,因此,需要將CWM的面向?qū)ο笤P陀成涞揭粋€(gè)關(guān)系數(shù)據(jù)庫中,建立基于關(guān)系數(shù)據(jù)庫的元倉庫。在將CWM面向?qū)ο蟮母拍钣成涞疥P(guān)系表上同時(shí)又要保持元數(shù)據(jù)本身的邏輯結(jié)構(gòu)不變,需要解決CWM中數(shù)據(jù)類型、類、繼承和關(guān)聯(lián)等在關(guān)系數(shù)據(jù)庫中的映射問題。在CWM中大量使用了UML的繼承特性,CWM的21個(gè)元模型包[6]中就存在著大量的泛化層次結(jié)構(gòu),因此,選擇如何實(shí)現(xiàn)泛化層次在元倉庫的開發(fā)是最關(guān)鍵的。為此,下面首先分析了繼承模式的幾種映射策略,選擇了一種實(shí)現(xiàn)方便、節(jié)約存儲(chǔ)空間的方法來實(shí)現(xiàn)元倉庫的建立,然后討論對(duì)象關(guān)系映射中數(shù)據(jù)類型、關(guān)聯(lián)的映射問題。
3.1 繼承映射
 從類到表的映射并不是簡單的一一對(duì)應(yīng)關(guān)系,因?yàn)橐粋€(gè)子類可以繼承父類的一些特性和操作,而繼承是UML和面向?qū)ο笙到y(tǒng)的一個(gè)主要特征,它把類組織成逆向的樹形結(jié)構(gòu)(即泛化層次),因此必須考慮泛化層次的對(duì)象的映射問題。以圖3所示的CWM關(guān)系型包中的Relational::Trigger的泛化層次為例,給出幾種對(duì)象關(guān)系映射策略。

 (1)整個(gè)泛化層次結(jié)構(gòu)映射成一張表
 將一個(gè)完整的泛化層次結(jié)構(gòu)映射成一張表,層次結(jié)構(gòu)中所有類的屬性都存放在這個(gè)表中,每個(gè)實(shí)例對(duì)應(yīng)表中的一行。為了表明一個(gè)對(duì)象實(shí)例是屬于哪個(gè)類的,必須添加一個(gè)屬性“對(duì)象類別”OID,這種映射對(duì)應(yīng)的表如表1所示。這種映射策略的優(yōu)點(diǎn)是結(jié)構(gòu)相對(duì)簡單,只有一個(gè)單一的表,其缺點(diǎn)是存儲(chǔ)空間浪費(fèi)大、利用率低、類層次間的耦合非常高,當(dāng)泛化層次結(jié)構(gòu)中的某一個(gè)類要增加屬性時(shí),必須將一個(gè)新屬性增加到表中,這將影響到泛化層次中的所有類。

 (2) 每個(gè)類映射成一張包含該類繼承屬性的表
 使用這種映射策略,是將每個(gè)類映射成一張表,在表中既包含該類的屬性又包括其父類的屬性,如表2所示。這種映射策略的優(yōu)點(diǎn)是對(duì)單個(gè)類的查詢操作比較簡單,但是同樣會(huì)造成存儲(chǔ)空間的浪費(fèi),且類層次間的耦合性較高,當(dāng)父類的結(jié)構(gòu)改變時(shí),子類的結(jié)構(gòu)也要跟著改變。此外在實(shí)現(xiàn)上不方便,因?yàn)镸odelElement有兩個(gè)子類(Trigger類和A類),Trigger有一個(gè)ID,A也有一個(gè)ID,它們都是ModelElement的子類。如果這兩個(gè)表的主鍵相同,父類是無法識(shí)別這兩個(gè)子類的,所以這兩個(gè)ID一定不能相同,因此也就不能使用ID自動(dòng)生成策略。

 由上分析可以得出:(1)第一種策略是將整個(gè)泛化層次映射成一個(gè)表結(jié)構(gòu)。由于CWM元模型包中的泛化層次樹形結(jié)構(gòu)很深,所以會(huì)使得元組很龐大,浪費(fèi)大量的存儲(chǔ)空間,且每次讀取時(shí)需要讀入很多不必要的屬性,因此不適合用這種策略建立元倉庫;(2)第二種策略同樣也會(huì)造成存儲(chǔ)空間的浪費(fèi),在實(shí)現(xiàn)上也不方便,亦不適合采用;(3)第三種策略是將每個(gè)類映射成一個(gè)表,每個(gè)表只包含該類含有的屬性,這種方法可節(jié)省存儲(chǔ)空間,雖然查詢操作涉及多個(gè)表的連接操作,連接操作將多個(gè)連接的表組成一個(gè)表較耗時(shí),但在計(jì)算機(jī)速度不斷提高且不要求實(shí)時(shí)性的情況下適宜選用這種策略。所以本文使用第三種策略來實(shí)現(xiàn)CWM元模型包中各泛化層次結(jié)構(gòu)的映射問題,建立元倉庫。
3.2 數(shù)據(jù)類型映射
 每個(gè)CWM屬性可以是以下三類中的一種:簡單數(shù)據(jù)類型、枚舉數(shù)據(jù)類型和基于類的數(shù)據(jù)類型。這些CWM的數(shù)據(jù)類型集必須映射到相應(yīng)的T-SQL語言支持的數(shù)據(jù)類型上,如果沒有直接對(duì)應(yīng)的T-SQL數(shù)據(jù)類型,元倉庫必須創(chuàng)建數(shù)據(jù)結(jié)構(gòu)使其能模仿所要求的類型。如簡單的數(shù)據(jù)類型映射規(guī)則是:只要將CWM簡單數(shù)據(jù)類型映射到CORBA IDL類型碼,而后映射到T-SQL數(shù)據(jù)類型即可。
 枚舉數(shù)據(jù)類型映射規(guī)則是將每個(gè)CWM枚舉數(shù)據(jù)類型用一個(gè)創(chuàng)建的表表示。枚舉數(shù)據(jù)類型表中的行只有一列,名為_EnumLiteral,它包含枚舉文字值。當(dāng)基于枚舉數(shù)據(jù)類型的列值變化時(shí),新的取值按照該表確定以保持列數(shù)據(jù)的完整性。
 基于類的數(shù)據(jù)類型映射規(guī)則,則需要?jiǎng)?chuàng)建一個(gè)基于類的類型的實(shí)例,然后將該實(shí)例的鍵存放在一個(gè)向表示擁有該類屬性的類的表增加的基礎(chǔ)列中。
3.3 關(guān)聯(lián)映射模式
 關(guān)聯(lián)是UML中表示類的實(shí)例間的關(guān)系的一種方法,有一對(duì)一、一對(duì)多、多對(duì)多三種關(guān)聯(lián)。
對(duì)于一對(duì)一關(guān)聯(lián)映射規(guī)則,只要在如圖4所示的兩個(gè)關(guān)聯(lián)類各對(duì)應(yīng)的表中增加一列。

 多對(duì)多關(guān)聯(lián)映射規(guī)則需要將關(guān)聯(lián)單獨(dú)映射成一張關(guān)系表,如圖6所示。

 本文分析了三種典型的元數(shù)據(jù)管理策略,并進(jìn)行了詳細(xì)的比較,提出了基于CWM管理策略的元數(shù)據(jù)管理體系結(jié)構(gòu),解決了多個(gè)廠商的產(chǎn)品之間的元數(shù)據(jù)交換使用繁瑣而復(fù)雜的軟件工具來實(shí)現(xiàn)交換的問題。CWM為數(shù)據(jù)倉庫和商業(yè)智能環(huán)境下的元數(shù)據(jù)交換制定了一個(gè)標(biāo)準(zhǔn),元倉庫是對(duì)其的映射實(shí)現(xiàn),用元倉庫來存放管理元數(shù)據(jù),做到元數(shù)據(jù)存儲(chǔ)、管理和交換的協(xié)調(diào)統(tǒng)一。
參考文獻(xiàn)
[1] 吳曉淵,寧洪.基于CWM的企業(yè)數(shù)據(jù)集成研究[C].中國計(jì)算機(jī)大會(huì),2005.
[2] VADUVA A, DITTRICH K R. Metadata management for data warehousing: between vision and reality[C]. 2001 Int′1 Database Engineering &Amp; Application Symp,2001.
[3] 楊華甫,鄧守城,高張.CWM中基于元模式的數(shù)據(jù)集成研究與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2008(8).
[4] 聶茹,張虹.數(shù)據(jù)倉庫元數(shù)據(jù)管理模式的分析與比較[J].計(jì)算機(jī)應(yīng)用研究,2005,22(2).
[5] 馬思紅.淺談面向?qū)ο髷?shù)據(jù)庫的技術(shù)和發(fā)展[J].安徽農(nóng)業(yè)科學(xué),2007,35(24).
[6] INMON W H. Building the data warehouse[M]. John Wiley& Sons Inc. 2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。