亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于xml的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法和系統(tǒng)的制作方法

文檔序號:6353363閱讀:280來源:國知局
專利名稱:基于xml的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種信息技術(shù)領(lǐng)域的數(shù)據(jù)集成方法,更確切地說,本發(fā)明涉及一種基 于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法,也可以說,本發(fā)明涉及一種實(shí)施基于XML的異 構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成系統(tǒng)。
背景技術(shù)
近年來,眾多企業(yè)伴隨著業(yè)務(wù)的發(fā)展積累了大量的數(shù)據(jù)。然而,由于企業(yè)內(nèi)部以及 企業(yè)之間數(shù)據(jù)庫系統(tǒng)的分布性、異構(gòu)性和獨(dú)立性,導(dǎo)致“信息孤島”的形成,使得大量數(shù)據(jù)不 能被正確高效地利用。因此,解決這一現(xiàn)實(shí)問題,對企業(yè)的運(yùn)營和發(fā)展具有重要意義。目前特定行業(yè)如銀行、電信等已經(jīng)擁有成熟的數(shù)據(jù)交換和數(shù)據(jù)集成的方法和工 具。中小型企業(yè)也有數(shù)據(jù)集成的需求,但卻沒有統(tǒng)一的行業(yè)標(biāo)準(zhǔn),數(shù)據(jù)流通格式雜亂,數(shù)據(jù) 集成困難,需要一種擴(kuò)展性強(qiáng)、通用性好的技術(shù)方案來解決該實(shí)際問題。傳統(tǒng)的解決方案有兩種1.搭建中心數(shù)據(jù)倉庫,將集成的數(shù)據(jù)全部匯集到其中。這種方法,需要大量的數(shù)據(jù) 存儲(chǔ)和維護(hù)性的軟硬件設(shè)備,費(fèi)用昂貴,不易維護(hù),且不能與源數(shù)據(jù)庫保持同步,數(shù)據(jù)利用
率不高。2.聯(lián)邦數(shù)據(jù)庫,將系統(tǒng)中所有數(shù)據(jù)庫之間建立彼此訪問的接口。這種方法的維護(hù) 和擴(kuò)展會(huì)涉及到整個(gè)系統(tǒng),工作量大,成本很高。

