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