陸海鋒
(肇慶學(xué)院信息中心,肇慶 526021)
XML是繼HTML之后的又一種Web標(biāo)記語言,它為用戶提供了靈活的標(biāo)記擴(kuò)展機(jī)制,使得不同內(nèi)容的資源能以式良好的自定義的標(biāo)記元素來表現(xiàn)。XML技術(shù)可以讓結(jié)構(gòu)化的信息以網(wǎng)頁的格式來顯示,通過因特網(wǎng)或者各個(gè)組織內(nèi)部的局域網(wǎng)來顯示。XML格式的文檔可以無障礙地在各個(gè)結(jié)構(gòu)格式各異的系統(tǒng)之間,以最簡捷的方式完成對(duì)數(shù)據(jù)的輸入和輸出。
XML已逐漸成為Web上數(shù)據(jù)表示和交換的標(biāo)準(zhǔn),但在大多數(shù)企業(yè)尤其是在地域上分散而管理上又相對(duì)集中的大企業(yè)中,每個(gè)部門都要維護(hù)與本部門有關(guān)的數(shù)據(jù),將數(shù)據(jù)存放在本部門建立的關(guān)系數(shù)據(jù)庫中,這樣企業(yè)的整個(gè)信息資產(chǎn)就被分裂成“信息孤島”。如何將這些信息有效地集成起來,組成一個(gè)分布式數(shù)據(jù)庫,并發(fā)布為符合用戶要求(DTD或XMLSchema)的XML文檔,是目前分布式數(shù)據(jù)庫技術(shù)發(fā)展中亟待解決的問題[1]。
XML,可延伸標(biāo)記語言,是萬聯(lián)網(wǎng)聯(lián)盟(W3C)于1998年制定的互聯(lián)網(wǎng)數(shù)據(jù)傳輸標(biāo)準(zhǔn)格式。XML標(biāo)記語言像HTML一樣,屬于標(biāo)記性語言,其設(shè)計(jì)的初衷是用于傳輸數(shù)據(jù),而非顯示數(shù)據(jù)。XML標(biāo)記語言具有的特性包括了:自描述、人機(jī)共讀性、可擴(kuò)展性、高靈活性、高度的平臺(tái)可適應(yīng)性,正因?yàn)檫@些特性,XML標(biāo)記語言已經(jīng)成為現(xiàn)今互聯(lián)網(wǎng)信息交換的標(biāo)準(zhǔn)格式,對(duì)于數(shù)據(jù)倉庫(DW)的未來意義非同一般。另外,由于XML的標(biāo)簽(Tag)不能預(yù)先設(shè)定,用戶需要根據(jù)實(shí)際需求來設(shè)定個(gè)性化的XML標(biāo)簽。
盡管現(xiàn)今在互聯(lián)網(wǎng)傳輸有用信息有不少的途徑,但XML標(biāo)記語言還是獲得越來越高的普及度以及關(guān)注,究其原因主要基于以下幾點(diǎn)[2]:
(1)語言表達(dá)能力:XML標(biāo)記語言,能夠保證直接而無任何信息遺漏的情況下,用統(tǒng)一的語法顯示關(guān)聯(lián)數(shù)據(jù)、報(bào)表格式,以及半結(jié)構(gòu)化文檔。
(2)自描述:XML標(biāo)記語言能把數(shù)據(jù)與元數(shù)據(jù)結(jié)合,這樣一來,異構(gòu)的甚至不規(guī)則的數(shù)據(jù),不需要依賴固定的行將被淘汰的架構(gòu)模式,也一樣可以被顯示并且被處理。
(3)XML標(biāo)記語言提供一種顯示數(shù)據(jù)的機(jī)制,就是以最簡單的文本流的形式,支持簡單的數(shù)據(jù)傳輸與檢索,支持在既有的網(wǎng)絡(luò)協(xié)議之下不同系統(tǒng)之間的數(shù)據(jù)互換。XML標(biāo)記語言支持半結(jié)構(gòu)化信息以基于網(wǎng)絡(luò)的格式存在,就這樣,它們可以顯示在互聯(lián)網(wǎng)以及組織機(jī)構(gòu)私有的內(nèi)部網(wǎng)。同時(shí),XML標(biāo)記語言使得組織機(jī)構(gòu)不同系統(tǒng)間更容易以最簡化的數(shù)據(jù)格式,完成數(shù)據(jù)的輸入輸出。
(4)XML標(biāo)記語言支持不同計(jì)算機(jī)之間的數(shù)據(jù)互換;
(5)XML標(biāo)記語言便于快捷檢索信息
鑒于XML標(biāo)記語言在定義數(shù)據(jù)結(jié)構(gòu)以及在不同系統(tǒng)間傳輸數(shù)據(jù)方面的突出能力,使得其在構(gòu)建數(shù)據(jù)倉庫(DW)方面的價(jià)值日益凸顯。
分布式存儲(chǔ)數(shù)據(jù)庫系統(tǒng),支持應(yīng)用程序訪問本地或遠(yuǎn)程數(shù)據(jù)庫的資源。在同構(gòu)分布式數(shù)據(jù)庫系統(tǒng)中,所有的數(shù)據(jù)庫的類型都保持一致性;而在異構(gòu)分布式數(shù)據(jù)庫系統(tǒng)中,至少有一個(gè)數(shù)據(jù)庫與其他數(shù)據(jù)庫的類型不一致。分布式數(shù)據(jù)庫應(yīng)用了用戶/服務(wù)器的架構(gòu)來處理每一條信息訪問請(qǐng)求。
(1)分布式存儲(chǔ)數(shù)據(jù)庫的特征
①實(shí)現(xiàn)了信息資源與網(wǎng)絡(luò)共享資源之間的邏輯關(guān)聯(lián);
②信息資源以數(shù)據(jù)碎片式存在;
③碎片式數(shù)據(jù)可被復(fù)制;
④碎片式的館藏信息資源被分配到各個(gè)網(wǎng)站;
⑤各網(wǎng)站連接成通信網(wǎng)絡(luò);
⑥各網(wǎng)站都處于分布式數(shù)據(jù)庫管理系統(tǒng)的控制之下;
⑦數(shù)據(jù)庫管理系統(tǒng)能夠自動(dòng)化管理并操控局部應(yīng)用程序;
⑧每個(gè)參與到數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫一般都至少擁有一個(gè)通用應(yīng)用程序。
(2)分布式存儲(chǔ)數(shù)據(jù)庫系統(tǒng)的優(yōu)勢(shì)
①根據(jù)網(wǎng)站的訪問需求量來分配數(shù)據(jù),網(wǎng)站的訪問需求量與所分配的數(shù)據(jù)成正比;
②數(shù)據(jù)訪問的速度更快;
③由于在該系統(tǒng)中的許多網(wǎng)站都分散了工作負(fù)載,因此處理數(shù)據(jù)訪問的速度也得到提升;
④能夠以最簡單便捷的方式生成新的網(wǎng)頁
⑤效率得到改善;
⑥降低了整個(gè)系統(tǒng)的運(yùn)作成本;
⑦改善了用戶的操作體驗(yàn);
⑧最大限度地降低了單段式故障的可能性;
⑨各個(gè)數(shù)據(jù)庫的運(yùn)作都是各自獨(dú)立的。
在本文中,筆者認(rèn)為數(shù)據(jù)庫,即便是分布式數(shù)據(jù)庫在本質(zhì)上都是同構(gòu)的。
所謂的同構(gòu)分布式數(shù)據(jù)庫系統(tǒng),是指駐留在一個(gè)或多個(gè)服務(wù)器上的,數(shù)量在兩個(gè)以上的數(shù)據(jù)庫,所形成的一個(gè)網(wǎng)絡(luò)。舉個(gè)例子,有來自廣州、佛山、肇慶三地的數(shù)據(jù)庫,由分布式系統(tǒng)進(jìn)行連接。只要運(yùn)行一個(gè)應(yīng)用程序,就能夠在一個(gè)分散的數(shù)據(jù)庫環(huán)境下,同時(shí)對(duì)多個(gè)數(shù)據(jù)庫里的數(shù)據(jù)進(jìn)行訪問或者修改。例如,來自“肇慶”本地?cái)?shù)據(jù)庫的客戶端提出單次數(shù)據(jù)查詢,可檢索到,來自遠(yuǎn)程“廣州”數(shù)據(jù)庫以及“佛山”數(shù)據(jù)庫里相互連接的數(shù)據(jù)列表里的數(shù)據(jù)。
原生XML數(shù)據(jù)庫,特指以高效的方式存儲(chǔ)XML文檔和數(shù)據(jù)的數(shù)據(jù)庫,該類數(shù)據(jù)庫與傳統(tǒng)的關(guān)聯(lián)數(shù)據(jù)庫一樣,都支持對(duì)數(shù)據(jù)的存儲(chǔ)、查詢、整合與索引等功能。而原生XML數(shù)據(jù)庫的存儲(chǔ)介質(zhì)并非表格,而是所謂的“表示層”。該“表示層”包含了大量的具有相互關(guān)聯(lián)性的XML文檔或數(shù)據(jù)。
Oracle的XML數(shù)據(jù)庫,其技術(shù)內(nèi)涵分為兩大部分,即內(nèi)置的XML存儲(chǔ)設(shè)置以及針對(duì)XML數(shù)據(jù)的檢索技術(shù)。該類數(shù)據(jù)庫同時(shí)具備了關(guān)系型數(shù)據(jù)庫技術(shù)以及XML技術(shù)的雙重優(yōu)勢(shì)。舉個(gè)例子,在關(guān)聯(lián)數(shù)據(jù)庫里處理XML數(shù)據(jù),往往不太可能,因?yàn)閄ML數(shù)據(jù)本質(zhì)上是具有層次性的,雖然Oracle數(shù)據(jù)庫是基于關(guān)聯(lián)模型而建立起來的,但是它能通過運(yùn)用特殊的SQL操作符,有效對(duì)層次性的XML數(shù)據(jù)進(jìn)行處理,從而讓用戶能夠從Oracle數(shù)據(jù)庫中輕松完成對(duì)XML數(shù)據(jù)的查詢及更新。Oracle的XML數(shù)據(jù)庫把XML文檔對(duì)象模型構(gòu)建成Oracle的內(nèi)核。因此,絕大部分對(duì)XML的操作都可以劃歸為常規(guī)的數(shù)據(jù)庫處理方式的范疇。
Oracle的XML數(shù)據(jù)庫具備將所有的結(jié)構(gòu)化和非結(jié)構(gòu)化的信息等同于關(guān)聯(lián)數(shù)據(jù)去處理的能力[3]。
最新版本的Oracle,具有將XML文檔直接存入數(shù)據(jù)庫的能力。它借助于相關(guān)數(shù)據(jù)庫技術(shù)的支持,實(shí)現(xiàn)了對(duì)XML文檔高效能地存儲(chǔ)及檢索,并通過應(yīng)用SQL與XML相互協(xié)調(diào)的數(shù)據(jù)模型,為原生XML數(shù)據(jù)提供支持。
Oracle使用了一種名為XML類型的專屬原生數(shù)據(jù)類型,對(duì)關(guān)聯(lián)表格的數(shù)據(jù)進(jìn)行存儲(chǔ)和管理。該數(shù)據(jù)類型脫離了XML語法分析器,直接在Oracle數(shù)據(jù)庫內(nèi)進(jìn)行檢索和存儲(chǔ)??梢哉f,XML數(shù)據(jù)類型已經(jīng)成為了Oracle數(shù)據(jù)庫常態(tài)化的數(shù)據(jù)類型。
XML數(shù)據(jù)庫包含以下特征[4]:
(1)支持萬維網(wǎng)絡(luò)聯(lián)盟(W 3C)以及XML模式數(shù)據(jù)模型;
(2)支持SQL語言對(duì)數(shù)據(jù)的存儲(chǔ)、查詢與更新,以及可以把SQL轉(zhuǎn)換成XML;
(3)可對(duì)SQL數(shù)據(jù)進(jìn)行XML操作;
(4)提供一種針對(duì)XML數(shù)據(jù)的存儲(chǔ)與管理框架,該框架與存儲(chǔ)介質(zhì)無關(guān),與內(nèi)容無關(guān),與編程語言無關(guān),開辟了查詢數(shù)據(jù)庫中XML內(nèi)容的新途徑。
(5)具有XML專屬的內(nèi)存管理以及優(yōu)化體制。
XML文檔是以XML類型的表格或者列的形式,存儲(chǔ)于數(shù)據(jù)庫中的,對(duì)于基于非XML模式的存儲(chǔ),XML數(shù)據(jù)類型還提供另一種存儲(chǔ)方式的選項(xiàng),即字符大對(duì)象(CLOB)的存儲(chǔ)。描述了以XML格式存儲(chǔ)的Ora?cleXML數(shù)據(jù)庫整體架構(gòu)。
最基本的基于表格生成的XML數(shù)據(jù),其最簡單的語法格式如下:
現(xiàn)舉一個(gè)圖書細(xì)節(jié)作為例子來考慮,圖書書本式目錄組成以圖書細(xì)節(jié)信息作為測(cè)度,而維度包括標(biāo)題、出版社、出版地、出版年份以及ISBN號(hào)。以下SQL表述生成某一維度——書本目錄的模型:
在生成XML文檔后,我們?cè)跀?shù)據(jù)庫可插入或選取相應(yīng)的屬性值,程序運(yùn)行實(shí)例如下:
以下是關(guān)于Oracle的XML數(shù)據(jù)庫所發(fā)揮的效能的列表[5]。
(1)它促進(jìn)海量的數(shù)據(jù)資源以XML的格式實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ);
(2)使得信息資源被檢索的速度,比較傳統(tǒng)的關(guān)系數(shù)據(jù)庫管理系統(tǒng),要快;
(3)允許常規(guī)的SQL語言查詢的方式訪問到相關(guān)的XML格式的數(shù)據(jù);
(4)我們可以使用Oracle的聯(lián)機(jī)事務(wù)處理系統(tǒng)(OLTP),數(shù)據(jù)倉庫;
(5)我們可以通過任一條Oracle的SQL查詢請(qǐng)求,生成一份XML文檔;
(6)我們可以輕易把XML格式數(shù)據(jù)轉(zhuǎn)化成HTML數(shù)據(jù)。
盡管XML應(yīng)用還有無限的發(fā)展前景,但目前影響還寥寥可數(shù)。目前還欠缺比較具體的XML項(xiàng)目。然而,XML擁有為書面文本文檔提供最簡潔的結(jié)構(gòu)的優(yōu)勢(shì),從某種意義上說,它完全可以取代HTML格式,用XML,用戶可以根據(jù)自己的使用習(xí)慣來定義專屬的網(wǎng)絡(luò)標(biāo)簽。
在當(dāng)今普遍盛行將海量信息數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫中。而這類數(shù)據(jù)庫換言之即為“數(shù)據(jù)倉庫”。數(shù)據(jù)倉庫,其實(shí)是將從多渠道搜集的信息,在統(tǒng)一的數(shù)據(jù)格式之下,存儲(chǔ)起來而形成的“知識(shí)庫”。從這一龐大的數(shù)據(jù)庫中,人們?cè)囂饺ラ_發(fā)出若干功能,例如,檢索功能、編目功能,基于思想內(nèi)容的索引功能等。而為了挖掘出有價(jià)值的信息,筆者認(rèn)為必須進(jìn)行數(shù)據(jù)挖掘。近幾年,數(shù)據(jù)挖掘技術(shù)無論在工業(yè)領(lǐng)域還是社會(huì)科學(xué)領(lǐng)域都得到廣泛的重視,究其原因是海量信息具有廣泛的適用性。如何將其從單純的數(shù)據(jù)轉(zhuǎn)化成有價(jià)值的信息或知識(shí),已經(jīng)成為全社會(huì)最迫切的需求了[6]。
通過數(shù)據(jù)挖掘工具可完成對(duì)數(shù)據(jù)的分析全過程,并且能發(fā)掘出有助于決策及科研需要的重要的數(shù)據(jù)模式。
本文通過提出基于XML的分布式存儲(chǔ)數(shù)據(jù)庫系統(tǒng),來一種思路,即可以從傳統(tǒng)的簡單的數(shù)據(jù)庫系統(tǒng)延伸到一個(gè)更廣闊的領(lǐng)域——數(shù)據(jù)倉庫。
事實(shí)上,XML格式有助于將結(jié)構(gòu)化以及非結(jié)構(gòu)化信息,以網(wǎng)頁的格式,通過因特網(wǎng)或組織內(nèi)部的局域網(wǎng)呈現(xiàn)給用戶。
XML技術(shù)近幾年以驚人的速度得到普及。XML技術(shù)針對(duì)基于網(wǎng)絡(luò)的應(yīng)用程序提供了若干便捷的功能。原生XML數(shù)據(jù)庫是根據(jù)XML數(shù)據(jù)庫的原始概念,由于若干因素的考量改進(jìn)而成的。將思路延展下去,可將各種數(shù)據(jù)挖掘技術(shù)運(yùn)用到某種數(shù)據(jù)倉庫模型中,從而輕松處理各項(xiàng)業(yè)務(wù)產(chǎn)生的海量信息。
在接下來的時(shí)間里,筆者計(jì)劃把該“基于XML的分布式存儲(chǔ)數(shù)據(jù)庫”的模型,進(jìn)行延展,應(yīng)用到處理非XML的數(shù)據(jù)中。
參考文獻(xiàn):
[1]趙朋飛.基于XML的分布式數(shù)據(jù)庫集成系統(tǒng)[J].計(jì)算機(jī)工程,2010(7):70-72.
[2]黃偉紅,張福炎.基于XML/RDF的MARC元數(shù)據(jù)描述技術(shù)[J].情報(bào)學(xué)報(bào),2000(4):326-332.
[3]王韋偉,孫慶鴻.基于XML的分布異構(gòu)數(shù)據(jù)集成平臺(tái)[J].東南大學(xué)學(xué)報(bào)(自然科學(xué)版),2006(05):715-719.
[4]陳鳳巖,唐振宇,步兆軍.基于Java和XML的異構(gòu)數(shù)據(jù)庫集成研究[J].情報(bào)雜志,2006(07):16-17+21.
[5]祁迪.分布式數(shù)據(jù)庫特點(diǎn)及其設(shè)計(jì)方法[J].山東工業(yè)技術(shù),2016(01):152-153.
[6]龐惠,翟正利.論分布式數(shù)據(jù)庫[J].電腦知識(shí)與技術(shù),2011(02):271-273.