發(fā)明內(nèi)容
本發(fā)明所要解決的問題是克服了現(xiàn)有技術(shù)存在的技術(shù)問題,提供了一種適合于中 小型企業(yè)的、廉價(jià)高效的、擴(kuò)展性和可移植性強(qiáng)的、跨操作系統(tǒng)和數(shù)據(jù)庫平臺的基于XML的 異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法,也可以說,本發(fā)明提供了一種基于XML的異構(gòu)關(guān)系型 數(shù)據(jù)庫的數(shù)據(jù)集成系統(tǒng)。為解決上述技術(shù)問題,本發(fā)明是采用如下技術(shù)方案實(shí)現(xiàn)的所述的基于XML的異 構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法包括如下步驟1.獲取數(shù)據(jù)集成需求和集成前期準(zhǔn)備。2.若集成應(yīng)用涉及了新數(shù)據(jù)庫產(chǎn)品,則執(zhí)行添加新支持的數(shù)據(jù)庫產(chǎn)品。3.在全局查詢請求配置界面的數(shù)據(jù)源的視區(qū)上,添加擬集成的數(shù)據(jù)源和擬導(dǎo)入數(shù) 據(jù)的目的數(shù)據(jù)源。4.在全局查詢請求配置界面上,錄入方案的信息,選擇查詢請求文檔的保存位置, 生成查詢請求配置文檔。5.在持久化參數(shù)設(shè)置界面上,錄入持久化參數(shù),選擇集成計(jì)劃文檔的保存路徑,生 成集成計(jì)劃文檔,若目的數(shù)據(jù)表不存在,在持久化參數(shù)設(shè)置界面上錄入新建表的信息,創(chuàng)建 一個(gè)新的數(shù)據(jù)表,然后再錄入持久化參數(shù).6.在執(zhí)行集成計(jì)劃界面上,選取一個(gè)集成計(jì)劃文檔,執(zhí)行該集成計(jì)劃,等待軟件系統(tǒng)處理,執(zhí)行集成計(jì)劃界面上會(huì)顯示集成計(jì)劃執(zhí)行的狀態(tài)和異常情況,執(zhí)行完畢后,結(jié)果報(bào) 告界面會(huì)顯示集成結(jié)果數(shù)據(jù)統(tǒng)計(jì)報(bào)表,特殊處理異常表中的數(shù)據(jù),如此反復(fù)執(zhí)行第4至6步 驟,直到完成所有的集成任務(wù)。技術(shù)方案中所述的獲取數(shù)據(jù)集成需求和集成前期準(zhǔn)備的步驟如下1.獲取數(shù)據(jù)集成需求,確定集成的范圍,制定數(shù)據(jù)集成計(jì)劃,書寫需求規(guī)格。2.確定集成數(shù)據(jù)源所在的數(shù)據(jù)庫環(huán)境,獲取數(shù)據(jù)源的信息,包括數(shù)據(jù)庫的產(chǎn)品 類型、版本、數(shù)據(jù)庫名稱、數(shù)據(jù)庫IP地址、數(shù)據(jù)庫服務(wù)端口、及其具有通過JDBC操縱數(shù)據(jù)庫 權(quán)限的登陸用戶名和口令。3.確定集成涉及的數(shù)據(jù)表,獲取數(shù)據(jù)表信息,包括表模式,表名稱,字段列表和 對應(yīng)數(shù)據(jù)類型的列表。4.分析需求,將集成任務(wù)分解成若干相互獨(dú)立的子任務(wù),確定每個(gè)子任務(wù)的集成 邏輯,將集成邏輯形式化為查詢方案,查詢方案可以用結(jié)構(gòu)化查詢語言來表示,應(yīng)當(dāng)注意的 是查詢語句中的每一個(gè)表和屬性列都要有一個(gè)其所屬數(shù)據(jù)庫的標(biāo)識作為前綴。5.完成對集成目的數(shù)據(jù)庫的設(shè)計(jì)。6.獲取結(jié)果持久化參數(shù)1)目的數(shù)據(jù)源信息。2)目的數(shù)據(jù)表信息。3)查詢結(jié)果屬性和目的表屬性的映射關(guān)系。4)指定一個(gè)數(shù)據(jù)導(dǎo)入異常表,記錄下該數(shù)據(jù)表的信息。7.對已獲得的各項(xiàng)參數(shù)進(jìn)行驗(yàn)證和確認(rèn),完成對已得到的查詢方案和目的數(shù)據(jù)庫 設(shè)計(jì)方案的評審和確認(rèn)。技術(shù)方案中所述的若集成應(yīng)用涉及了新數(shù)據(jù)庫產(chǎn)品,則執(zhí)行添加新支持的數(shù)據(jù)庫 產(chǎn)品的步驟如下1.獲取新增數(shù)據(jù)庫產(chǎn)品中包括數(shù)據(jù)類型的名稱和特性的所有數(shù)據(jù)類型的信息。2.根據(jù)數(shù)據(jù)類型的特性,指定其映射為一種通用數(shù)據(jù)類型。3.將獲取到的與通用數(shù)據(jù)類型映射信息和特性信息添加到數(shù)據(jù)類型字典中。一種基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法的數(shù)據(jù)集成系統(tǒng),其包括一個(gè)收集用戶提交的全局查詢請求和持久化參數(shù),對全局查詢請求和持久化參數(shù) 進(jìn)行合法性檢查,分發(fā)集成任務(wù),監(jiān)控集成過程,報(bào)告集成結(jié)果的集成任務(wù)管理器。一個(gè)實(shí)現(xiàn)了數(shù)據(jù)源動(dòng)態(tài)管理,完成關(guān)系表的映射處理,為用戶提供數(shù)據(jù)源全局視 圖的數(shù)據(jù)源管理器。一個(gè)將查詢請求根據(jù)數(shù)據(jù)的映射關(guān)系分解為若干子查詢請求和全局查詢元數(shù)據(jù), 并對子查詢請求進(jìn)行優(yōu)化,生成子查詢計(jì)劃的查詢分解優(yōu)化器。一個(gè)將接收到的子查詢計(jì)劃分配給數(shù)據(jù)提取引擎,對底層數(shù)據(jù)源發(fā)布SQL查詢提 取數(shù)據(jù),并將查詢結(jié)果集轉(zhuǎn)換為中間結(jié)果XML數(shù)據(jù)的數(shù)據(jù)提取器。一個(gè)接收中間結(jié)果XML數(shù)據(jù)和全局查詢元數(shù)據(jù),利用關(guān)系代數(shù)引擎,對中間結(jié)果 進(jìn)行整合,生成最終的全局查詢結(jié)果的查詢結(jié)果整合器?!獋€(gè)將整合后的結(jié)果數(shù)據(jù)導(dǎo)入到已有數(shù)據(jù)庫中的結(jié)果持久器。與現(xiàn)有技術(shù)相比本發(fā)明的有益效果是
1.本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法在數(shù)據(jù)集成的過 程中,可以保證不對數(shù)據(jù)源做任何改變,因此集成的風(fēng)險(xiǎn)和代價(jià)小。2.本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法使用了動(dòng)態(tài)的數(shù) 據(jù)源管理,查詢所得數(shù)據(jù)即為最新數(shù)據(jù),保證了數(shù)據(jù)的一致性。3.本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法無需搭建中心數(shù) 據(jù)倉庫,省去了數(shù)據(jù)庫軟件產(chǎn)品以及海量存儲(chǔ)設(shè)備的費(fèi)用,降低了集成項(xiàng)目的風(fēng)險(xiǎn)。4.本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法由具有跨平臺性 的Java程序語言編寫,系統(tǒng)具有平臺獨(dú)立性,容易移植。5.本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法需要支持新的數(shù) 據(jù)庫產(chǎn)品或者數(shù)據(jù)源時(shí),只需要在數(shù)據(jù)源字典或者數(shù)據(jù)類型字典中注冊相應(yīng)的項(xiàng)目即可, 這使得系統(tǒng)具有良好的擴(kuò)展性,容易維護(hù),成本較低。6.本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法由集成的需求決 定需要提取的數(shù)據(jù),在數(shù)據(jù)提取前進(jìn)行了查詢優(yōu)化,數(shù)據(jù)利用率很高。


