曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專(zhuān)營(yíng)店坑蒙拐騙欺詐消費(fèi)者
354使用XML 高級(jí)編程
下載
下載
第10章XML和數(shù)據(jù)庫(kù)
X M L的未來(lái)與數(shù)據(jù)庫(kù)技術(shù)是密不可分的。從存儲(chǔ)在不同介質(zhì)上的數(shù)據(jù)中自動(dòng)生成X M L文檔
的能力,從不同的數(shù)據(jù)存儲(chǔ)交換信息的能力,將成為未來(lái)面向信息的I n t e r n e t的主要特點(diǎn)。動(dòng)態(tài)
X M L文檔將會(huì)增加,變得與X M L一樣,被用于裝載任何東西,從天氣報(bào)告到貨物定單,電影回
放到體育結(jié)果,從圖像到聲音。
這一章的目的是看一下數(shù)據(jù)庫(kù)與X M L的關(guān)系。我們將從兩方面來(lái)做這件事情。首先我們將
介紹如何使用數(shù)據(jù)庫(kù)存儲(chǔ)類(lèi)似X M L的數(shù)據(jù),然后我們將描述如何將X M L作為一種不同數(shù)據(jù)庫(kù)之
間數(shù)據(jù)交換的方法。對(duì)這兩個(gè)方法的界定不是勾勒得很清楚,但是第一個(gè)與存儲(chǔ)X M L數(shù)據(jù)的新
系統(tǒng)的關(guān)系更加密切,第二個(gè)與遺留的系統(tǒng)關(guān)系更緊密—現(xiàn)有的數(shù)據(jù)庫(kù)需要與遺留的系統(tǒng)交
換數(shù)據(jù)。最后我們將介紹一個(gè)例子。所以,這一章可以分成三個(gè)部分:
• 存儲(chǔ)X M L。
• 將X M L用于交換。
• 圖書(shū)目錄的例子。
在存儲(chǔ)的部分,我們將看幾個(gè)用于存儲(chǔ)X M L的方法,并且考查一下為什么一個(gè)簡(jiǎn)單的文件
系統(tǒng)對(duì)我們想要建立精細(xì)和復(fù)雜系統(tǒng)不是很適合。我們將看到文件系統(tǒng)的局限是什么,為什么
我們需要超越X M L文檔,并且哪一種類(lèi)型的軟件包將是最適合存儲(chǔ)X M L。
在我們考慮用來(lái)保存X M L的理想的軟件時(shí),可能意識(shí)到不是每件事情都是必需的(要看你
想要做些什么),但是我們至少可以建立起一套需求和想法,這樣在評(píng)測(cè)產(chǎn)品時(shí)做到心中有數(shù)。
在交換部分,我們將看一下數(shù)據(jù)是如何在不同的存儲(chǔ)服務(wù)器間通信的,通過(guò)使用X M L作為
一種中間格式。盡管使用X M L作為一種從一個(gè)數(shù)據(jù)庫(kù)取出數(shù)據(jù)放入另一個(gè)數(shù)據(jù)庫(kù)的方法是意義
重大的一步—例如,從關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)到一個(gè)面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng),或者從O r a c l e
到S y b a s e—我們會(huì)看到對(duì)于X M L的結(jié)構(gòu)仍然要加以考慮。
了解了存儲(chǔ)X M L的理想方法,以及從現(xiàn)有數(shù)據(jù)提取信息作為X M L的最好方法之后,我們將
通過(guò)圖書(shū)目錄例子舉例說(shuō)明我們的一些想法。
那么,讓我們首先看看圍繞X M L存儲(chǔ)的一些問(wèn)題。
10.1 存儲(chǔ)XML
讓我們從X M L的存儲(chǔ)開(kāi)始,看看有哪些可用的方法。我們首先從總體上討論存儲(chǔ)的有關(guān)問(wèn)
題,然后繼續(xù)闡述為什么要使用數(shù)據(jù)庫(kù)而不使用磁盤(pán)文件。
10.1.1 持續(xù)性問(wèn)題
為了保證到目前為止你在本書(shū)中遇到的X M L文檔能夠被再次使用,它們應(yīng)該保存在某種存
儲(chǔ)介質(zhì)上—通常是文件系統(tǒng)。將信息保存起來(lái)留作以后使用稱(chēng)為持續(xù)性,而且它也是指在一
個(gè)程序結(jié)束運(yùn)行后使信息仍然可用的操作。例如,你可能很高興地用一個(gè)字處理軟件來(lái)寫(xiě)一封
信,但是如果你關(guān)掉計(jì)算機(jī)或退出程序,就會(huì)丟掉信。持續(xù)化信件意味著將其保存為以后使用。
到目前為止,在這本書(shū)中我們對(duì)X M L的經(jīng)驗(yàn)是可以使用普通的文件系統(tǒng)中的文檔保持X M L
的持續(xù)性。保存這些文檔的方式與存儲(chǔ)字處理文檔或電子表格的方法相同—都保存為文件。
因?yàn)樗鼈兪荴 M L,你可以使用眾多專(zhuān)門(mén)的X M L編輯工具中的某一個(gè)來(lái)編輯它們。然而,不像
Microsoft Wo r d文檔或聲音文件,X M L也是普通的文本文件,以你也可以使用文本編輯器來(lái)編輯
它們。
這種技術(shù)有許多合適的應(yīng)用。仍然以我們的圖書(shū)目錄為例,可以看到如果只有少量的出版
商,而且每個(gè)出版商僅擁有幾本書(shū)和幾位作者,那么文檔不會(huì)很大。同樣,如果文檔中的信息
只被一、兩個(gè)人使用—例如C D中收集的X M L文件,我相信你可能已經(jīng)將它們?nèi)釉谀愕腜 C中
的某個(gè)地方了—那么,單個(gè)文件已經(jīng)就足夠了。
1. 文件系統(tǒng)的限制
在某些方面,基于文件的方法很好。然而,對(duì)于關(guān)鍵性的應(yīng)用,這個(gè)文件系統(tǒng)的方法就不
是太好了。我們將在這里小節(jié)一下這種方法的一些局限并且建立一個(gè)我們想實(shí)現(xiàn)的列表。
(1) 大小
第一個(gè)局限是文檔大小。如果在我們的這本書(shū)的目錄列表中有2 0個(gè)出版商,每一個(gè)出版商
有2 0 0本書(shū)和5 0個(gè)作者會(huì)怎么樣?我們所傳遞的X M L文件將變得非常不實(shí)用。不僅僅是因?yàn)樗?br />
大了,而且如果你想維護(hù)文檔的不同部分也變得難于操縱。
• 我們想處理巨大的文檔,并且想檢查同其他部分分離的部分文檔。
(2) 并發(fā)性
正如我們可能想在文檔不同部分間快速和簡(jiǎn)單地移動(dòng)一樣,我們也可能想讓不同的人在不
同的時(shí)間更新不同的部分。也許圖書(shū)的編輯負(fù)責(zé)增加書(shū)名目和作者,經(jīng)理考慮出版商。在一個(gè)
文件系統(tǒng)中只有一個(gè)單一文檔,在一個(gè)時(shí)間只能有一個(gè)人可以處理信息。如果一個(gè)編輯需要增
加新的書(shū)目,同時(shí)會(huì)計(jì)想更新作者的信息,一個(gè)人不得不等著其他人完成。的確,也可能兩個(gè)
人試圖在同一時(shí)刻編輯同一文件,并且其中一個(gè)人所作的改變會(huì)完全丟失。
• 我們想允許許多人在同一時(shí)刻處理同一文檔。
(3) 做這項(xiàng)工作的合適工具
也可能是這種情況,一個(gè)X M L編輯器可能不是處理一個(gè)文檔不同部分的合適工具。我們可
能讓會(huì)計(jì)部門(mén)來(lái)維護(hù)作者信息,而不被文檔的其他部分所牽扯,對(duì)于他們來(lái)說(shuō)所選擇的工具可
能是一個(gè)簡(jiǎn)單的表格。這個(gè)表格可能提供其他特性,如查找電話號(hào)碼或電話撥號(hào)。另一方面,
維護(hù)書(shū)的列表工具可能需要包含書(shū)自身的草稿文檔。
• 我們想使用最適合處理數(shù)據(jù)的工具來(lái)維護(hù)文檔的各個(gè)部分。
(4) 版本
一個(gè)經(jīng)常考慮的重要問(wèn)題是控制同一文檔的不同版本。
• 我們想能夠記錄一個(gè)文檔不同版本的軌跡。
(5) 安全
356使用XML 高級(jí)編程
下載
使用不同的工具處理文檔的不同部分,并且允許不同的用戶(hù)在同一時(shí)刻處理文檔的不同部
分引發(fā)出安全問(wèn)題。
• 我們想控制一個(gè)文檔的某一部分只有某人可以查看或修改。
(6) 綜合性:集中和重復(fù)
也存在對(duì)數(shù)據(jù)的集中和重復(fù)的問(wèn)題。會(huì)計(jì)部門(mén)可能已經(jīng)有一個(gè)作者的數(shù)據(jù)庫(kù),用于處理皇
室的支付。我們需要重復(fù)所有這些信息嗎,當(dāng)需要在目錄中生成作者列表時(shí),或者我們應(yīng)該能
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(117)