郟奎奎, 劉海濱
(中國航天系統(tǒng)科學(xué)與工程研究院,北京 100048)
隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展和廣泛應(yīng)用,政府和企業(yè)的信息化程度得到了大幅度的提高,數(shù)據(jù)的采集、存儲(chǔ)、處理和傳播的數(shù)量也與日俱增. 數(shù)據(jù)不斷累積,形成了海量數(shù)據(jù),如果能夠?qū)崿F(xiàn)這些數(shù)據(jù)的共享,將會(huì)使更多的人能更充分地使用已有的數(shù)據(jù)資源,減少重復(fù)的數(shù)據(jù)收集等勞動(dòng)和相應(yīng)的費(fèi)用. 然而,這些海量數(shù)據(jù)往往存儲(chǔ)在不同的平臺(tái)和系統(tǒng)中,數(shù)據(jù)具有異構(gòu)多源的特征,需要通過不同的方式進(jìn)行訪問,難以實(shí)現(xiàn)數(shù)據(jù)的共享,各個(gè)數(shù)據(jù)源也就變成了“信息孤島”. 因此,為實(shí)現(xiàn)不同數(shù)據(jù)源的互連互通和數(shù)據(jù)的共享,構(gòu)建多源異構(gòu)數(shù)據(jù)集成系統(tǒng)顯得尤為迫切.
在進(jìn)行多源異構(gòu)數(shù)據(jù)集成時(shí),有兩種集成框架[1],一種是通過建立數(shù)據(jù)倉庫進(jìn)行數(shù)據(jù)集成,一種是虛擬數(shù)據(jù)集成系統(tǒng). 數(shù)據(jù)倉庫的方法需要將各個(gè)數(shù)據(jù)源的數(shù)據(jù)抽取轉(zhuǎn)換裝載到一個(gè)集中的數(shù)據(jù)庫中,當(dāng)數(shù)據(jù)源有更新時(shí),數(shù)據(jù)倉庫不能夠及時(shí)隨著數(shù)據(jù)源的更新而更新,實(shí)時(shí)性較差,而且建立數(shù)據(jù)倉庫需要較大的經(jīng)費(fèi)成本. 虛擬數(shù)據(jù)集成系統(tǒng)[2]通過中介模式的方法,建立數(shù)據(jù)源模式與中介模式的映射關(guān)系,用戶能夠通過一張統(tǒng)一的視圖實(shí)現(xiàn)對(duì)數(shù)據(jù)源的實(shí)時(shí)訪問,無需再將各個(gè)數(shù)據(jù)源抽取轉(zhuǎn)換裝載到一個(gè)物理存儲(chǔ)空間中,用戶發(fā)起的查詢請(qǐng)求會(huì)通過中間模式與數(shù)據(jù)源模式的映射關(guān)系將查詢分解到各個(gè)數(shù)據(jù)源中,最后將各個(gè)數(shù)據(jù)源上的查詢結(jié)果匯總就得到了完整的查詢結(jié)果. 考慮到數(shù)據(jù)集成系統(tǒng)實(shí)時(shí)性和建設(shè)成本的要求,本文采用虛擬數(shù)據(jù)集成的框架.
數(shù)據(jù)集成系統(tǒng)中核心的問題就是如何建立數(shù)據(jù)源模式與中介模式的映射關(guān)系[2],只有解決了這個(gè)問題才能夠?qū)崿F(xiàn)多個(gè)數(shù)據(jù)源的數(shù)據(jù)集成. 由此學(xué)者提出了模式映射語言[3],以便于建立數(shù)據(jù)源模式與中介模式的映射關(guān)系. 主要有三類模式映射: 全局視圖GAV (Global-As-View)、局部視圖LAV(Local-As-View)和全局-局部視圖GLAV (Global-and-Local-As-View). Glenn I N在文獻(xiàn)[4]中提出了ISTAR數(shù)據(jù)融合框架,將情報(bào)、監(jiān)視、目標(biāo)捕獲和偵察數(shù)據(jù)融合到統(tǒng)一的數(shù)據(jù)庫中,該框架基于北約國家IEEE POSIX共同的數(shù)據(jù)規(guī)范,在數(shù)據(jù)的互操作基礎(chǔ)之上實(shí)現(xiàn)多源異構(gòu)信息的融合.Fonseca在文獻(xiàn)[5]中提出了利用本體進(jìn)行語義轉(zhuǎn)換,建立同一數(shù)據(jù)集內(nèi)概念的相互聯(lián)系及不同數(shù)據(jù)集語義間的對(duì)應(yīng)關(guān)系. 以上方法能夠解決多源異構(gòu)數(shù)據(jù)集成的問題,然而在實(shí)際操作中集成效率和查詢響應(yīng)時(shí)間存在不足,尤其是當(dāng)數(shù)據(jù)源的規(guī)模相差較大時(shí)就會(huì)出現(xiàn)效率低下的情況,即一系列需要集成的數(shù)據(jù)源中,有某個(gè)數(shù)據(jù)源包含信息量較大,并且與其他數(shù)據(jù)源有較強(qiáng)的關(guān)聯(lián)關(guān)系時(shí),例如寧東智慧環(huán)保項(xiàng)目中,需要實(shí)現(xiàn)環(huán)保類數(shù)據(jù)、企業(yè)投入產(chǎn)出類數(shù)據(jù)、氣象數(shù)據(jù)、遙感衛(wèi)星數(shù)據(jù)、地理信息系統(tǒng)數(shù)據(jù)的數(shù)據(jù)集成,且地理信息系統(tǒng)具有較大規(guī)模數(shù)據(jù)量,這種情況下進(jìn)行多源異構(gòu)數(shù)據(jù)集成的復(fù)雜度較高,傳統(tǒng)的數(shù)據(jù)集成方法會(huì)使映射關(guān)系非常復(fù)雜,由此本文提出了一種層次全局視圖HGAV (Hierarchical-Global-As-View)模式映射來提高數(shù)據(jù)集成效率和縮短數(shù)據(jù)集成系統(tǒng)的查詢響應(yīng)時(shí)間.
虛擬數(shù)據(jù)集成系統(tǒng)面向用戶查詢的是具有統(tǒng)一視圖的中介模式,數(shù)據(jù)源通過映射關(guān)系與中介模式建立對(duì)應(yīng)關(guān)系. 用戶在中介模式上的查詢會(huì)通過中介模式G與數(shù)據(jù)源模式S的映射關(guān)系M,將查詢分發(fā)到各個(gè)數(shù)據(jù)源上,最后再通過包裝器將各個(gè)數(shù)據(jù)源查詢得到的結(jié)果合并包裝返回給用戶. 邏輯結(jié)構(gòu)圖如圖1所示.通過系統(tǒng)集成,用戶構(gòu)建自己的查詢時(shí)不必知道數(shù)據(jù)在哪里,以及源數(shù)據(jù)是如何組織的. 數(shù)據(jù)源提供實(shí)際數(shù)據(jù)是需要集成的對(duì)象,它們獨(dú)立存在于不同主機(jī)節(jié)點(diǎn)上,它可以是各種類型的數(shù)據(jù)庫、數(shù)據(jù)文件等等. 包裝器位于整個(gè)系統(tǒng)的底層,駐留在數(shù)據(jù)源上. 與數(shù)據(jù)源直接打交道.不同類型數(shù)據(jù)源需要不同的適配器. 包裝器主要功能有: (1)請(qǐng)求數(shù)據(jù)源模式信息; (2)響應(yīng)數(shù)據(jù)中心的數(shù)據(jù)提取請(qǐng)求,并對(duì)結(jié)果進(jìn)行整理; (3)將結(jié)果整理成XML格式,發(fā)送給集成中心. 映射配置器建立全局模式與局部模式間的映射關(guān)系.
圖1 虛擬數(shù)據(jù)集成框架
在整個(gè)虛擬數(shù)據(jù)集成系統(tǒng)中的查詢包括查詢重寫、查詢優(yōu)化、查詢執(zhí)行等環(huán)節(jié). 一個(gè)中介模式上的查詢經(jīng)過查詢重寫模塊后,會(huì)生成一個(gè)基于數(shù)據(jù)源的邏輯查詢計(jì)劃,該邏輯計(jì)劃經(jīng)過查詢優(yōu)化器后生成基于數(shù)據(jù)源的物理查詢計(jì)劃. 該物理查詢計(jì)劃在執(zhí)行引擎里執(zhí)行生成各個(gè)數(shù)據(jù)源上的子查詢,并根據(jù)計(jì)劃的實(shí)施情況,將重優(yōu)化請(qǐng)求發(fā)送給查詢優(yōu)化器.
在全局視圖上的查詢是針對(duì)XML數(shù)據(jù)查詢的,因?yàn)楸疚乃⒌娜忠晥D是將局部數(shù)據(jù)源的模式轉(zhuǎn)化為XML Schema形式,然后再將各個(gè)局部數(shù)據(jù)源的模式合并形成一張總的基于XML Schema的全局視圖,所以全局視圖上的查詢就是將XML Schema作為元數(shù)據(jù),利用XQuery作為查詢語句在虛擬的集成數(shù)據(jù)庫上查詢.
中介模式中的術(shù)語組成了用戶的查詢語句. 系統(tǒng)首先應(yīng)把用戶的查詢語句重寫成數(shù)據(jù)源模式所對(duì)應(yīng)的查詢語句. 用戶在中介模式上的查詢被重寫為數(shù)據(jù)源上的查詢語句,各個(gè)數(shù)據(jù)源的查詢結(jié)果匯總起來就形成了用戶所期望的查詢結(jié)果. 這個(gè)重寫的結(jié)果就被稱為邏輯查詢計(jì)劃[6].
利用Datalog表達(dá)形式來表示查詢,其形式如下:
這里,q和是謂詞,q代表查詢結(jié)果,指向數(shù)據(jù)源中的關(guān)系.稱為查詢頭,其余部分稱為查詢體,稱為查詢體中的子查詢. 元組中僅包含變量或常量. 如果,即查詢體中所有的變量必須包含查詢頭中的所有變量,則認(rèn)為這樣的查詢結(jié)果是完備的. 帶有比較謂詞的子查詢也可以包含在查詢體中,前提條件是如果子目標(biāo)中含有比較謂詞,且x是比較中的一個(gè)變量,那么在普通子目標(biāo)中也必須包含它. 我們通常用表示在數(shù)據(jù)庫實(shí)例D上的查詢結(jié)果.
對(duì)于任意數(shù)據(jù)庫實(shí)例D,如果查詢Q1在此數(shù)據(jù)庫上計(jì)算的結(jié)果都包含于另一個(gè)查詢Q2的結(jié)果,則記為,即Q1包含于Q2,記作; 如果且,則稱Q1和Q2是等價(jià)的,記作.
在多源異構(gòu)數(shù)據(jù)集成系統(tǒng)中,最核心的就是對(duì)多個(gè)數(shù)據(jù)源進(jìn)行模式匹配和模式映射,只有建立一套完整的語義匹配和語義映射系統(tǒng),用戶才能通過一張統(tǒng)一的全局視圖訪問到底層的數(shù)據(jù)源數(shù)據(jù). 本文在現(xiàn)有的GAV模式映射的基礎(chǔ)上,提出了分層的HGAV模式映射方法,接下來將要介紹HGAV模式映射方法的定義,以及模式匹配和模式映射的方法.
在虛擬數(shù)據(jù)集成系統(tǒng)中,核心的部分就是建立局部數(shù)據(jù)源與全局視圖的映射關(guān)系,這個(gè)映射關(guān)系高效與否直接決定了整個(gè)數(shù)據(jù)集成系統(tǒng)的效率高低,因?yàn)橛脩翎槍?duì)中介模式提出的查詢可能涉及到多個(gè)數(shù)據(jù)源,每個(gè)數(shù)據(jù)源都有一個(gè)對(duì)應(yīng)的數(shù)據(jù)源描述,模式映射就是將各個(gè)數(shù)據(jù)源的模式映射到全局模式中,并且映射后的模式互補(bǔ),不發(fā)生查詢沖突. 常用的映射方法是GAV模式映射,然而GAV的映射方法面對(duì)信息量分布不均勻的多個(gè)數(shù)據(jù)源時(shí),查詢效率較低,因此本文提出了改進(jìn)方法,利用基于HGAV的模式映射方法優(yōu)化查詢,從而提高數(shù)據(jù)集成系統(tǒng)的查詢效率,縮短查詢的響應(yīng)時(shí)間.
1) 模式映射語言
模式映射是描述模式之間關(guān)系的表達(dá)式集合[7]. 這里的模式映射描述了中介模式和源模式之間的關(guān)系.當(dāng)一個(gè)查詢針對(duì)中介模式查詢時(shí),我們會(huì)使用這些映射把它重寫為對(duì)數(shù)據(jù)源的查詢. 重寫的結(jié)果是一個(gè)邏輯查詢計(jì)劃. 我們使用查詢表達(dá)式作為模式映射的主要表達(dá)方式,在描述中,用G表示中介模式,用表示源模式.
2) 模式映射語義
模式映射的語義是這樣指定的,通過定義中介模式的哪個(gè)實(shí)例與數(shù)據(jù)源的給定實(shí)例是一致的[8]. 具體來講,一個(gè)語義映射M定義了一個(gè)關(guān)系Mr:
已知GAV模式映射的定義為[9]: 假定G是一個(gè)中介模式是n個(gè)數(shù)據(jù)源模式. 一個(gè)全局視圖模式映射M是一個(gè)滿足或者的表達(dá)式集合,其中: (1)是中介模式G的一個(gè)關(guān)系,并且最多出現(xiàn)在M的一個(gè)表達(dá)式中; (2)是中關(guān)系上的一個(gè)查詢.是n個(gè)數(shù)據(jù)源模式,表示介于中介模式和數(shù)據(jù)源模式之間的中間數(shù)據(jù)源模式. 首先建立中間數(shù)據(jù)源到全局視圖的模式映射M1,
HGAV模式映射相較于GAV就是抽象出一層介于全局模式和數(shù)據(jù)源模式的中間數(shù)據(jù)源模式,中間數(shù)據(jù)和其他局部數(shù)據(jù)源一樣,也是數(shù)據(jù)庫實(shí)例,只不過它包含的數(shù)據(jù)庫信息較多,基于全局視圖的查詢大部分會(huì)發(fā)生在中間數(shù)據(jù)源上,除非有些數(shù)據(jù)必須要從其他局部數(shù)據(jù)源獲得,具體定義如下: 假定G是一個(gè)中介模式,
M1滿足或者,其中: (1)是G中的一個(gè)關(guān)系,并且最多出現(xiàn)在M1的一個(gè)表達(dá)式中; (2)是中關(guān)系上的一個(gè)查詢.
同時(shí)又要建立數(shù)據(jù)源到中間數(shù)據(jù)源的模式映射M2,M2滿足或者,其中: (1)是中間數(shù)據(jù)源中的一個(gè)關(guān)系,并且最多出現(xiàn)在M2的一個(gè)表達(dá)式中; (2)是中關(guān)系上的一個(gè)查詢.HGAV模式映射結(jié)構(gòu)圖如圖2所示.
圖2 HGAV模式映射結(jié)構(gòu)圖
中介模式作為全局視圖,在中介模式上的查詢通過映射M1與中間數(shù)據(jù)源模式Sm產(chǎn)生對(duì)應(yīng)關(guān)系,任意中間數(shù)據(jù)源模式Smi作為數(shù)據(jù)源S之上的“全局視圖”(這里的全局視圖也是局部的,它是底層數(shù)據(jù)源上的全局視圖). 通過映射M2與S產(chǎn)生對(duì)應(yīng)關(guān)系,這樣就將在中介模式上的查詢分層級(jí)地映射到中間數(shù)據(jù)源模式和數(shù)據(jù)源模式上. 這樣做有利于將包含信息量較大的數(shù)據(jù)源與一般數(shù)據(jù)源分離處理,簡(jiǎn)化映射算法,提高了數(shù)據(jù)集成的效率,縮短了查詢時(shí)間.
為了更形象地說明整個(gè)映射過程,這里用幾個(gè)數(shù)據(jù)表實(shí)例來說明,已知兩個(gè)學(xué)校SchoolA和SchoolB,它們都有圖書館圖書信息表、圖書借閱信息表、教師信息表和學(xué)生信息表,具體字段如下所示:
這里要做一個(gè)學(xué)校A和學(xué)校B圖書館的數(shù)據(jù)集成,兩個(gè)學(xué)校的學(xué)生和老師既可以到學(xué)校A的圖書館借書也可以到學(xué)校B的圖書館借書. 那么需要將學(xué)校A和B的圖書館數(shù)據(jù)庫、學(xué)生數(shù)據(jù)庫和教師數(shù)據(jù)庫中的數(shù)據(jù)集成,按照本文所提出的HGAV模式映射方法,由于圖書館數(shù)據(jù)庫包含的信息量比較大,所以將兩個(gè)學(xué)校的圖書館數(shù)據(jù)庫作為中間數(shù)據(jù)源,將學(xué)生和老師數(shù)據(jù)庫作為底層的局部數(shù)據(jù)源,分別映射到圖書館數(shù)據(jù)源模式中,最后再將兩個(gè)圖書館數(shù)據(jù)源模式合成,形成一張全局視圖,結(jié)果如下所示:
中間視圖
全局視圖表
以上闡述了HGAV模式映射的定義,以及利用實(shí)例說明了HGAV映射結(jié)果,接下來將詳細(xì)描述模式匹配和模式映射的過程.
為了創(chuàng)建數(shù)據(jù)源的描述信息,我們經(jīng)常首先創(chuàng)建模式匹配,然后從匹配得到映射[10]. 之所以首先創(chuàng)建匹配,是因?yàn)楸容^容易從設(shè)計(jì)者哪里得到匹配. 模式匹配的主要目的就是在給定的模式S和T之間產(chǎn)生一個(gè)匹配(即,對(duì)應(yīng))集合,通過計(jì)算數(shù)據(jù)字段之間的相似度來確定數(shù)據(jù)是否匹配,如,由于可用的線索和啟發(fā)式比較多,并且還需要對(duì)匹配的準(zhǔn)確度進(jìn)行最大化,所以需要構(gòu)架一個(gè)模式匹配系統(tǒng)架構(gòu),如圖3所示.
圖3 模式匹配系統(tǒng)模塊圖
1) 匹配器
匹配器的輸入是一對(duì)模式S和T[11]. 除此之外,匹配器還可以考慮任何其他可用的信息,如數(shù)據(jù)實(shí)例、文本描述等. 匹配器輸出一個(gè)相似度矩陣,該矩陣為S和T中的每一個(gè)元素對(duì)(s,t) 賦一個(gè)0-1之間的數(shù)值,用來預(yù)測(cè)s是否與t匹配. 在具體應(yīng)用中,使用多種匹配器相結(jié)合的方法來獲得相似度矩陣. 典型地,有名字匹配器和數(shù)據(jù)實(shí)例匹配器兩大類,其中名字匹配器的度量算法有編輯距離、Jaccard度量和Soundex度量算法,實(shí)現(xiàn)實(shí)例匹配器的方法有3種: 創(chuàng)建識(shí)別器方法、測(cè)量度量值的重疊度方法和構(gòu)建分類器的方法,常用的分類器有樸素貝葉斯、決策樹、規(guī)則學(xué)習(xí)和支持向量機(jī)等.
2) 組合器
不同的匹配器往往會(huì)計(jì)算出不同的相似度矩陣[12],這里就需要組合器將匹配器輸出的多個(gè)相似度矩陣合并成一個(gè). 簡(jiǎn)單的組合器可以取得分的均值、最小值或者最大值. 如果匹配系統(tǒng)采用k個(gè)匹配器來預(yù)測(cè)si和tj的相似度得分,那么均值組合器就可以采用如下的公式來計(jì)算兩個(gè)元素之間的相似度得分:
3) 匹配選擇器
匹配系統(tǒng)的最后一個(gè)模塊就是從組合器輸出的相似度矩陣中產(chǎn)生匹配[13]. 最簡(jiǎn)單的匹配策略是閾值法:相似度分?jǐn)?shù)大于給定閾值的所有模式的元素對(duì)都可以作為匹配返回.
在對(duì)信息較為密集的多個(gè)數(shù)據(jù)源進(jìn)行數(shù)據(jù)集成時(shí),利用閾值法能夠解決數(shù)據(jù)的模式匹配問題,因?yàn)槊嫦蛲粋€(gè)業(yè)務(wù)的系統(tǒng)中雖然存在多個(gè)數(shù)據(jù)源模式,但是大都遵循著固定的行業(yè)標(biāo)準(zhǔn),所以進(jìn)行模式匹配過程中,相同的數(shù)據(jù)具有較高的相似度,不同的數(shù)據(jù)具有較低的相似度,利用閾值法能比較快捷有效地篩選出相同的模式. 當(dāng)面對(duì)比較稀疏的數(shù)據(jù)模式,且業(yè)務(wù)領(lǐng)域跨度比較大時(shí),簡(jiǎn)單的閾值法有可能失效,需要采用更復(fù)雜的方法,如基于貝葉斯的選擇器、基于規(guī)則的選擇器等.
在把匹配轉(zhuǎn)義為映射的過程中,關(guān)鍵的挑戰(zhàn)是是匹配充實(shí)化、具體化[14],并把所有的匹配變成一個(gè)統(tǒng)一的整體在創(chuàng)建映射時(shí),需要通過連接和并操作對(duì)源和目標(biāo)中數(shù)據(jù)的表組織結(jié)構(gòu)進(jìn)行調(diào)整,使其一致[15]. 本節(jié)主要描述如何探尋可能的模式映射空間. 給定一個(gè)匹配集合,我們?cè)O(shè)計(jì)一個(gè)針對(duì)可能的映射的搜索算法,這些可能的映射時(shí)與給定匹配相一致. 我們根據(jù)一些常見的模式設(shè)計(jì)原理來定義合適的搜索空間.
在匹配集合已知的情況下,本文設(shè)計(jì)了一個(gè)模式映射算法來實(shí)現(xiàn)數(shù)據(jù)源模式到全局視圖模式的映射,算法的輸入是一個(gè)匹配集合,其中是源S的屬性集合,Bi是目標(biāo)G的一個(gè)屬性.
輸入: 中介模式G和數(shù)據(jù)源S模式之間的匹配,(當(dāng)包含的屬性個(gè)數(shù)大于1時(shí),形式為g(),其中g(shù)是對(duì)屬性進(jìn)行合并的函數(shù));: 與fi相關(guān)聯(lián)的過濾器集合.輸出: 查詢形式的映射.
{階段 1: 創(chuàng)建候選集合}
for對(duì)于任何一個(gè)do
if包含S中多個(gè)關(guān)系中的屬性then
if不存在連接路徑then
end if
end if
end for
{階段 3: }
Covers:={包含了M中的所有匹配fi,并且的任何子集都無
法包含所有的fi}
selectedCover:=c∈Covers,c是具有最少候選路徑的覆蓋
if Covers中有多個(gè)覆蓋then
利用啟發(fā)式3選擇一個(gè)覆蓋
end if
{階段 4:}
for對(duì)于selectedCover中的每一個(gè)覆蓋vdo
創(chuàng)建一個(gè)如下形式的查詢隊(duì)Qv:
SELECT vars FROMWHERE
其中,vars表示v中匹配涉及的屬性,是v的連接路徑中的各個(gè)關(guān)系,是V的連接路徑中的連接條件,是連接路徑中的過濾條件
end for
return查詢Q1UNION ALL… UNION ALL Qb
其中,Q1,…,Qb是前面創(chuàng)建的查詢.
啟發(fā)式1. 尋找連接路徑. 一個(gè)連接路徑可以是:
1) 外鍵之間的路徑;
2) 通過檢查以前S上的查詢而得到的路徑;
3) 通過挖掘S中可連接的列的數(shù)據(jù)而發(fā)現(xiàn)的路徑.
在V中,我們需要為尋找連接路徑的候選集合的
啟發(fā)式2. 選擇連接路徑. 優(yōu)先選擇外鍵之間的路徑. 如果存在多個(gè)這樣的路徑,那么選擇在匹配中某一個(gè)屬性上有過濾器的路徑(如果存在這樣的路徑) . 為了對(duì)路徑進(jìn)一步排序,選擇外連接和內(nèi)連接之間估計(jì)差別最小的連接路徑. 最后可以選擇擁有最少不確定元組的連接路徑.
啟發(fā)式3. 選擇覆蓋. 如果存在多個(gè)覆蓋,那么選擇候選集合數(shù)量最少的一個(gè),因?yàn)橐话闱闆r下我們認(rèn)為,越簡(jiǎn)單的映射越合適. 如果有多個(gè)覆蓋含有相同數(shù)目的候選集合,那么選擇包含較多MS屬性的覆蓋.
這樣就建立了中間數(shù)據(jù)源模式與局部數(shù)據(jù)源模式的映射關(guān)系,然后再對(duì)全局模式與中間數(shù)據(jù)源按照以上算法建立映射關(guān)系,如此就可以形成一個(gè)完整的HGAV模式映射系統(tǒng)了.
利用2.2節(jié)中的模式匹配方法實(shí)現(xiàn)不同數(shù)據(jù)源的語義匹配,建立匹配集合. 不同的匹配器往往會(huì)得到不同的匹配相似矩陣,需要根據(jù)字段所在的語義環(huán)境判斷所匹配的對(duì)象,圖4展示了模式匹配的對(duì)應(yīng)關(guān)系.
圖4 模式匹配對(duì)應(yīng)關(guān)系
圖4中實(shí)現(xiàn)了從關(guān)系數(shù)據(jù)庫模式到X M L Schema的轉(zhuǎn)換,按照字段的相似程度建立了匹配關(guān)系.利用模型轉(zhuǎn)換算法可以將所有的數(shù)據(jù)庫模式定義信息轉(zhuǎn)換為XML schema,然后按照HGAV模式映射方法,將底層的數(shù)據(jù)源模式映射到中間數(shù)據(jù)源模式,再將中間數(shù)據(jù)源模式映射到全局視圖模式中.
完成了數(shù)據(jù)的模式匹配之后,就可以利用2.3節(jié)中的映射方法建立數(shù)據(jù)源上的查詢了,根據(jù)其中的三個(gè)啟發(fā)式規(guī)則自動(dòng)地實(shí)現(xiàn)模式映射的建立,查詢所用到的元數(shù)據(jù)信息從全局XML schema獲得,通常采用XQuery語句進(jìn)行查詢,如:
如果所做的查詢涉及到多個(gè)數(shù)據(jù)庫,就需要進(jìn)行查詢的分解,將查詢分解成針對(duì)各個(gè)局部數(shù)據(jù)源的查詢,如果數(shù)據(jù)源時(shí)MySQL、Oracle等結(jié)構(gòu)化的數(shù)據(jù),還需要將XQuery查詢轉(zhuǎn)換為相應(yīng)的sql語句. 最后再局部數(shù)據(jù)源上的查詢結(jié)構(gòu)再通過wrapper包裝器,將查詢結(jié)果包裝成XML形式的數(shù)據(jù)文檔返回結(jié)果,最后將所有返回的XML文檔合并就形成了總的查詢結(jié)果了,整個(gè)數(shù)據(jù)集成系統(tǒng)模型如圖5所示.
圖5 寧東智慧環(huán)保數(shù)據(jù)集成系統(tǒng)模型圖
寧東智慧環(huán)保工程中包含很多類別的數(shù)據(jù),主要有環(huán)保類數(shù)據(jù)、企業(yè)投入產(chǎn)出數(shù)據(jù)、氣象數(shù)據(jù)、遙感衛(wèi)星數(shù)據(jù)以及GIS數(shù)據(jù). 這些數(shù)據(jù)分散在不同的應(yīng)用系統(tǒng)之內(nèi),數(shù)據(jù)結(jié)構(gòu)多樣,需要利用多源異構(gòu)數(shù)據(jù)的集成方法將各類數(shù)據(jù)進(jìn)行集成,以便于進(jìn)行查詢和數(shù)據(jù)挖掘. 本文采用基于HGAV模式映射的方法,通過建立中介模式在各類數(shù)據(jù)源上建立一張統(tǒng)一的視圖,用戶就可以通過這個(gè)統(tǒng)一的視圖進(jìn)行查詢. 整個(gè)寧東智慧環(huán)保工程多源異構(gòu)數(shù)據(jù)集成系統(tǒng)的體系架構(gòu)如圖6所示. 數(shù)據(jù)集成系統(tǒng)需要從各個(gè)數(shù)據(jù)庫的元數(shù)據(jù)中讀取數(shù)據(jù)的結(jié)構(gòu)、模型和映射關(guān)系,進(jìn)而按照本文所提出算法解析查詢,并將查詢分解成針對(duì)各個(gè)數(shù)據(jù)源的局部查詢,最后獲得各個(gè)局部查詢的匯總結(jié)果.
圖6 寧東智慧環(huán)保工程多源異構(gòu)數(shù)據(jù)集成系統(tǒng)體系架構(gòu)圖
在該虛擬集成系統(tǒng)中建立了兩個(gè)模式映射集合,包括中介模式與中間數(shù)據(jù)源模式之間的映射集合M1,以及中間數(shù)據(jù)源模式與底層數(shù)據(jù)源的映射集合M2. 在智慧環(huán)保的數(shù)據(jù)集成系統(tǒng)中,共有5個(gè)數(shù)據(jù)源,分別是環(huán)保數(shù)據(jù)庫、企業(yè)投入產(chǎn)出數(shù)據(jù)庫、氣象數(shù)據(jù)庫、遙感數(shù)據(jù)庫以及GIS數(shù)據(jù)庫. 在這5類數(shù)據(jù)庫中GIS數(shù)據(jù)庫包含的信息量最大,而且其他4個(gè)數(shù)據(jù)庫與GIS數(shù)據(jù)存在地理位置的關(guān)系,故把GIS數(shù)據(jù)源作為中間數(shù)據(jù)源,其他4個(gè)數(shù)據(jù)源作為底層的數(shù)據(jù)源. 在GIS數(shù)據(jù)源之上建立中介模式,是用戶查詢的接口.
為了驗(yàn)證本文所提出方法的正確性,設(shè)計(jì)了一個(gè)基于Java的Web應(yīng)用系統(tǒng),通過瀏覽器客戶端訪問數(shù)據(jù)集成系統(tǒng).
實(shí)驗(yàn)運(yùn)行環(huán)境: 硬件配置為Intel(R) Core(TM) i3 CPU M 350 @2.27 GHz; 4 GB RAM內(nèi)存; Windows 7(64位)旗艦版操作系統(tǒng); Apache-tomcat-8.0.15服務(wù)器環(huán)境. 軟件設(shè)計(jì)是在eclipse-4.4.1平臺(tái)下利用Java語言編寫完成的.
利用chrome瀏覽器作為Web客戶端,用賬戶user登錄系統(tǒng),可以看到寧東地區(qū)所有跟環(huán)保相關(guān)的數(shù)據(jù),包括污染源企業(yè),污染源行業(yè)分布、廢水在線監(jiān)測(cè)信息、廢氣在線監(jiān)測(cè)信息、空氣質(zhì)量、環(huán)境立體監(jiān)測(cè)信息等. 智慧環(huán)保的多源異構(gòu)數(shù)據(jù)融合系統(tǒng)效果圖如圖7所示. 通過利用所提出的多源異構(gòu)數(shù)據(jù)融合模型將來自各個(gè)信息系統(tǒng)的數(shù)據(jù)融合,形成了一個(gè)統(tǒng)一的視圖,用戶通過這個(gè)統(tǒng)一的視圖能夠很便捷地訪問到各類數(shù)據(jù).
將所有排放污染物的企業(yè)位置和所有空氣、水、固廢監(jiān)測(cè)站點(diǎn)與GIS相結(jié)合,可以通過一張圖清晰地看到所有企業(yè)的污染物排放量以及各個(gè)監(jiān)測(cè)站點(diǎn)測(cè)得的環(huán)境污染物含量,并能通過放置鼠標(biāo)到地圖上的任意一個(gè)點(diǎn)獲得實(shí)時(shí)的環(huán)境信息,效果如圖8所示,可以看到當(dāng)前PM2.5含量為23.765,PM10含量為73.047等信息. 圖中小圖標(biāo)表示該地點(diǎn)存在一個(gè)工廠,可以清晰地看到工廠的分布位置,同時(shí)在GIS圖下方還能觀察到當(dāng)前排污的企業(yè)有哪些. 右側(cè)是專家綜合研討區(qū),專家根據(jù)左側(cè)圖中的環(huán)境信息,對(duì)某個(gè)相關(guān)議題發(fā)起討論,并對(duì)討論結(jié)果進(jìn)行表決. 由此可見,多源異構(gòu)數(shù)據(jù)融合系統(tǒng)能夠?yàn)橛脩籼峁┛旖莸臄?shù)據(jù)訪問,而且能夠較為全面地看到各方面的數(shù)據(jù),可以決策人員提供全面的信息.
圖7 多源異構(gòu)環(huán)保數(shù)據(jù)融合結(jié)果圖
圖8 GIS平臺(tái)上的多源異構(gòu)數(shù)據(jù)融合結(jié)果展示圖
為了驗(yàn)證本文所提出算法的正確性和高效性,將其與常用的數(shù)據(jù)集成方法進(jìn)行性能上的對(duì)比. 典型地,這里與全局視圖GAV和局部視圖LAV模式映射方法進(jìn)行對(duì)比. 使用的數(shù)據(jù)來自本地3.1中的五類數(shù)據(jù),這五類數(shù)據(jù)分別存儲(chǔ)于MySQL、Oracle、Access、SQL Server和XML數(shù)據(jù)庫中,在同一個(gè)查詢條件下,分別記錄在不同的數(shù)據(jù)量情況下,這三種方法所整合的查詢結(jié)果的準(zhǔn)確率和計(jì)算時(shí)間,如表1所示.
從表中可以看出,三種算法的都有較高的準(zhǔn)確率,HGAV模式映射方法的準(zhǔn)確率略高一些. 隨著數(shù)據(jù)量的增大,三種方法所消耗的時(shí)間都在增加,GAV和LAV方法的時(shí)間消耗呈較快的增長趨勢(shì),而HGAV方法所消耗的時(shí)間平穩(wěn)增長. 由此可見,本文所提出的HGAV模式映射方法高效,且具有較高的準(zhǔn)確率.
表1 算法性能數(shù)據(jù)
本文構(gòu)建了面向?qū)帠|智慧環(huán)保的多源異構(gòu)數(shù)據(jù)集成系統(tǒng),通過前臺(tái)的數(shù)據(jù)請(qǐng)求,得到了經(jīng)過集成處理后的數(shù)據(jù)信息,驗(yàn)證了基于HGAV的模式映射算法的可行性. 為了驗(yàn)證該查詢方法結(jié)果的完備性,與傳統(tǒng)的GAV模式映射方法做了比較,發(fā)現(xiàn)查詢的結(jié)果相同,由此可見基于HGAV的模式映射能夠查詢到正確的結(jié)果. 最后通過將本文所提出的方法應(yīng)用實(shí)際工程項(xiàng)目中,通過程序運(yùn)行效果驗(yàn)證了本文所提出方法的可行性和實(shí)用性.
1Doan AH,Halevy A,Ives Z. Principles of Data Integration.Waltham,MA: Morgan Kaufmann,2012. 110-120.
2Lenzerini M. Data integration: A theoretical perspective.Proceedings of the Twenty-first ACM SIGMOD-SIGACTSIGART Symposium on Principles of Database Systems.Madison,WI,USA. 2002. 233-246.
3Abiteboul S,Duschka O. Complexity of answering queries using materialized views. Proceedings of the 17th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems. Seattle,WA,USA. 1998. 254-263.
4Glenn IN. Multi-source data fusion in NATO coalition operations (a Canadian Army perspective on ISTAR).Proceedings of the Conference Record of the Thirty-Third Asilomar Conference on Signals,Systems and Computers.Pacific Grove,CA,USA. 1999. 407-411.
5Fonseca FT,Egenhofer MJ,Agouris P,et al. Using ontologies for integrated geographic information systems.Transactions in GIS,2002,6(3): 231-257. [doi: 10.1111/1467-9671.00109]
6Ullman JD. Information integration using logical views.Theoretical Computer Science,2000,239(2): 189-210. [doi:10.1016/S0304-3975(99)00219-4]
7姚崇東. 基于XML的多源異構(gòu)數(shù)據(jù)集成的實(shí)現(xiàn)方法研究[碩士學(xué)位論文]. 哈爾濱: 哈爾濱工程大學(xué),2007.
8朱珊娜,李書琴,安福定. XML文檔到關(guān)系數(shù)據(jù)庫的轉(zhuǎn)換研究. 計(jì)算機(jī)工程與設(shè)計(jì),2008,29(21): 5507-5509,5571.
9張永新. 面向Web數(shù)據(jù)集成的數(shù)據(jù)融合問題研究[博士學(xué)位論文]. 濟(jì)南: 山東大學(xué),2012.
10許平格. 數(shù)據(jù)庫管理系統(tǒng)中查詢優(yōu)化的設(shè)計(jì)和實(shí)現(xiàn)[碩士學(xué)位論文]. 杭州: 浙江大學(xué),2005.
11鐘將,宋娟. 基于本體的異構(gòu)數(shù)據(jù)集成框架. 計(jì)算機(jī)工程,2011,37(14): 44-46. [doi: 10.3969/j.issn.1000-3428.2011.14.013]
12劉偉,孟小峰,孟衛(wèi)一. DeepWeb數(shù)據(jù)集成研究綜述. 計(jì)算機(jī)學(xué)報(bào),2007,30(9): 1475-1489.
13化柏林. 多源信息融合方法研究. 情報(bào)理論與實(shí)踐,2013,36(11): 16-19.
14王艷華. 基于中間件技術(shù)的分布式數(shù)據(jù)集成研究與實(shí)現(xiàn)[碩士學(xué)位論文]. 武漢: 武漢理工大學(xué),2006.
15Gao JJ,Xiao JQ. Research on heterogeneous data access and integration model based on OGSA-DAI. Proceedings of the 2013 5th International Conference on Computational and Information Sciences. Shiyang,China. 2013. 1690-1693.