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