下面結(jié)合附圖對本發(fā)明作進(jìn)一步的說明圖1為本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法的步驟流程 圖;圖2為本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成系統(tǒng)的功能模塊構(gòu) 架框圖;圖3為本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成系統(tǒng)的數(shù)據(jù)源管 理器的功能模塊構(gòu)架框圖;圖4 圖6為利用本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成系統(tǒng)查 詢請求的一種表示方法;圖7為利用本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成系統(tǒng)的一種全 局查詢配置的用戶可視化界面;圖8為利用本發(fā)明所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成系統(tǒng)一種中間 結(jié)果XML數(shù)據(jù)表示方法。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明作詳細(xì)的描述本發(fā)明提供了一種適合于中小型企業(yè)的、廉價(jià)高效的、擴(kuò)展性和可移植性強(qiáng)的、跨 操作系統(tǒng)和數(shù)據(jù)庫平臺的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法。該方法是基于自編的一個(gè)基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成的計(jì)算機(jī)程 序,該計(jì)算機(jī)程序是運(yùn)行在網(wǎng)絡(luò)環(huán)境中,基于自主定義的Java和XML數(shù)據(jù)類型系統(tǒng)的、具有 動(dòng)態(tài)數(shù)據(jù)源管理、集成任務(wù)配置和優(yōu)化,數(shù)據(jù)提取和整合,結(jié)果持久化功能的跨平臺的數(shù)據(jù) 集成的軟件系統(tǒng)。該方法同時(shí)給出了軟件系統(tǒng)新增數(shù)據(jù)庫產(chǎn)品的解決方法,以及具體數(shù)據(jù) 集成應(yīng)用的處理步驟。I.基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法
按照計(jì)算機(jī)程序方法流程的步驟,基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法 的步驟如下1.獲取數(shù)據(jù)集成需求和集成前期準(zhǔn)備1)獲取數(shù)據(jù)集成需求,確定集成的范圍,制定數(shù)據(jù)集成計(jì)劃,書寫需求規(guī)格。2)確定集成數(shù)據(jù)源所在的數(shù)據(jù)庫環(huán)境。獲取數(shù)據(jù)源的信息,包括數(shù)據(jù)庫的產(chǎn)品 類型,版本,數(shù)據(jù)庫名稱,數(shù)據(jù)庫IP地址,數(shù)據(jù)庫服務(wù)端口,及其具有通過JDBC操縱數(shù)據(jù)庫 權(quán)限的登陸用戶名和口令。3)確定集成涉及的數(shù)據(jù)表,獲取數(shù)據(jù)表信息,包括表模式,表名稱,字段列表和 對應(yīng)數(shù)據(jù)類型的列表。4)分析需求,將集成任務(wù)分解成若干相互獨(dú)立的子任務(wù),確定每個(gè)子任務(wù)的集成 邏輯,將集成邏輯形式化為查詢方案。查詢方案可以用結(jié)構(gòu)化查詢語言來表示。應(yīng)當(dāng)注意 的是查詢語句中的每一個(gè)表和屬性列都要有一個(gè)其所屬數(shù)據(jù)庫的標(biāo)識作為前綴。5)完成對集成目的數(shù)據(jù)庫的設(shè)計(jì)。6)獲取結(jié)果持久化參數(shù)(1)目的數(shù)據(jù)源信息。(2)目的數(shù)據(jù)表信息。(3)查詢結(jié)果屬性和目的表的屬性的映射關(guān)系。(4)指定一個(gè)數(shù)據(jù)導(dǎo)入異常表,記錄下該數(shù)據(jù)表的信息。7)對已獲得的各項(xiàng)參數(shù)進(jìn)行驗(yàn)證和確認(rèn)。完成對已得到的查詢方案和目的數(shù)據(jù)庫 設(shè)計(jì)方案的評審和確認(rèn)。2.若集成應(yīng)用涉及了新數(shù)據(jù)庫產(chǎn)品,則執(zhí)行向軟件系統(tǒng)中添加新支持的數(shù)據(jù)庫產(chǎn)
P
ΡΠ O3.與集成軟件系統(tǒng)的全局查詢請求配置界面的數(shù)據(jù)源的視區(qū)上,添加與集成有關(guān) 的數(shù)據(jù)源,包括擬集成的數(shù)據(jù)源和擬導(dǎo)入數(shù)據(jù)的目的數(shù)據(jù)源。4.選取一個(gè)查詢方案,在全局查詢請求配置的界面上,錄入該方案的信息,選擇查 詢請求文檔的保存位置,生成一個(gè)查詢請求配置文檔。5.在系統(tǒng)的持久化參數(shù)設(shè)置界面上,錄入持久化參數(shù),選擇集成計(jì)劃文檔的保存 路徑,生成一個(gè)集成計(jì)劃文檔。若目的數(shù)據(jù)表不存在,可以在界面上錄入新建表的信息,創(chuàng) 建一個(gè)新的數(shù)據(jù)表,然后再錄入持久化參數(shù)。6.在系統(tǒng)的執(zhí)行集成計(jì)劃界面上,選取一個(gè)集成計(jì)劃文檔,執(zhí)行該集成計(jì)劃,等待 軟件系統(tǒng)處理,界面上會(huì)顯示集成計(jì)劃執(zhí)行的狀態(tài)和異常情況。執(zhí)行完畢后,結(jié)果報(bào)告界面 會(huì)顯示集成結(jié)果數(shù)據(jù)統(tǒng)計(jì)報(bào)表,特殊處理異常表中的數(shù)據(jù)。如此反復(fù)執(zhí)行步驟4到步驟6, 直到完成所有的集成任務(wù)。II.基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法向軟件系統(tǒng)中添加新支持的數(shù) 據(jù)庫產(chǎn)品的步驟如下1.獲取新增數(shù)據(jù)庫產(chǎn)品中所有數(shù)據(jù)類型的信息,包括數(shù)據(jù)類型的名稱和特性。2.根據(jù)數(shù)據(jù)類型的特性,指定其映射為一種通用數(shù)據(jù)類型。3.將獲取到的與通用數(shù)據(jù)類型映射信息和特性信息添加到集成軟件系統(tǒng)的數(shù)據(jù) 類型字典中。
III.基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成系統(tǒng)參閱圖2,對于同一計(jì)算機(jī)程序按照裝置進(jìn)行闡述,基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫 的數(shù)據(jù)集成系統(tǒng)是由集成任務(wù)管理器、數(shù)據(jù)源管理器、查詢分解優(yōu)化器、數(shù)據(jù)提取器、結(jié)果 整合器和結(jié)果持久器所構(gòu)成的功能模塊構(gòu)架。1.集成任務(wù)管理器收集用戶提交的全局查詢請求和持久化參數(shù),對全局查詢請求和持久化參數(shù)進(jìn)行 合法性檢查,分發(fā)集成任務(wù),監(jiān)控集成過程,報(bào)告集成結(jié)果。集成任務(wù)管理器的實(shí)現(xiàn)過程 為1)確定查詢請求的表示形式,這種表示須有如下特點(diǎn)(1)能準(zhǔn)確無二義性地表達(dá)出每個(gè)涉及集成的數(shù)據(jù)表;(2)能清楚表達(dá)出結(jié)構(gòu)化查詢語言的語義。圖4 圖6給出了一種表示方法的實(shí) 施例。2)創(chuàng)建用戶可視化界面,包含四個(gè)部分全局查詢請求配置、持久化參數(shù)設(shè)置、執(zhí) 行集成計(jì)劃和結(jié)果報(bào)告。全局查詢請求的用戶界面須有如下特點(diǎn)(1)展現(xiàn)出數(shù)據(jù)源表模式的統(tǒng)一視圖;(2)能表達(dá)出結(jié)構(gòu)化查詢語言的語義;(3)提供供用戶參考和選擇的必要信息,方便用戶操作。參閱圖7,圖中給出了一種全局查詢請求配置界面的解決方案,左面為數(shù)據(jù)源視 區(qū),顯示可用數(shù)據(jù)源,可在該視區(qū)上添加,除去和刷新數(shù)據(jù)源。右邊為查詢配置視區(qū),劃分為 六個(gè)分區(qū),每個(gè)分區(qū)對應(yīng)一個(gè)結(jié)構(gòu)化查詢的子句??梢栽诿總€(gè)分區(qū)中添加若干項(xiàng)目,項(xiàng)目中 包含可供用戶選擇的數(shù)據(jù)表和列信息、運(yùn)算符號以及供用戶輸入的域。最下面是結(jié)果視區(qū), 可以創(chuàng)建查詢請求和配置查詢請求的保存位置。持久化參數(shù)設(shè)置界面能收集查詢結(jié)果持久化的參數(shù),包括目的數(shù)據(jù)源信息、目的 數(shù)據(jù)表信息、查詢結(jié)果屬性和目的表屬性的映射關(guān)系、數(shù)據(jù)導(dǎo)入異常表信息。收集持久化參 數(shù)前需要選擇一個(gè)查詢請求,持久化參數(shù)的表屬性應(yīng)與查詢結(jié)果的屬性在個(gè)數(shù)和類型上對 應(yīng)一致。在該界面上可以配置集成計(jì)劃的保存位置。另外,可通過該界面在數(shù)據(jù)源中新建 數(shù)據(jù)表。執(zhí)行集成計(jì)劃界面,體現(xiàn)如下功能集成方案選擇,集成計(jì)劃執(zhí)行狀態(tài)反饋,錯(cuò)誤 和異常提示。結(jié)果報(bào)告界面顯示了集成計(jì)劃執(zhí)行的情況信息,顯示集成結(jié)果數(shù)據(jù)統(tǒng)計(jì)報(bào)表。3)構(gòu)建與數(shù)據(jù)源管理器、查詢分解優(yōu)化器、數(shù)據(jù)提取器、結(jié)果整合器和結(jié)果持久器 的通訊接口。確定消息和數(shù)據(jù)傳遞的語義以及錯(cuò)誤和異常的處理方式。4)實(shí)現(xiàn)業(yè)務(wù)處理流程(1)全局查詢請求配置界面與用戶交互,與數(shù)據(jù)源管理器通信,可完成數(shù)據(jù)源的添 加,除去,刷新功能。(2)全局查詢請求配置界面與用戶交互,與數(shù)據(jù)源管理器通信,獲取全局查詢信 息,生成全局查詢請求配置文檔,對其進(jìn)行詞法,語法的驗(yàn)證檢查,若發(fā)現(xiàn)錯(cuò)誤,反饋用戶更 正。
(3)持久化參數(shù)設(shè)置界面與用戶交互,與數(shù)據(jù)源管理器通信,獲取查詢請求配置文 檔和持久化參數(shù),生成集成計(jì)劃文檔。若目的數(shù)據(jù)表尚不存在,可以使用建表器新建數(shù)據(jù)表 之后再指定持久化參數(shù)。建表器的處理流程讀取用戶建表參數(shù);將其轉(zhuǎn)換為DDL代碼;與 數(shù)據(jù)源管理器數(shù)據(jù)交互,獲取數(shù)據(jù)源信息;建立數(shù)據(jù)庫連接,執(zhí)行建表代碼;捕捉異常信 息,報(bào)告建表結(jié)果。(4)用戶與執(zhí)行集成計(jì)劃界面交互,獲取集成計(jì)劃文檔。集成命令發(fā)出后,獲取全 局查詢請求,并傳遞給查詢分解優(yōu)化器。建立與查詢分解優(yōu)化器,數(shù)據(jù)提取器,結(jié)果整合器 的通信連接,監(jiān)控執(zhí)行狀態(tài),收集異常消息和統(tǒng)計(jì)信息,寫入日志,向用戶報(bào)告執(zhí)行情況。讀 取持久化參數(shù),將持久化參數(shù)和整合的結(jié)果數(shù)據(jù)傳遞給數(shù)據(jù)持久器,并監(jiān)控持久化狀態(tài),收 集異常和統(tǒng)計(jì)信息,寫入日志,向用戶報(bào)告持久化情況。(5)持久化完成后,收集集成過程統(tǒng)計(jì)信息,生成和顯示集成結(jié)果數(shù)據(jù)統(tǒng)計(jì)報(bào)表。2.數(shù)據(jù)源管理器參閱圖3,提供了動(dòng)態(tài)的數(shù)據(jù)源管理,完成關(guān)系表的映射處理,為用戶提供數(shù)據(jù)源 全局視圖。圖中表示了數(shù)據(jù)源管理器的內(nèi)部構(gòu)造1)建立數(shù)據(jù)源字典,它保存了數(shù)據(jù)集成涉及的數(shù)據(jù)源及其數(shù)據(jù)表的信息。其中數(shù) 據(jù)源的信息包括數(shù)據(jù)庫的產(chǎn)品類型,版本,數(shù)據(jù)庫名稱,數(shù)據(jù)庫IP地址,數(shù)據(jù)庫服務(wù)端口, 及其具有通過JDBC操縱數(shù)據(jù)庫權(quán)限的登錄用戶名和口令。數(shù)據(jù)表信息包括表模式,表名 稱,字段和對應(yīng)數(shù)據(jù)類型的列表。數(shù)據(jù)源管理器在系統(tǒng)運(yùn)行過程中維護(hù)這個(gè)數(shù)據(jù)源字典。數(shù) 據(jù)源的添加、除去和刷新操作對應(yīng)著數(shù)據(jù)源字典的信息更新。2)創(chuàng)建四種通用數(shù)據(jù)類型,CHAR、NUMBER、DATE和BOOLEAN,每種數(shù)據(jù)類型具有該 種數(shù)據(jù)類型的元信息,它包括通用數(shù)據(jù)類型的特性,與其他通用數(shù)據(jù)類型的兼容性,和兼 容轉(zhuǎn)換的條件。3)創(chuàng)建數(shù)據(jù)類型字典,它保存了數(shù)據(jù)庫數(shù)據(jù)類型與通用數(shù)據(jù)類型的映射信息。當(dāng) 系統(tǒng)添加新的數(shù)據(jù)源產(chǎn)品的時(shí)候,需要在數(shù)據(jù)類型字典中添加相應(yīng)的映射項(xiàng)目。4)構(gòu)建數(shù)據(jù)源的全局視圖,它表現(xiàn)了在數(shù)據(jù)源字典中注冊的數(shù)據(jù)源,數(shù)據(jù)表,屬性 列的信息,還包括每個(gè)屬性列的數(shù)據(jù)類型對應(yīng)的通用數(shù)據(jù)類型。凡是在數(shù)據(jù)源字典中注冊 的數(shù)據(jù)源,數(shù)據(jù)表,屬性列在全局視圖中都是可見的。5)構(gòu)建元信息提取引擎,該引擎包含數(shù)據(jù)訪問的公共接口和元信息的通用提取方 法。元信息提取引擎接受用戶的操作指令,數(shù)據(jù)源信息和表名信息,建立JDBC連接,驗(yàn)證數(shù) 據(jù)源的可用性,并從數(shù)據(jù)源中讀取屬性列和對應(yīng)數(shù)據(jù)類型的信息,將信息數(shù)據(jù)同步到數(shù)據(jù) 源字典中。3.查詢分解優(yōu)化器查詢分解優(yōu)化器的作用是將查詢請求根據(jù)數(shù)據(jù)的映射關(guān)系分解為若干子查詢請 求和全局查詢元數(shù)據(jù),并對子查詢請求進(jìn)行優(yōu)化,生成子查詢計(jì)劃。查詢分解優(yōu)化器的工作 過程如下1)接收查詢請求,生成關(guān)系代數(shù)表達(dá)式樹。From子句中的表,作為關(guān)系代數(shù)表達(dá) 式樹的葉子結(jié)點(diǎn)。利用Where子句的連接條件對上述葉子結(jié)點(diǎn)進(jìn)行歸并,其中Where子句 中同一數(shù)據(jù)庫的表的連接條件優(yōu)先歸并,生成二叉樹森林,然后用不同數(shù)據(jù)庫表的連接條 件歸并上述的二叉樹森林,生成一棵二叉樹。當(dāng)連接條件不足生成一棵二叉樹時(shí),用笛卡爾積歸并剩余的二叉樹森林。投影、聚集和普通的選擇條件全部放置在樹根,等待優(yōu)化。2)按照選擇下推,投影下推,聚集下推的原則化簡關(guān)系代數(shù)表達(dá)式樹。3)生成查詢計(jì)劃和查詢元數(shù)據(jù)。經(jīng)過各種下推優(yōu)化之后,遍歷關(guān)系代數(shù)表達(dá)式樹 中的結(jié)點(diǎn),找到這種條件的結(jié)點(diǎn)以該結(jié)點(diǎn)為根結(jié)點(diǎn)的子樹中的關(guān)系代數(shù)只涉及同一數(shù)據(jù) 庫,而它的父結(jié)點(diǎn)不具備這種性質(zhì)。將以這些節(jié)點(diǎn)為根的子樹表達(dá)的關(guān)系代數(shù),轉(zhuǎn)換為SQL 查詢計(jì)劃。Where子句中,涉及多數(shù)據(jù)庫表連接的條件,會(huì)生成全局查詢元數(shù)據(jù)。4)將所得到的若干子查詢計(jì)劃,發(fā)送到數(shù)據(jù)提取器。5)將所得到的全局查詢元數(shù)據(jù),發(fā)送到結(jié)果整合器。6)將工作進(jìn)度,異?;蝈e(cuò)誤發(fā)送到集成任務(wù)管理器。4.數(shù)據(jù)提取器數(shù)據(jù)提取器的主要作用為接收子查詢計(jì)劃,并將它們分配到數(shù)據(jù)提取引擎,每個(gè) 數(shù)據(jù)提取引擎將執(zhí)行一個(gè)子查詢計(jì)劃,對底層數(shù)據(jù)源發(fā)布SQL查詢提取數(shù)據(jù),并將查詢結(jié) 果集轉(zhuǎn)換為中間結(jié)果XML數(shù)據(jù)。數(shù)據(jù)提取器實(shí)現(xiàn)過程如下1)確定中間結(jié)果XML數(shù)據(jù)表示形式,它有如下特點(diǎn)(1)表達(dá)出數(shù)據(jù)表結(jié)構(gòu)信息;(2)表達(dá)出表數(shù)據(jù)記錄信息;(3)表達(dá)出數(shù)據(jù)表的規(guī)模信息;(4)結(jié)構(gòu)清晰簡單,無二義性,冗余數(shù)據(jù)少,容易解析和生成??梢詫⒅虚g結(jié)果XML 數(shù)據(jù)定義成表結(jié)構(gòu)和表數(shù)據(jù)兩個(gè)XML文檔,XML表數(shù)據(jù)文檔的每一屬性列都唯一參照一個(gè) XML表結(jié)構(gòu)文檔。參閱圖8,圖中給出了一種實(shí)現(xiàn)方案表數(shù)據(jù)文檔記錄了該數(shù)據(jù)文檔的數(shù)據(jù)規(guī)模、 每條記錄的每一個(gè)屬性列的信息。其中每個(gè)屬性列信息包括參照的表結(jié)構(gòu)文檔名稱、列編 號和數(shù)據(jù)。表結(jié)構(gòu)文檔記錄了該表結(jié)構(gòu)文檔的名稱、數(shù)據(jù)源的信息、每個(gè)屬性列的編號、名 稱、數(shù)據(jù)類型和其映射成為的通用數(shù)據(jù)類型及其類型屬性。2)虛擬化文件存儲(chǔ),建立超大文件管理機(jī)制??梢灾貙慗ava語言的File類,使文 件類在邏輯上是一個(gè)文件,而物理上是一個(gè)文件組。文件組中的文件小于文件系統(tǒng)的上限 的大小,防止文件溢出。3)建立內(nèi)存緩沖機(jī)制,采用基于流的輸出方法生成XML文檔。4)構(gòu)建數(shù)據(jù)提取引擎,該引擎包含數(shù)據(jù)訪問的公共接口和數(shù)據(jù)的通用提取方法。5)實(shí)現(xiàn)數(shù)據(jù)提取流程(1)接收子查詢計(jì)劃。(2)與數(shù)據(jù)源管理器數(shù)據(jù)通信獲得子查詢的元信息。(3)建立JDBC連接,獲取子查詢的結(jié)果集,將結(jié)果集數(shù)據(jù)轉(zhuǎn)換為中間結(jié)果XML數(shù) 據(jù)。(4)將中間結(jié)果XML數(shù)據(jù)傳遞給結(jié)果整合器。5.結(jié)果整合器結(jié)果整合器接收中間結(jié)果XML數(shù)據(jù)和全局查詢元數(shù)據(jù),利用關(guān)系代數(shù)引擎,對中 間結(jié)果進(jìn)行整合,生成最終的全局查詢結(jié)果。結(jié)果整合器實(shí)現(xiàn)過程如下1)構(gòu)建排序引擎
輸入為一個(gè)XML表數(shù)據(jù)文檔,擬排序的XML表結(jié)構(gòu)和關(guān)鍵字屬性列的編號,屬性列 的通用數(shù)據(jù)類型,升降序參數(shù)。輸出為有序的中間結(jié)果XML數(shù)據(jù),實(shí)現(xiàn)過程如下(1)在內(nèi)存中建立數(shù)據(jù)記錄的數(shù)據(jù)結(jié)構(gòu)。(2)根據(jù)系統(tǒng)的配置,定義內(nèi)排序容納上限。(3)建立內(nèi)存緩沖機(jī)制,選用STAX工具解析XML文檔。采用基于流的輸出方法生 成XML文檔。(4)批量地讀入數(shù)據(jù),進(jìn)行歸并內(nèi)排序,輸出到外存文件。(5)做歸并外排序,得到排序結(jié)果。2)構(gòu)建自然連接引擎輸入為兩個(gè)XML表數(shù)據(jù)文檔,要做連接屬性列編號,已排序標(biāo)記。輸出為表連接后 的中間結(jié)果XML數(shù)據(jù)。實(shí)現(xiàn)過程如下(1)若XML表數(shù)據(jù)未按照連接屬性列排序,調(diào)用排序引擎在連接列上排序;(2)在內(nèi)存中建立數(shù)據(jù)記錄的數(shù)據(jù)結(jié)構(gòu);(3)用STAX按序解析兩個(gè)XML表數(shù)據(jù)文檔,遇到值相同的屬性列,就生成一條記 錄,用基于流的方法輸出。直到文檔解析完畢,得到連接結(jié)果。3)構(gòu)建笛卡爾積引擎輸入為做笛卡爾積的兩個(gè)XML表數(shù)據(jù)文檔。輸出為笛卡爾積運(yùn)算后的中間結(jié)果 XML數(shù)據(jù)。實(shí)現(xiàn)過程如下(1)在內(nèi)存中建立數(shù)據(jù)記錄的數(shù)據(jù)結(jié)構(gòu)。(2)用STAX解析其中一個(gè)XML表數(shù)據(jù)文檔,對于每一條記錄Ri,遍歷另一個(gè)XML 表數(shù)據(jù)文檔中的每一條記錄Rj,生成的新記錄(Ri,Rj),用基于流的方法輸出,直到文檔解 析完畢,得到連接結(jié)果。(3)表數(shù)據(jù)文檔解析完畢,得到笛卡爾積結(jié)果。4)構(gòu)建聚集引擎輸入為做聚集的表數(shù)據(jù)文檔,groupby子句,having子句。聚集操作類型和屬性 列。實(shí)現(xiàn)過程如下(1)在內(nèi)存中建立數(shù)據(jù)記錄的數(shù)據(jù)結(jié)構(gòu)。(2)根據(jù)系統(tǒng)配置,定義內(nèi)存容納記錄上限。(3)按照groupby子句中的屬性列調(diào)用排序引擎。(4)用STAX解析表數(shù)據(jù)文檔,按序掃描記錄。分組屬性列每遇到新值生成一個(gè)分 組,用having子句的條件做篩選。當(dāng)篩選后分組的記錄總數(shù)超過內(nèi)存容納記錄上限,分組 的全部記錄以流的方式輸出至外存,繼續(xù)處理下一條記錄,直至掃描結(jié)束。對組記錄進(jìn)行一 遍掃描,做聚集運(yùn)算,得到一條記錄,輸出結(jié)果。組記錄掃描完畢,得到聚集結(jié)果。5)實(shí)現(xiàn)數(shù)據(jù)整合流程(1)獲得查詢元數(shù)據(jù),調(diào)入至內(nèi)存的數(shù)據(jù)結(jié)構(gòu)中。(2)確定連接表的順序選擇策略,可利用啟發(fā)式規(guī)則每次選擇數(shù)據(jù)規(guī)模之和較 少的兩個(gè)表做表連接。(3)根據(jù)查詢結(jié)果的元數(shù)據(jù),確定要做的關(guān)系代數(shù)運(yùn)算,調(diào)用關(guān)系代數(shù)運(yùn)算引擎, 對中間結(jié)果進(jìn)行處理和整合。
(4)將工作進(jìn)度,異常或錯(cuò)誤發(fā)送到集成任務(wù)管理器。將整合數(shù)據(jù)結(jié)果傳遞給集成 任務(wù)管理器。6.結(jié)果持久器將整合后的結(jié)果數(shù)據(jù)導(dǎo)入到已有數(shù)據(jù)庫中。結(jié)果持久器的實(shí)現(xiàn)過程如下1)構(gòu)建數(shù)據(jù)轉(zhuǎn)換引擎。它遍歷查詢結(jié)果的每條記錄,根據(jù)查詢結(jié)果屬性列和導(dǎo)入 表屬性列之間的對應(yīng)關(guān)系,生成SQL插入語句腳本。2)數(shù)據(jù)導(dǎo)入引擎,該引擎包含數(shù)據(jù)導(dǎo)入的公共接口和通用方法。它讀取持久化信 息和數(shù)據(jù)源信息,建立JDBC連接,執(zhí)行SQL插入語句腳本,捕捉導(dǎo)入過程中的異常,插入異 常的數(shù)據(jù)嘗試插入到異常表中。3)實(shí)現(xiàn)數(shù)據(jù)持久化流程。獲取持久化參數(shù)和整合的結(jié)果數(shù)據(jù),調(diào)用數(shù)據(jù)轉(zhuǎn)換引擎 將結(jié)果數(shù)據(jù)轉(zhuǎn)換為SQL腳本,調(diào)用數(shù)據(jù)導(dǎo)入引擎,批量執(zhí)行腳本。將數(shù)據(jù)導(dǎo)入的狀態(tài)和異常 發(fā)送到集成任務(wù)管理器。
權(quán)利要求
1.一種基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法,其特征是包括如下步驟1)獲取數(shù)據(jù)集成需求和集成前期準(zhǔn)備;2)若集成應(yīng)用涉及了新數(shù)據(jù)庫產(chǎn)品,則執(zhí)行添加新支持的數(shù)據(jù)庫產(chǎn)品;3)在全局查詢請求配置界面的數(shù)據(jù)源的視區(qū)上,添加擬集成的數(shù)據(jù)源和擬導(dǎo)入數(shù)據(jù)的 目的數(shù)據(jù)源;4)在全局查詢請求配置界面上,錄入方案的信息,選擇查詢請求文檔的保存位置,生成 查詢請求配置文檔;5)在持久化參數(shù)設(shè)置界面上,錄入持久化參數(shù),選擇集成計(jì)劃文檔的保存路徑,生成集 成計(jì)劃文檔,若目的數(shù)據(jù)表不存在,在持久化參數(shù)設(shè)置界面上錄入新建表的信息,創(chuàng)建一個(gè) 新的數(shù)據(jù)表,然后再錄入持久化參數(shù);6)在執(zhí)行集成計(jì)劃界面上,選取一個(gè)集成計(jì)劃文檔,執(zhí)行該集成計(jì)劃,等待軟件系統(tǒng)處 理,執(zhí)行集成計(jì)劃界面上會(huì)顯示集成計(jì)劃執(zhí)行的狀態(tài)和異常情況,執(zhí)行完畢后,結(jié)果報(bào)告界 面會(huì)顯示集成結(jié)果數(shù)據(jù)統(tǒng)計(jì)報(bào)表,特殊處理異常表中的數(shù)據(jù),如此反復(fù)執(zhí)行第4)至6)步 驟,直到完成所有的集成任務(wù)。
2.按照權(quán)利要求1所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法,其特征在于, 所述的獲取數(shù)據(jù)集成需求和集成前期準(zhǔn)備的步驟如下1)獲取數(shù)據(jù)集成需求,確定集成的范圍,制定數(shù)據(jù)集成計(jì)劃,書寫需求規(guī)格;2)確定集成數(shù)據(jù)源所在的數(shù)據(jù)庫環(huán)境,獲取數(shù)據(jù)源的信息,包括數(shù)據(jù)庫的產(chǎn)品類型、 版本、數(shù)據(jù)庫名稱、數(shù)據(jù)庫IP地址、數(shù)據(jù)庫服務(wù)端口、及其具有通過JDBC操縱數(shù)據(jù)庫權(quán)限的 登陸用戶名和口令;3)確定集成涉及的數(shù)據(jù)表,獲取數(shù)據(jù)表信息,包括表模式,表名稱,字段列表和對應(yīng) 數(shù)據(jù)類型的列表;4)分析需求,將集成任務(wù)分解成若干相互獨(dú)立的子任務(wù),確定每個(gè)子任務(wù)的集成邏輯, 將集成邏輯形式化為查詢方案,查詢方案可以用結(jié)構(gòu)化查詢語言來表示,應(yīng)當(dāng)注意的是查 詢語句中的每一個(gè)表和屬性列都要有一個(gè)其所屬數(shù)據(jù)庫的標(biāo)識作為前綴;5)完成對集成目的數(shù)據(jù)庫的設(shè)計(jì);6)獲取結(jié)果持久化參數(shù)(1)目的數(shù)據(jù)源信息;(2)目的數(shù)據(jù)表信息;(3)查詢結(jié)果屬性和目的表屬性的映射關(guān)系;(4)指定一個(gè)數(shù)據(jù)導(dǎo)入異常表,記錄下該數(shù)據(jù)表的信息;7)對已獲得的各項(xiàng)參數(shù)進(jìn)行驗(yàn)證和確認(rèn),完成對已得到的查詢方案和目的數(shù)據(jù)庫設(shè)計(jì) 方案的評審和確認(rèn)。
3.按照權(quán)利要求1所述的基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法,其特征在于, 所述的若集成應(yīng)用涉及了新數(shù)據(jù)庫產(chǎn)品,則執(zhí)行添加新支持的數(shù)據(jù)庫產(chǎn)品的步驟如下1)獲取新增數(shù)據(jù)庫產(chǎn)品中包括數(shù)據(jù)類型的名稱和特性的所有數(shù)據(jù)類型的信息;2)根據(jù)數(shù)據(jù)類型的特性,指定其映射為一種通用數(shù)據(jù)類型;3)將獲取到的與通用數(shù)據(jù)類型映射信息和特性信息添加到數(shù)據(jù)類型字典中。
4.一種基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法的數(shù)據(jù)集成系統(tǒng),其特征在于包括一個(gè)收集用戶提交的全局查詢請求和持久化參數(shù),對全局查詢請求和持久化參數(shù)進(jìn)行 合法性檢查,分發(fā)集成任務(wù),監(jiān)控集成過程,報(bào)告集成結(jié)果的集成任務(wù)管理器;一個(gè)實(shí)現(xiàn)了數(shù)據(jù)源動(dòng)態(tài)管理,完成關(guān)系表的映射處理,為用戶提供數(shù)據(jù)源全局視圖的 數(shù)據(jù)源管理器;一個(gè)將查詢請求根據(jù)數(shù)據(jù)的映射關(guān)系分解為若干子查詢請求和全局查詢元數(shù)據(jù),并對 子查詢請求進(jìn)行優(yōu)化,生成子查詢計(jì)劃的查詢分解優(yōu)化器;一個(gè)將接收到的子查詢計(jì)劃分配給數(shù)據(jù)提取引擎,對底層數(shù)據(jù)源發(fā)布SQL查詢提取數(shù) 據(jù),并將查詢結(jié)果集轉(zhuǎn)換為中間結(jié)果XML數(shù)據(jù)的數(shù)據(jù)提取器;一個(gè)接收中間結(jié)果XML數(shù)據(jù)和全局查詢元數(shù)據(jù),利用關(guān)系代數(shù)引擎,對中間結(jié)果進(jìn)行 整合,生成最終的全局查詢結(jié)果的查詢結(jié)果整合器;一個(gè)將整合后的結(jié)果數(shù)據(jù)導(dǎo)入到已有數(shù)據(jù)庫中的結(jié)果持久器。
全文摘要
本發(fā)明公開了一種基于XML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成方法和系統(tǒng),旨在解決大量數(shù)據(jù)信息不能被高效地利用的問題。該方法包括如下步驟獲取數(shù)據(jù)集成需求和集成前期準(zhǔn)備;若集成應(yīng)用涉及了新數(shù)據(jù)庫產(chǎn)品,則執(zhí)行向系統(tǒng)中添加新支持的數(shù)據(jù)庫產(chǎn)品;添加與集成有關(guān)的數(shù)據(jù)源;生成查詢請求配置文檔;在系統(tǒng)的持久化參數(shù)設(shè)置界面上錄入持久化參數(shù);在系統(tǒng)的執(zhí)行集成計(jì)劃界面上,選取集成計(jì)劃文檔,執(zhí)行該集成計(jì)劃,等待軟件系統(tǒng)處理,如此反復(fù)執(zhí)行步驟4到步驟6,直到完成所有的集成任務(wù)?;赬ML的異構(gòu)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)集成系統(tǒng)是由集成任務(wù)管理器、數(shù)據(jù)源管理器、查詢分解優(yōu)化器、數(shù)據(jù)提取器、結(jié)果整合器和結(jié)果持久器所構(gòu)成的功能模塊構(gòu)架。
文檔編號G06F17/30GK102081661SQ20111002109
公開日2011年6月1日 申請日期2011年1月19日 優(yōu)先權(quán)日2011年1月19日
發(fā)明者叢學(xué)斌, 康輝, 張亞萍, 柴智, 梅芳, 馬慶利 申請人:吉林大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1