XML作為一種數(shù)據(jù)格式在上世紀(jì)90年代中期出現(xiàn),一開始其主要目的是應(yīng)用于系統(tǒng)間數(shù)據(jù)的交換。為便于數(shù)據(jù)交換,其設(shè)計(jì)包含了幾個(gè)主要的特點(diǎn),首先是采用自描述的標(biāo)簽式數(shù)據(jù)描述方式,數(shù)據(jù)本身描述自己的含義,從而使數(shù)據(jù)的可讀性大大提高,十分易于人或程序理解。

另外,XML采用層次型(樹型)的方式組織數(shù)據(jù),通過(guò)層次關(guān)系體現(xiàn)出數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系。層次模型能夠比較清晰地描述復(fù)雜對(duì)象,并易于擴(kuò)展。經(jīng)過(guò)近10年的發(fā)展,XML已經(jīng)成為數(shù)據(jù)交換的事實(shí)標(biāo)準(zhǔn),國(guó)際上形成了很多行業(yè)性的XML技術(shù)標(biāo)準(zhǔn),對(duì)信息技術(shù)產(chǎn)生很大的影響。

雖然XML設(shè)計(jì)之初主要應(yīng)用于數(shù)據(jù)交換,但這種新型的數(shù)據(jù)組織方式卻在應(yīng)對(duì)信息的復(fù)雜性、可理解性和靈活性的挑戰(zhàn)方面開啟了新的道路,迎合了技術(shù)發(fā)展的方向和潮流。同時(shí)XML也模糊了傳統(tǒng)上結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的嚴(yán)格分界線,對(duì)20余年來(lái)關(guān)系型數(shù)據(jù)庫(kù)理論基礎(chǔ)產(chǎn)生沖擊。人們反思數(shù)據(jù)究竟應(yīng)該是關(guān)系的還是層次化的,是單一的表格關(guān)系還是多樣化的對(duì)象?

與此同時(shí),在過(guò)去10余年中,另外一個(gè)重要的技術(shù)也對(duì)IT產(chǎn)生了重要的影響,這就是面向?qū)ο蟮募夹g(shù)。

面向?qū)ο蠹夹g(shù)鼓勵(lì)設(shè)計(jì)者使用對(duì)象(而不是表)來(lái)思考數(shù)據(jù),在面向?qū)ο蟮脑O(shè)計(jì)思想中,數(shù)據(jù)也是以對(duì)象的形式存在,層次結(jié)構(gòu)是對(duì)數(shù)據(jù)對(duì)象最直接、最自然的體現(xiàn)。

而關(guān)系型數(shù)據(jù)庫(kù)的理論與面向?qū)ο蟮乃枷氩⒉黄ヅ?,E-R模型中沒(méi)有對(duì)象的概念,在關(guān)系型數(shù)據(jù)庫(kù)中實(shí)現(xiàn)對(duì)象的嵌套、對(duì)象的多樣性很不直觀,需要很大的代價(jià)。在關(guān)系理論中,數(shù)據(jù)應(yīng)該被組織成規(guī)范的表–也就是數(shù)據(jù)應(yīng)該按唯一的方式組織,使得程序員能夠消除冗余,確保數(shù)據(jù)變化的一致性。這種設(shè)計(jì)技術(shù)的引入確保了關(guān)系表中的數(shù)據(jù)是一組獨(dú)立的、通過(guò)鍵來(lái)關(guān)聯(lián)數(shù)據(jù)。這種技術(shù)來(lái)自集合論的數(shù)學(xué)理論,但問(wèn)題是集合論不能表達(dá)數(shù)據(jù)之間所有的關(guān)系和結(jié)構(gòu)。

以規(guī)范的方式存儲(chǔ)數(shù)據(jù)常常要求程序員在存入數(shù)據(jù)庫(kù)之前分解對(duì)象,并且重新組織數(shù)據(jù)–就像在車庫(kù)中停車時(shí),你把它的門、椅子、輪子等等分別卸下來(lái)存放。這不僅消耗資源,而且沒(méi)有任何意義。

今天在應(yīng)用領(lǐng)域,軟件開發(fā)已經(jīng)廣泛采用了面向?qū)ο蟮脑O(shè)計(jì)思想和技術(shù)。而面向?qū)ο蟮臄?shù)據(jù)庫(kù)技術(shù)卻遲遲未被市場(chǎng)接受。對(duì)象數(shù)據(jù)庫(kù)出現(xiàn)時(shí),關(guān)系型數(shù)據(jù)庫(kù)供應(yīng)商已經(jīng)積聚了巨大的動(dòng)力,并占領(lǐng)了大量市場(chǎng)份額。在標(biāo)準(zhǔn)的SQL接口下,訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)的面向?qū)ο蟪绦蚝苋菀讓?。相反,多?shù)早期的對(duì)象數(shù)據(jù)完全不提供SQL接口,不適合任何查詢應(yīng)用程序。

XML技術(shù)的出現(xiàn),以及相關(guān)國(guó)際標(biāo)準(zhǔn)的制定(如Xquery, SQL/XML)為數(shù)據(jù)庫(kù)引入面向?qū)ο蟮募夹g(shù)提供了新的動(dòng)力?,F(xiàn)實(shí)外部世界的技術(shù)挑戰(zhàn),XML、面向?qū)ο蠹夹g(shù)與標(biāo)準(zhǔn)的成熟為新一代數(shù)據(jù)庫(kù)的創(chuàng)新提供了條件。那么未來(lái)會(huì)是怎樣呢?迎接新的技術(shù)變革我們準(zhǔn)備好了嗎?
 
