国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

XML文檔與關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)轉(zhuǎn)換的研究

2014-04-29 00:44周衛(wèi)紅
電腦迷 2014年23期
關(guān)鍵詞:映射關(guān)系數(shù)據(jù)庫(kù)

周衛(wèi)紅

摘 要 針對(duì)目前異構(gòu)數(shù)據(jù)庫(kù)間數(shù)據(jù)訪問(wèn)的問(wèn)題,提出了種基于XML的數(shù)據(jù)交換技術(shù)。研究了XML模式與關(guān)系模式相互轉(zhuǎn)換的方法,討論了XML數(shù)據(jù)的關(guān)系存儲(chǔ)以及XML與關(guān)系數(shù)據(jù)庫(kù)的映射策略,分析了基于不同映射的數(shù)據(jù)轉(zhuǎn)換的可行性。

關(guān)鍵詞 XML 關(guān)系數(shù)據(jù)庫(kù) 映射

中圖分類(lèi)號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A

由于數(shù)據(jù)庫(kù)技術(shù)本身的發(fā)展和數(shù)據(jù)庫(kù)市場(chǎng)的變化,使得越來(lái)越多的應(yīng)用需要在異構(gòu)數(shù)據(jù)源之間進(jìn)行訪問(wèn),XML技術(shù)便應(yīng)運(yùn)而生。然而,目前大部分應(yīng)用的數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中,XML數(shù)據(jù)又以XML文檔形式存在,因此,研究XML文檔與關(guān)系數(shù)據(jù)庫(kù)的轉(zhuǎn)換對(duì)異構(gòu)數(shù)據(jù)源之間的數(shù)據(jù)集成非常重要。

1 XML與關(guān)系數(shù)據(jù)庫(kù)的比較

由于傳統(tǒng)的各數(shù)據(jù)庫(kù)管理系統(tǒng)之間的異構(gòu)性及其所依賴(lài)操作系統(tǒng)的異構(gòu)性,很難實(shí)現(xiàn)在異構(gòu)數(shù)據(jù)庫(kù)之間進(jìn)行通信,同時(shí)對(duì)關(guān)系數(shù)據(jù)庫(kù)的訪問(wèn)還依賴(lài)于系統(tǒng)對(duì)ODBC的支持程度,即便如此,很多防火墻不允許這種信息轉(zhuǎn)換,而且還容易被攻擊。XML具有無(wú)可比擬的優(yōu)勢(shì),一方面,利用XML文檔,開(kāi)發(fā)人員可以編碼任何關(guān)系數(shù)據(jù)庫(kù)中的面向記錄的數(shù)據(jù),并很好地保持這些數(shù)據(jù)的邏輯結(jié)構(gòu),甚至可以根據(jù)實(shí)際應(yīng)用的需要更改這些數(shù)據(jù)的邏輯結(jié)構(gòu)。另一方面,XML文檔具有透明性和平臺(tái)無(wú)關(guān)性,獨(dú)立于傳輸協(xié)議,可以使用FTP、HTTP、RPC 等多種方式傳輸,發(fā)送端和接受端無(wú)須關(guān)心數(shù)據(jù)是來(lái)自于什么平臺(tái)以及是如何產(chǎn)生的。

但是,XML作為一種形式語(yǔ)言,以文本的形式對(duì)數(shù)據(jù)進(jìn)行描述,存在管理和檢索上的困難,仍然無(wú)法完全取代數(shù)據(jù)庫(kù)。首先,數(shù)據(jù)庫(kù)具有靈活而高效率的數(shù)據(jù)操作手段,可以處理海量的數(shù)據(jù)信息。就XML文檔而言,目前主要通過(guò)XML解析器提供的API來(lái)實(shí)現(xiàn)對(duì)文檔數(shù)據(jù)的訪問(wèn),但隨著XML文檔的數(shù)據(jù)量增大,這種方法的效率明顯不如訪問(wèn)數(shù)據(jù)庫(kù)的效率高,而且XML文檔數(shù)據(jù)的維護(hù)也更加困難。其次,從并發(fā)性來(lái)說(shuō),關(guān)系數(shù)據(jù)庫(kù)本來(lái)就被設(shè)計(jì)為允許多個(gè)用戶(hù)同時(shí)處理信息,但目前對(duì)XML文檔的訪問(wèn)不具備并發(fā)性。最后,從安全性來(lái)說(shuō),數(shù)據(jù)庫(kù)擁有一個(gè)很好的安全控制體系,允許用戶(hù)對(duì)數(shù)據(jù)進(jìn)行不同級(jí)別的處理,而這也是XML文檔所不具備的。

2 XML數(shù)據(jù)的關(guān)系存儲(chǔ)

