由DB2 pureXML引發(fā)的回顧與反思
DB2 pureXML功能部件允許您將格式良好的XML文檔以分層結(jié)構(gòu)的形式存儲(chǔ)在具有XML數(shù)據(jù)類型的表列中。通過(guò)將XML數(shù)據(jù)存儲(chǔ)在XML列中,數(shù)據(jù)可保持其本機(jī)分層結(jié)構(gòu)形式,而不是將其作為文本存儲(chǔ)或映射為其他數(shù)據(jù)模型。因?yàn)閜ureXML數(shù)據(jù)存儲(chǔ)已完全集成,所以可利用現(xiàn)有DB2數(shù)據(jù)服務(wù)器功能來(lái)訪問(wèn)和管理存儲(chǔ)的XML數(shù)據(jù)。將XML數(shù)據(jù)以其本機(jī)分層結(jié)構(gòu)形式來(lái)存儲(chǔ)可以使XML的搜索、檢索和更新效率更高。XQuery、SQL或上述二者的組合可用于查詢和更新XML數(shù)據(jù)。返回XML數(shù)據(jù)或采用XML自變量的SQL函數(shù)(稱為SQL/XML函數(shù))還能根據(jù)從數(shù)據(jù)庫(kù)中檢索的值來(lái)構(gòu)造或發(fā)布XML數(shù)據(jù)。
簡(jiǎn)介
許多年以來(lái)在數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域很少有重大的技術(shù)創(chuàng)新能夠引起人們對(duì)整個(gè)數(shù)據(jù)庫(kù)發(fā)展歷程的回顧與反思。2006年DB2 9中推出的pureXML技術(shù)對(duì)過(guò)去數(shù)十年來(lái)關(guān)系型數(shù)據(jù)庫(kù)的最基本的數(shù)據(jù)組織方式進(jìn)行了重大的創(chuàng)新,***次讓我們對(duì)數(shù)據(jù)庫(kù)的歷史以及過(guò)去支撐其發(fā)展壯大的理論基礎(chǔ)和外部挑戰(zhàn)從新的角度進(jìn)行審視。
今天我們很少去回顧數(shù)據(jù)庫(kù)的歷史,對(duì)于絕大多數(shù)IT技術(shù)人員,數(shù)據(jù)庫(kù)等同于關(guān)系型數(shù)據(jù)庫(kù),數(shù)據(jù)則和表緊密聯(lián)系。E-R模型幾乎是我們描述世界的***方式,SQL語(yǔ)言是數(shù)據(jù)庫(kù)信息訪問(wèn)處理的***手段。關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)成為了一種宗教式的信仰,數(shù)據(jù)相關(guān)的所有理論問(wèn)題似乎都已經(jīng)解決。
然而歷史的發(fā)展總是在我們不經(jīng)意間產(chǎn)生轉(zhuǎn)折,所有重大技術(shù)的產(chǎn)生及發(fā)展都有其生存的土壤。40年前數(shù)據(jù)庫(kù)的誕生并不是關(guān)系型數(shù)據(jù)庫(kù),***代的數(shù)據(jù)庫(kù)***次實(shí)現(xiàn)了數(shù)據(jù)管理與應(yīng)用邏輯的分離,采用層次結(jié)構(gòu)來(lái)描述數(shù)據(jù),是層次型數(shù)據(jù)庫(kù)(IMS)。第二代數(shù)據(jù)庫(kù)奠基于上世紀(jì)70年代E.F Codd博士提出的關(guān)系型理論以及SQL語(yǔ)言的發(fā)明。實(shí)現(xiàn)了數(shù)據(jù)建模和數(shù)據(jù)操作處理的標(biāo)準(zhǔn)化,關(guān)系型數(shù)據(jù)庫(kù)在其后的20多年的時(shí)間取得了長(zhǎng)足的發(fā)展,得到了廣泛的應(yīng)用。技術(shù)的演進(jìn)主要集中在性能、擴(kuò)展性和安全性等方面的提升,其基本的理論框架和技術(shù)理念并沒有大的變化。
與之相反,在過(guò)去的20多年時(shí)間里,IT產(chǎn)業(yè)發(fā)生了重大的變化和一系列技術(shù)及理念的創(chuàng)新。數(shù)據(jù)庫(kù)所生存的外部土壤隨著Internet以及在網(wǎng)絡(luò)環(huán)境下IT系統(tǒng)互連互通相互協(xié)作的趨勢(shì),對(duì)信息管理技術(shù)提出了新的挑戰(zhàn)。概括而言,有以下難以回避的重要問(wèn)題:
多樣化的世界-信息的復(fù)雜性
今天信息的復(fù)雜性與關(guān)系型數(shù)據(jù)庫(kù)理論產(chǎn)生的時(shí)代已不可同日而語(yǔ),信息的結(jié)構(gòu)日益復(fù)雜,隨著個(gè)性化服務(wù)等需求增長(zhǎng),信息的多樣性和差異性都大大增加了。而關(guān)系型理論在管理信息復(fù)雜性方面的不足日益明顯。E-R模型本質(zhì)上是一個(gè)二維的模型,通過(guò)一系列的二維關(guān)系的組合來(lái)描述復(fù)雜實(shí)體對(duì)象,每個(gè)表所代表的所有實(shí)體在建模設(shè)計(jì)時(shí)沒有差異性,即使只有一個(gè)實(shí)體所擁有的屬性,也必須為其建立一個(gè)字段。因而在很多系統(tǒng)中,我們經(jīng)??梢钥吹揭粡埍碛袛?shù)百個(gè)字段,而對(duì)于每條記錄,大多數(shù)字段都是空的。如果這種個(gè)體間的差異性不是僅僅表現(xiàn)在屬性上,而且涉及到結(jié)構(gòu)和關(guān)系,則需要為有差異的實(shí)體建立不同的表和對(duì)應(yīng)關(guān)系。因而今天的許多業(yè)務(wù)系統(tǒng)往往需要幾千張表,甚至數(shù)萬(wàn)張表。數(shù)據(jù)庫(kù)的結(jié)構(gòu)變十分復(fù)雜,數(shù)據(jù)庫(kù)中的信息變得難以理解。
多種信息應(yīng)用方式-信息的可理解性
從某種意義上而言,今天業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)的信息是業(yè)務(wù)系統(tǒng)運(yùn)行的副產(chǎn)物。數(shù)據(jù)庫(kù)為支撐特定業(yè)務(wù)應(yīng)用的運(yùn)行而設(shè)計(jì),數(shù)據(jù)庫(kù)中的數(shù)據(jù)也只被單一系統(tǒng)使用,所以很少考慮這些信息是否易于理解。然而,今天越來(lái)越多的系統(tǒng)需要相互協(xié)作、共享信息。信息的可讀性,能否易于理解變得日益重要。關(guān)系型數(shù)據(jù)庫(kù)在此方面存在較大不足,表中的數(shù)據(jù)不能自我描述,表于表之間的關(guān)系在數(shù)據(jù)中不能直接清晰地體現(xiàn)。從而使得很多系統(tǒng)即使把表結(jié)構(gòu)開放,其他應(yīng)用依然難以理解數(shù)據(jù)的關(guān)系和含義.
需求及業(yè)務(wù)的變化-信息的靈活性
隨著IT系統(tǒng)進(jìn)入社會(huì)生活的各個(gè)方面,信息不僅日益復(fù)雜,而且其需求內(nèi)容和結(jié)構(gòu)隨著時(shí)間的推移也不斷地產(chǎn)生變化.現(xiàn)實(shí)世界要求信息技術(shù)具有越來(lái)越高的靈活性和適應(yīng)性。關(guān)系型數(shù)據(jù)理論所采用的是一種固定的建模方式,任何關(guān)系和屬性一旦定義,就是國(guó)定的,難以隨著需求的變化進(jìn)行靈活的調(diào)整。
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ù)組織方式卻在信息管理領(lǐng)域應(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ù)。對(duì)象技術(shù)鼓勵(lì)設(shè)計(jì)者使用對(duì)象而不是表來(lái)思考數(shù)據(jù),在面向?qū)ο蟮脑O(shè)計(jì)思想中,數(shù)據(jù)也是以對(duì)象的形式存在,層次結(jié)構(gòu)是數(shù)據(jù)對(duì)象的最直接、最自然的體現(xiàn)。而關(guān)系型數(shù)據(jù)庫(kù)的理論與面向?qū)ο蟮乃枷氩⒉黄ヅ?,E-R模型中沒有對(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ò)鍵相關(guā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ù),但要使用它是,在使用SQL查詢(多重連接)。就像在車庫(kù)中存儲(chǔ)車時(shí),你把它的門、椅子、輪子等等分別卸下來(lá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ū)ο蟪绦蚝苋菀讓憽O喾?,多?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)備好了嗎?
今天,關(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ā)展的必然選擇。
【編輯推薦】