融合之道:混合數(shù)據(jù)庫(kù)與PureXML

今天,關(guān)系數(shù)據(jù)庫(kù)推動(dòng)各種規(guī)模的公司發(fā)展業(yè)務(wù)。盡管這些數(shù)據(jù)庫(kù)是受歡迎而且重要的,但從長(zhǎng)遠(yuǎn)來(lái)看,它們根本無(wú)法與用 XML 表示的半結(jié)構(gòu)化(和分層)內(nèi)容相比。我們無(wú)法忽略過(guò)去20年來(lái)業(yè)界在關(guān)系型數(shù)據(jù)庫(kù)上的巨大投入(企業(yè)在關(guān)系數(shù)據(jù)和關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng) (RDBMS) 方面的投資高達(dá)萬(wàn)億美元)。

因此,簡(jiǎn)單地將 RDBMS 替換成純 XML 存儲(chǔ)的做法并不可取,但我們更無(wú)法回避新技術(shù)的潮流和巨大價(jià)值。世界既可以是關(guān)系的,也可以是層次的,兩種技術(shù)各自有其優(yōu)勢(shì)和局限性,因而容納關(guān)系型和層次型兩類模型的混合數(shù)據(jù)庫(kù)就成為數(shù)據(jù)庫(kù)發(fā)展的必然選擇。

IBM 的新一代數(shù)據(jù)庫(kù) DB2 9中第一次實(shí)現(xiàn)了關(guān)系型引擎與層次型引擎的結(jié)合,實(shí)現(xiàn)了混合數(shù)據(jù)庫(kù)。IBM將此技術(shù)稱為pureXML技術(shù)。
關(guān)系型數(shù)據(jù)庫(kù)很早就已經(jīng)開始考慮對(duì)XML的支持,但傳統(tǒng)的技術(shù)一般還是基于關(guān)系型數(shù)據(jù)庫(kù)的基本框架,用表之間的關(guān)系去模擬XML的層次結(jié)構(gòu).僅僅是對(duì)關(guān)系型數(shù)據(jù)的一些功能性增強(qiáng),而非真正去適應(yīng)XML所代表的層次型結(jié)構(gòu)和面向?qū)ο蟮臄?shù)據(jù)處理方法,因而難以發(fā)揮XML的靈活性、擴(kuò)展性等方面的優(yōu)勢(shì),大大限制了XML技術(shù)在數(shù)據(jù)庫(kù)的應(yīng)用.

關(guān)系數(shù)據(jù)庫(kù)中的第一代 XML 支持是切分(或分解)文檔以適應(yīng)關(guān)系表格,或?qū)⑽臋n原封不動(dòng)地存儲(chǔ)為字符或二進(jìn)制大對(duì)象(CLOB 或 BLOB)。這兩個(gè)方法中的任一種,都嘗試將 XML 模型強(qiáng)制轉(zhuǎn)換成關(guān)系模型。以大對(duì)象保存XML數(shù)據(jù)的方式,使得數(shù)據(jù)庫(kù)無(wú)法理解XML中的信息內(nèi)容,每次對(duì)XML中任何信息的訪問(wèn)都必須將整個(gè)文檔取出,然后再分解獲得相應(yīng)的信息內(nèi)容,效率和靈活性都存在極大的限制. 

如果采用將XML文檔中的數(shù)據(jù)項(xiàng)都拆分到很多個(gè)對(duì)應(yīng)的關(guān)系型表中的方式,首先失去了XML靈活性的優(yōu)勢(shì)。由于XML的數(shù)據(jù)項(xiàng)與關(guān)系型表中字段的對(duì)應(yīng)是固定的,所以XML的擴(kuò)展和變化必然要求數(shù)據(jù)庫(kù)中對(duì)應(yīng)表的結(jié)構(gòu)改變;另外數(shù)據(jù)對(duì)象拆分后,已經(jīng)不再有物理上對(duì)象的概念,同樣在功能和性能上都有很大的局限性。
 
與過(guò)去關(guān)系型數(shù)據(jù)庫(kù)的XML增強(qiáng)功能不同,pureXML技術(shù)第一次真正意義上提供了一種與XML層次型結(jié)構(gòu)相匹配的層次型存儲(chǔ)方式和相對(duì)應(yīng)的操作訪問(wèn)方式。在pureXML中,XML 作為一種新的數(shù)據(jù)類型。幾乎每個(gè) DB2 組件、工具和實(shí)用程序都已得到增強(qiáng),以識(shí)別和處理這種新數(shù)據(jù)類型。新的存儲(chǔ)模式以解析后的注釋樹形式(類似于 XML 文檔對(duì)象模型 (DOM))保留 XML,它與關(guān)系數(shù)據(jù)存儲(chǔ)分開。

想了解數(shù)據(jù)庫(kù)發(fā)展最新趨勢(shì),請(qǐng)點(diǎn)擊這里

分享到

多易

相關(guān)推薦