XML數(shù)據(jù)源有XML純文本文檔、關(guān)系型數(shù)據(jù)庫(kù)以及其他應(yīng)用數(shù)據(jù)幾類(lèi)。由于XML數(shù)據(jù)源的不同,關(guān)于XML存儲(chǔ)的研究目前大致分為四個(gè)方向:利用文件系統(tǒng)存儲(chǔ)XML數(shù)據(jù)的研究;利用面向?qū)ο髷?shù)據(jù)庫(kù)存儲(chǔ)XML數(shù)據(jù)的研究;用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)XML 數(shù)據(jù)的研究;專(zhuān)門(mén)設(shè)計(jì)的XML(NXD) 存儲(chǔ)策略。針對(duì)于XML具體應(yīng)用,在存儲(chǔ)XML文檔的數(shù)據(jù)庫(kù)技術(shù)上,形成了兩大陣營(yíng)。一種陣營(yíng)主張?jiān)谠械膫鹘y(tǒng)關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)上,通過(guò)擴(kuò)展XML支持模塊或中間件,來(lái)完成XML數(shù)據(jù)和數(shù)據(jù)庫(kù)之間的格式轉(zhuǎn)換和傳輸;另一種陣營(yíng)主張利用NXD技術(shù)來(lái)解決XML文檔的存儲(chǔ)管理。用關(guān)系數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)XML數(shù)據(jù),可以利用現(xiàn)有數(shù)據(jù)庫(kù)的存儲(chǔ)管理、并發(fā)控制、恢復(fù)、版本機(jī)制等技術(shù)有效地管理數(shù)據(jù),并使用SQL查詢(xún)作為數(shù)據(jù)存取的方法,所以用關(guān)系數(shù)據(jù)庫(kù)來(lái)保存和處理XML數(shù)據(jù)是很有效的方法。利用關(guān)系數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)XML數(shù)據(jù)的方法是XML半結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù)后存儲(chǔ)于二維表中,來(lái)實(shí)現(xiàn)對(duì)XML數(shù)據(jù)的存儲(chǔ)和管理。由于XML和關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)模式的互異性,不能簡(jiǎn)單地將XML文檔存儲(chǔ)于關(guān)系數(shù)據(jù)表中,為了實(shí)現(xiàn)在XML文件和數(shù)據(jù)庫(kù)之間交換數(shù)據(jù),必須提供一個(gè)XML映射層,將XML文檔模式(DTD、XML Schema)映射到關(guān)系數(shù)據(jù)庫(kù)模式。

3 XML與關(guān)系數(shù)據(jù)庫(kù)的映射方法

一個(gè)具體的XML模式到關(guān)系模式的數(shù)據(jù)轉(zhuǎn)換需要涉及較為復(fù)雜的XML格式分析處理及相應(yīng)的數(shù)據(jù)庫(kù)操作和有效性校驗(yàn)。兩者之間的映射為雙向映射,根據(jù)映射關(guān)系的建立方式不同,主要存在兩種方法:基于模板驅(qū)動(dòng)的映射和基于模型驅(qū)動(dòng)的映射。

(1)基于模板驅(qū)動(dòng)的映射

XML文檔包含簡(jiǎn)單元素和復(fù)雜元素兩類(lèi),簡(jiǎn)單元素包含的內(nèi)容是不具層次結(jié)構(gòu)的簡(jiǎn)單內(nèi)容,而復(fù)雜元素可包含屬性、子元素,還可以包含多個(gè)子元素,其中子元素還可以是復(fù)雜元素?;谀0弪?qū)動(dòng)的轉(zhuǎn)換方法是一種淺層映射,只能用于從其他類(lèi)型數(shù)據(jù)到XML文檔之間的數(shù)據(jù)傳遞,并不支持面向?qū)ο笾g或者關(guān)系與對(duì)象之間的信息交互,它無(wú)需提前定義好XML文檔和其他數(shù)據(jù)之間的映射,只需在XML文檔模板中嵌入一些SQL命令,這些命令在轉(zhuǎn)換時(shí)被系統(tǒng)識(shí)別和執(zhí)行,把執(zhí)行的結(jié)果替換到指令的位置,生成最終的XML文檔即可。

(2)基于模型驅(qū)動(dòng)的映射

基于模型驅(qū)動(dòng)的映射是一種深層映射,是模式和模式之間的映射。當(dāng)把數(shù)據(jù)從數(shù)據(jù)庫(kù)傳送到XML文檔或把數(shù)據(jù)從XML文檔傳送到數(shù)據(jù)庫(kù)時(shí),需要用一個(gè)具體的模型來(lái)實(shí)現(xiàn),而不是僅僅依賴(lài)內(nèi)嵌SQL命令,關(guān)系數(shù)據(jù)庫(kù)的理論依據(jù)是關(guān)系模型,而XML文檔依據(jù)的是XML Schema和DTD。基于模型驅(qū)動(dòng)實(shí)現(xiàn)數(shù)據(jù)在關(guān)系數(shù)據(jù)庫(kù)和XML文檔間的雙向傳輸關(guān)鍵是在關(guān)系模式和DTD或XML Schema之間建立雙向映射。具體的思路是把一個(gè)XML文檔表示為由數(shù)據(jù)對(duì)象構(gòu)成的樹(shù),每一個(gè)元素類(lèi)型和對(duì)象模式中的對(duì)象相對(duì)應(yīng),再通過(guò)傳統(tǒng)的關(guān)系—對(duì)象模型映射到關(guān)系模式中。在XML文檔中的數(shù)據(jù)有兩個(gè)公共的模型,即表模型和對(duì)象模型。表模型是基于表的映射,許多中間件包在轉(zhuǎn)換XML文檔成關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)所使用的模型,就是將XML文檔當(dāng)成一個(gè)單獨(dú)的表對(duì)象或一系列表對(duì)象。

猜你喜歡
映射關(guān)系數(shù)據(jù)庫(kù)
關(guān)系數(shù)據(jù)庫(kù)在高爐數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
RMI原則在代數(shù)學(xué)教學(xué)中的應(yīng)用
論美國(guó)動(dòng)畫(huà)電影題材變化及現(xiàn)實(shí)映射意義
試論泰國(guó)文化對(duì)外來(lái)廣告的映射
概念隱喻在構(gòu)建語(yǔ)篇連貫中的作用探析
基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵詞檢索
一種基于數(shù)據(jù)圖劃分的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵詞檢索方法