吳 鵬
(四川工程職業技術學院,德陽 618000)
對等計算對文件共享系統具有較大的貢獻。可是,用戶在這種文件共享系統中只得利用文件標示符做出查找,很多時候無法獲得期望的效果。因此,結構化數據這一概念就規劃至對等計算范疇里,P2P數據管理系統應運而生[1,2]。
在P2P數據管理系統中,有多個數據源,也就是說它是多數據的一個管理系統。但如若數據源不一致,就算面對真實世界中同一個實體,也會出現不一致的表述和描述形式。因此,語義異構的問題就隨之而來。
通常,信息集成領域傳統做法是采用中介系統——集中式的方式對語義異構問題進行闡述。采用物化的方式,把全部數據源集中至核心;把全局查詢查詢分析后向數據源發送;利用全局模式對所有的數據進行統一的管理。
P2P數據管理系統并沒有中心控制結點,它是通過動態廣域網進行處理的,不能形成全局、統一的視圖。如需在該系統中對語義異構問題進行處理,達到數據整合的目的,就應當在各個數據元之間構建語義映射。
通常語義映射是通過單一數據表當做運算單位。可是常常出現查詢一次就會牽涉數據庫里諸多數據表的情況,還出現了一種情況是必須同時得到全部需奧數據表,查詢指令才能進行的現象。執行多表查詢定位指令時,應把其余的多個數據庫中名字相重的表去除。所以,要執行多表定位,仍然具有諸多問題要處理。
基于上述情況,本文進行深入的探討,指出利用分層索引機制的方式來處理。另外,利用多節點集群P2P系統[3]以及通過舉例數據表的查詢算法[4],能夠在P2P數據管理系統里成功運行單表甚至是多表的范圍以及精確匹配的查詢工作。
另外,把數據表的查詢、數據庫的定位以及元組的發現分開運行,獨立實現。本課題對數據表的查詢以及數據庫定位問題進行探討。
本文通過研究,就P2P數據管理系統的特性進行多節點幾圈P2P系統的設計。在該體系里,多節點相互匯聚,成為集群。圖1表明了集群是當做一個整體,進行hordc53環的形成過程。

圖1 多節點集群P2P系統
顯然,每個集群內,擁有諸多節點。它們能夠按照需求,構筑成為許多小的子系統。假若有個集群里的節點數量偏少,就將其兩兩結合組成網絡。假若有個集群里節點數量偏多,而要進行數據共享,就將運用隨意P2P算法構筑P2P子網絡。
通常,多節點的集群P2P網絡體系在構成時,能夠把一樣的數據位于集群里增添一些備份,以期提升數據的下載速度以及增加安全性。此外,能夠把和語義有關的數據向相同的集群進行分配,進而使得語義聚集能夠運行。
因此,本文下述討論與研究,均為基于多節點的集群P2P網絡開展的。
在P2P數據管理體系里,將有多個節點擁有數據庫共享的功能。將一個數據庫內的多節點緩存,構筑集群,如此就可以在查詢功能執行時,若尋到其中一個節點,對于找尋另外的節點就比較便捷了,即查詢算法的簡化。而對于在一個數據庫里含有多個數據表進行緩存,而關于集群子網絡中進行緩存的分布方法,緩存子網能夠利用所有一個結構化P2P算法進行運行。而運行集群子網采用Chord協議的方式,描繪成如圖2所示。

圖2 緩存數據源節點子網
通常P2P數據管理體系里含有多組數據源,而數據源存在一定的差異,其對于現實中相同的實物,仍然具有不一樣的表述與描述,因此,語義異構這一問題的產生也是因上述差異而導致的。
要處理語義異構的問題,需在各個數據源節點,就要在共享的數據表屬性以及表名中隊一些列關鍵字進行定義,以此當做語義映射的媒介。而關鍵字一樣的異構數據源[5],其間將構建自動的映射關系。上述相同的關鍵字,即當做數據共享的外模式。經外模式的合理運用,先前產生的數據就成為了名稱相似的多組數據。而外模式在節點內并沒有徹底的物化成視圖,它僅僅構筑了內、外雙模式,即數據表中真實的一種模式間互相對應的一種關系。系統執行查詢過程中,運用下文闡述的算法,把通過外模式運行的查詢程序向通過內模式運行的查詢程序進行替換,再運行程序。
通常外模式表述的文件生產以及維護,通過數據源節點管理員,使用半自動的運行模式得以實現,其通過描述文件的方式在節點里存儲。假若數據表的緩存通過所節點得以儲存,詳見圖2表明的T2參數,則外模式描述文件通過儲存表的歸類方式的節點得以儲存以及輸送。假若數據表的緩存通過其中一個節點得以儲存,詳見圖2表明的T1參數,則外模式描述文件通過此節點進行儲存以及輸送。
此外,除了錄入表和屬性的名稱,外模式還錄入數據表屬于的集群標識符,以及輸送描述文件節點的IP地址。圖3舉例說明外模式描述文件:

圖3 外模式描述文件示例
而外模式描述文件生成以后,應把其輸送至整套P2P網絡體系里。因外模式描述文件保存的節點都根據數據表的全部名稱,通過哈希運算[6]得到,例如圖3所表明的外模式描述文件,根據表“同學信息表”或者“學生信息表”,其文件標識符就是通過哈希運算取得。再把外模式描述文件向對應的后記集群進行傳遞。
后繼集群接收該文件以后,把它保存至集群里的節點,以便查詢過程可以使用。
通常會有名字一樣的數據表存在于各個數據庫中,而外模式描述文件,按照數據表名稱,運用哈希運算獲取文件標識符同時向P2P網絡進行傳送。所以上述名字相同卻來自于各個數據庫的表,其外模式文件將向一個集群匯聚。
指的是通過外模式描述文件當做前提而執行的。按照查詢所牽涉的數據表數目,能夠劃成單表以及多表查詢。
通常外模式描述文件按數據表名稱當做關鍵字,運用哈希運算向P2P網絡進行分布。假若數據表處于外模式文件里存在K個名稱,應把外模式描述文件根據各個名稱當做關鍵字執行哈希運算,再向網絡進行分布,備份數量為K。
所有數據表在外模式描述文件中都有幾個別名,而屬性在數據表里也都有幾個別名。假若各個表名—屬性名均有完整的一份數據備份對應。則會有大量的冗余數據生成,進而使得系統開發以及儲存成本提升。
為提升查詢效率,減弱復雜程度,將按照外模式描述文件修改查詢條件,進而做到提升數據資源的使用效率,降低備份數目的目標。
圖3所示為外模式描述文件。有關真實數據模式有:學號、姓名、年齡、身高,即學生信息表的相關內容按上文闡述,學生信息表有其他的別人,而里面的4個屬性都有另外的別名。假若5個參數組合都有一個備份,則共有2×3×3×3×2=108個數據備份。這是不合理的。所以,外模式描述文件尋獲后,將會查詢條件作出替換,把全部別名轉換成數據表里學生真實姓名,之后的查詢均采取轉換后查詢條件。
按數據表執行查詢應對相關因素進行充分的考慮。按上述提及的查詢舉例,具體闡述查詢的整個運行流程:
2)如后繼集群里并未產生對應的外模式描述文件,那么顯示查詢失敗。否則,進行后續工作。
3)開啟獲得的外模式描述文件,執行有沒有叫“學生信息表”的表名,同時要包含“學生序號,姓名,學生身高,Age”這些屬性內容,若無,查詢失敗。否則,進行后續工作。
4)替換查詢條件。把查詢條件里的名稱轉變成<TableInofrmation>下第一個表名。把全部屬性名稱轉變成< Shuxing>下第一個屬性名。
5)傳送外模式描述文件的IP地址以及節點,也是在共享這個數據表的集群里。和節點構建連結,假若連結成功,將執行元組查詢。否則,進入下個步驟。
6)假若連結失敗,原因或許是節點失效,但此時共享數據表集群或許還是有效的。按照已獲得的外模式描述文件里的Cluster ID,即集群標識符,進行數據表集群的查詢。假若找到,即執行與阿奴查詢。否則,退出運行程序。
所謂多表查詢,指的是不止一個數據表,經一個及一個以上屬性的連結而執行的查詢。其中最為簡潔的即2個數據表,經單個數據連結而做出的查詢。舉例:數據表M、N,經M,x和N,y屬性執行查詢,則為Select * Fromm,N Where M.x = N.y。
多表查詢,顧名思義將牽涉多個數據表。所以應保證其中的數據表以及其數據均所屬于同一數據庫,才可以執行下一步的查詢工作。需要注意的是,外模式描述文件通過數據表當做單位,向網絡進行分布,而數據表所在集群即使確定,也不能保證多表查詢一定能夠順利準確的運行。
所以,應就查詢進行做出調整。運用上文闡述的方式核實第一個表屬于哪個數據庫。把查詢指令傳遞至數據庫所屬的集群。再判別查詢所涉的另外數據表有無在集群范圍內。也就是通過數據表的名稱為關鍵詞,進行集群子網范圍的查詢。假若存在相應元數據的外模式描述文件,且所需屬性均包含,就執行元組查詢。如若不然,顯示查詢失敗。
就數據表定位以及語義異構相關研究,不同的學者也有相應的一些解決意見。
PeerDB[7]項目運用關鍵字進行屬性名以及關系名標注的方式,體現異構數據源應語義映射。另外,就所有關鍵字均構建一定的物化視網。另外,PeerDB項目通過非結構化P2P網絡為前提,相同數據庫內的數據表,無法構成語義聚集。不能處理多表查詢。另外,所有關鍵字均構建一定的物化視圖,提升查詢效率。另外也增添數據冗余,使得系統靈活性減弱。
Hyperion[8]項目將復雜的映射表達式、ECA[9]以及映射表有關規則控制節點相互信息轉化進行定義,妥善處理了P2P范疇中有關的語義異構,上述任務應由專家在節點中在查詢發起前,以及增添網絡期間進行構建,所以系統運作成本頗高。
PIER[10]項目提出系統里的全部節點均適用于普用的標準全局模式,并未確定特定的算法進行節點間語義異構問題的處理。
由于其管理系統里的節點自治性問題使得數據模式出現了異構問題,P2P數據管理系統需要進行數據集合,給予用戶一個統一的查詢入口。
課題在所有數據源節點就共享的數據表的名稱以及屬性進行定義。而語義映射的媒介就是關鍵字。其中標的相同的關鍵字結合即構成共享數據的外模式。這種方式的處理將先前共享的數據,看起來就像是有著類似名字的數據。可是在節點內,斌給把外模式徹底物化成視圖。卻僅僅構建了內、外模式間互相對應的連結。
完成定義的關鍵字列表,執行外模式描述文件,向網絡進行分散,而外模式描述文件在生成時,就涵括了數據表以及屬性全部的別名,還把外模式描述文件根據數據表的別名向P2P網絡進行分布。而在進行查詢時,外模式描述文件尋求之后,即刻便把查詢請求里的全部別名向真實數據表以及屬性名進行轉化,因此,不但可以便捷的根據任何名字尋求所需數據表,還能夠降低數據備份數目,簡化算法,提升運行效率。
[1] 余敏, 李戰懷, 張龍波.P2P數據管理[J].軟件學報, 2006,17(8): 1717-1730.
[2] 余敏, 李戰懷, 張龍波.P2P數據管理研究趨勢[J].計算機應用研究, 2006, 23(8): 4-7.
[3] 姚佳麗, 張坤龍, 王珊.基于P2P的數據索引與查詢[J].計算機科學, 2005, 32(3): 69-72.
[4] Zhao Dan.Mylopoulos[J] An ECA Rule Rewriting Mechanism for Peer Data Management, 2006.
[5] 周婧, 王意潔, 李思昆.一種基于數據相關性的優化數據一致性維護方法[J].計算機學報, 2008, 315: 741-754.
[6] 凌波, 周水庚, 周傲英.P2P信息檢索系統的查詢結果排序與合并策略[J].計算機學報, 2007, 30(3): 405-414.
[7] Karger, Lehman Consistent hashing and random trees Distributed caching protocols for relieving hot spots on the World Wide Web 1997.
[8] Stoica t.Morris R Chord.A Scalable Peer-to-peer Lookup Protocol for Interne: Applications[J], 2003, (01).
[9] 蔣卓明, 周旭, 許榕生.基于ISP-Join的動態P2P流量優化模型[J].北京理工大學學報, 2010(1): 64-68.
[10] 湯天亮, 張曉龍, 陳珂, 等.一種高效的P2P環境中的窗口查詢算法[J].計算機研究與發展, 2009, z(2).