劉曉天 顧大明
摘要:在分布式數(shù)據(jù)庫(kù)系統(tǒng)中采用當(dāng)前比較流行的P2P(Peer-to-Peer)技術(shù)后,可以解決C/S模式中的瓶頸等問(wèn)題,提高數(shù)據(jù)庫(kù)中的各種資源利用率和查詢的效率。文中介紹了P2P技術(shù)、現(xiàn)有P2P系統(tǒng)的特點(diǎn)、數(shù)據(jù)庫(kù)中的信息查詢以及P2P技術(shù)在數(shù)據(jù)庫(kù)系統(tǒng)中的應(yīng)用等問(wèn)題。
關(guān)鍵詞:P2P分布式數(shù)據(jù)庫(kù)查詢
0引言
在當(dāng)今,分布式數(shù)據(jù)庫(kù)已廣泛應(yīng)用于各行各業(yè),如各大企業(yè),集團(tuán)。公司。銀行等。分布式數(shù)據(jù)庫(kù)系統(tǒng)就是把這些組織中的數(shù)據(jù)信息聯(lián)系在一起,提供橋梁的作用。下面主要介紹了分布式數(shù)據(jù)庫(kù)系統(tǒng)中如何使用P2P技術(shù)以及怎樣高效的實(shí)現(xiàn)數(shù)據(jù)的查詢。
1P2P技術(shù)
P2P是(Peer-to-Peer)縮寫(xiě),意為點(diǎn)對(duì)點(diǎn),對(duì)等網(wǎng)絡(luò)計(jì)算,或稱為對(duì)等聯(lián)網(wǎng)。簡(jiǎn)單說(shuō),P2P就是點(diǎn)對(duì)點(diǎn)通信??梢远x為網(wǎng)絡(luò)中的各計(jì)算機(jī)之間通過(guò)直接交換信息共享計(jì)算機(jī)資源和服務(wù),對(duì)等計(jì)算機(jī)兼有客戶機(jī)和服務(wù)器的功能。在這種網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的計(jì)算機(jī)地位相同,可直接互連實(shí)現(xiàn)各種資源的共享,不需要依賴集中式服務(wù)器支持。近來(lái)P2P技術(shù)正日益受到重視,在大型分布式數(shù)據(jù)庫(kù)中采用此技術(shù)比采用C/S技術(shù)具有很多的優(yōu)點(diǎn),如節(jié)省投資,更高的文件共享率等。
如今,對(duì)等網(wǎng)絡(luò)技術(shù)正逐漸成為計(jì)算機(jī)網(wǎng)絡(luò)的一個(gè)熱門。隨著互聯(lián)網(wǎng)的普及和寬帶技術(shù)的飛速發(fā)展,P2P技術(shù)在加強(qiáng)網(wǎng)絡(luò)上人們的交流、信息交換、分布計(jì)算等方面大有前途。網(wǎng)絡(luò)上現(xiàn)有的許多服務(wù)都采用了P2P的技術(shù),它越來(lái)越受到網(wǎng)絡(luò)用戶的關(guān)注和喜愛(ài)。比如即時(shí)通信系統(tǒng)ICQ、MSN以及國(guó)內(nèi)廣泛使用的QQ是最流行的P2P應(yīng)用。每年都有新的P2P軟件出現(xiàn),吸引網(wǎng)絡(luò)用戶的使用。在人們的使用中,其實(shí)最多的還是對(duì)數(shù)據(jù)信息的查詢,采用P2P技術(shù),是網(wǎng)絡(luò)的計(jì)算模式從集中式向分布式偏移,處理的數(shù)據(jù)從中央服務(wù)器轉(zhuǎn)向各個(gè)終端客戶機(jī)。即使某個(gè)或某些節(jié)點(diǎn)的數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題,也不會(huì)影響其它節(jié)點(diǎn)問(wèn)的通信。
2基于P2P技術(shù)的數(shù)據(jù)庫(kù)系統(tǒng)
最初的分布式數(shù)據(jù)庫(kù)管理都是基于客戶服務(wù)器架構(gòu)的,通過(guò)一個(gè)功能強(qiáng)大的服務(wù)器為組織內(nèi)成員提供協(xié)作。而現(xiàn)在的大型數(shù)據(jù)庫(kù)系統(tǒng)采用P2P技術(shù),讓人們通過(guò)互聯(lián)網(wǎng)直接交互,人們?cè)诰W(wǎng)絡(luò)上進(jìn)行信息的溝通更直接、更實(shí)時(shí)。網(wǎng)絡(luò)中如果各節(jié)點(diǎn)間的數(shù)據(jù)服務(wù)是對(duì)等的,就構(gòu)成了P2P數(shù)據(jù)系統(tǒng)。
傳統(tǒng)的C/S、B,s模式,采用的是一種集中的手段,所有數(shù)據(jù)資料都存放在大型服務(wù)器上,每臺(tái)客戶機(jī)都要被動(dòng)地從服務(wù)器上讀取信息,并且客戶機(jī)之間不具有直接交互能力。在這樣的集中式數(shù)據(jù)庫(kù)中,對(duì)服務(wù)器配置的要求很高;一旦服務(wù)器或者某個(gè)終端出現(xiàn)問(wèn)題,將有可能影響整個(gè)網(wǎng)絡(luò)的運(yùn)行。其實(shí),C/S模式下的數(shù)據(jù)查詢完全依賴于中心節(jié)點(diǎn)服務(wù)器,沒(méi)有服務(wù)器,網(wǎng)絡(luò)就沒(méi)有任何意義。而在對(duì)等網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)的地位都是相同的,具備客戶端和服務(wù)器雙重特性,可以同時(shí)作為服務(wù)使用者和服務(wù)提供者。這使人們?cè)贗ntemet上的共享行為被提到了一個(gè)更高的層次,使人們以更主動(dòng)深刻的方式參與到網(wǎng)絡(luò)中去,每個(gè)人都能為網(wǎng)絡(luò)的資源和功能擴(kuò)展做出自己的貢獻(xiàn)??傊琍2P的技術(shù)在數(shù)據(jù)傳輸與文件共享,分布式運(yùn)算等方面應(yīng)用很廣泛。
當(dāng)今企業(yè)。尤其是那些地理位置分散而管理又需集中的大集團(tuán),使用分布式數(shù)據(jù)庫(kù)系統(tǒng)符合它們的管理思想和經(jīng)營(yíng)方式。在這些全國(guó)或全球性的公司,數(shù)據(jù)通常就已經(jīng)是分布了。這種情況下,對(duì)于處理復(fù)雜大型的問(wèn)題可以分別由各終端的部門完成,最后再匯總。然而整個(gè)信息是分離的,需要解決信息的共享問(wèn)題。P2P技術(shù)的出現(xiàn)使企業(yè)中各部門信息的通信變得更容易了。
3數(shù)據(jù)庫(kù)中的查詢問(wèn)題
隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,對(duì)數(shù)據(jù)通信也提出了更高的要求。在人們使用網(wǎng)絡(luò)的過(guò)程中,應(yīng)用最多的其實(shí)就是信息查詢。歸根結(jié)底,就是對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢。數(shù)據(jù)庫(kù)中使用P2P技術(shù)可以使數(shù)據(jù)更有效地分布到網(wǎng)絡(luò)邊緣,提高資源利用率。由于傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)的資源利用率低,各節(jié)點(diǎn)是靜態(tài)定義的,它們的數(shù)據(jù)雖然可以共享,但沒(méi)有預(yù)先的規(guī)則,而且擴(kuò)展性、靈活性較差,這給查詢帶來(lái)了一定的困難。
在數(shù)據(jù)庫(kù)系統(tǒng)中引入P2P技術(shù)不需要功能強(qiáng)大的中心服務(wù)器的支持,而是對(duì)等點(diǎn)之間通過(guò)直接互連實(shí)現(xiàn)信息資源、處理器資源、存儲(chǔ)資源的全面共享。
P2P網(wǎng)絡(luò)結(jié)構(gòu)基本可分為純P2P系統(tǒng)、中心文件目錄,分布式文件系統(tǒng)、有中間服務(wù)器三種不同的結(jié)構(gòu)。P2P技術(shù)是一種基于網(wǎng)絡(luò)環(huán)境的技術(shù),所以針對(duì)這一特性,主要考慮以下幾個(gè)方面的問(wèn)題。首先,P2P應(yīng)用是對(duì)于互聯(lián)網(wǎng)上眾多計(jì)算機(jī)的,所以要考慮那些低端的不具備服務(wù)器那樣強(qiáng)的聯(lián)網(wǎng)能力的普通個(gè)人電腦。其次,在P2P技術(shù)中需要有關(guān)于數(shù)據(jù)描述和交換的協(xié)議。第三,構(gòu)造一個(gè)合適的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)能快速準(zhǔn)確地發(fā)現(xiàn)對(duì)等點(diǎn)。如何從網(wǎng)絡(luò)中的海量數(shù)據(jù)庫(kù)信息中快速地查找到需要的信息是一個(gè)看似簡(jiǎn)單其實(shí)很困難的事情。P2P網(wǎng)絡(luò)模式中節(jié)點(diǎn)之間的動(dòng)態(tài)對(duì)等關(guān)系是高效搜索信息的有力保證。它可以保證搜索的實(shí)時(shí)性,達(dá)到令人驚嘆的搜索深度。除了以上三點(diǎn),還有數(shù)據(jù)庫(kù)的管理機(jī)制、數(shù)據(jù)的安全等問(wèn)題。
不妨將整個(gè)的查詢過(guò)程簡(jiǎn)潔地用兩個(gè)步驟四個(gè)字來(lái)概括,即“搜索”,“定位”。搜索中盡量減少經(jīng)過(guò)的節(jié)點(diǎn)數(shù)可以提高速度;同時(shí)引導(dǎo)數(shù)據(jù)流向“有用的區(qū)域”。這里所說(shuō)的”有用”是相對(duì)的,不同的信息搜索“有用的區(qū)域”也不一樣。根據(jù)不同的情況,可不同程度的采用寬度優(yōu)先或深度優(yōu)先的策略。高效的搜索方法可以減少請(qǐng)求服務(wù)和信息處理的時(shí)間。查詢也有很多方式,最常見(jiàn)的是關(guān)鍵宇查詢。對(duì)普通的計(jì)算機(jī)用戶而言,上網(wǎng)的過(guò)程中經(jīng)常使用這個(gè)方法。合適的關(guān)鍵宇對(duì)查詢結(jié)果起到?jīng)Q定性的作用。其實(shí),合適的關(guān)鍵宇可以引導(dǎo)查詢走向“有用的區(qū)域”。對(duì)于專業(yè)的編程技術(shù)人員,在程序中對(duì)數(shù)據(jù)庫(kù)進(jìn)行信息查詢使用最多的就是查詢語(yǔ)言了,比如結(jié)構(gòu)化查詢語(yǔ)言SQL(Structured Query Language)。SQL是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。SQL同時(shí)也是數(shù)據(jù)庫(kù)腳本文件的擴(kuò)展名。由于它的嵌入性,在程序中使用的非常多。
4總結(jié)
把P2P技術(shù)引進(jìn)傳統(tǒng)的分布式系統(tǒng),很好地克服了傳統(tǒng)分布式系統(tǒng)的部分缺點(diǎn),在數(shù)據(jù)查詢中可以向相鄰節(jié)點(diǎn)發(fā)送查詢請(qǐng)求,減少中心節(jié)點(diǎn)開(kāi)銷,避免服務(wù)器帶來(lái)的瓶頸問(wèn)題,但也存在一些缺陷,如怎樣避免數(shù)據(jù)庫(kù)中大量數(shù)據(jù)的冗余,網(wǎng)絡(luò)出現(xiàn)問(wèn)題時(shí)的數(shù)據(jù)一致性等方面還有待進(jìn)一步的研究。