曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
加新的書目,但是不能刪除它們。
• 集成性—數據庫對于可重用信息的共享非常適合。從會計部門來的作者數據可以在圖書
目錄中所共享。
看上去數據庫技術的確很適合我們的需要。關系數據庫和面向對象數據庫兩個都允許控制
小數量的信息。R D B M S和O O D B M S都允許人們編輯同一個區域的不同片段,就像我們在上面討
論過的兩個地址的例子一樣。對象數據庫將更進一步地允許將安全設在獨立的對象上(關系型
數據庫通常只允許控制某類的所有對象)。
在這一部分,我們將看一下對象和關系型數據庫技術,并且看一看它們各自的好處,關于
模型化和存儲分級的節點,正如我們在本節的第一部分所討論的。
362使用XML 高級編程
下載
1. 面向對象數據庫
近幾年來,以對象的形式模擬真實世界的數據庫已經可用了。盡管處理信息的速度比不上
關系型數據庫,但它的好處是,在使用了面向對象的編程技術時,可以讓信息更易于管理。從
我們當前討論的觀點中的主要好處是他們非常直觀地模擬我們的節點分級。
在討論為什么面向對象在建立X M L文檔上可能是一個有用的方法之前,我們先粗略地看一
下O O的原則。
(1) 面向對象的程序設計
面向對象的程序設計—即O O P—提供一個非常有效和可靠的機制,用于編寫結構良好
的程序。一個對象可以是程序員希望的任何東西,從切實的,就像汽車或一個訂單,到更抽象
的,就像一個列表。一個類定義是說每一個對象應該是什么:有什么屬性;是否還包含其他
類;并且類中有什么屬性。
例如,對于作者的類定義可能詳細說明了,一個作者有名和姓,他寫的書的列表。然而,
一個作者的對象類將擁有實際的值,就像“ S t e p h e n”和“M o h r”。當一個對象從它的類定義中
被創建,這個類就稱為被實例化了。
用O O方法來產生可靠代碼的一個好處是與一個對象有關的信息可以被封裝。這個可以有效
地用于在可以被使用的層次上展現信息。通過允許一個類從另一個類繼承,封裝的類可以被用
于建立在經過使用和測試的代碼上。例如,假設我們有一個J a v a類P e r s o n,定義如下:
程序清單1 0 - 4
并且有一個f u l l N a m e ( )的例程,它已經被徹底地測試過,并且發現非常穩定。我們理所當然想
從中得到好處。當我們在Wr o x這個程序中開始定義A u t h o r類,可以通過繼承建立在P e r s o n類上:
程序清單1 0 - 5
第10章XML和數據庫使用363 下載
我們現在可以將精力集中在實現A u t h o r類上,建立在P e r s o n類的設計者已經完成的工作之上。
不需要我們寫一行額外的代碼,任何A u t h o r已經自動地繼承了P e r s o n的特性。所以可以參照下面
的代碼顯示一個作者的名字:
(2) OO和X M L
可能并不需要總是觀注在前面部分中對象與X M L元素之間的密切關系。回憶一下第7章中的
模式,一個作者可能看到以下內容:
程序清單1 0 - 6
為了使用D O M創建這樣一個元素將要求大量調用c r e a t e E l e m e n t ( )和s e t A t t r i b u t e ( ),這樣可能
會有很多的錯誤。使用剛剛介紹的基于面向對象的技術,我們看到創建作者的對象更穩定。例
如,下面的J a v a S c r i p t創建剛列出的作者文檔中的第一部分:
程序清單1 0 - 7
364使用XML 高級編程
下載
當然可以通過使用函數來讓以上部分小些,但是面向對象方法的好處是處理數據的模型,
而不只是節點。在J a v a例子中,可以說插入一個作者,而不是一個名為‘ a u t h o r’的節點。
(3) 持續性
O O數據庫填補了J a v a等應用程序對持續性對象的需求。雖然也可以在一個磁盤文件或一個
關系數據庫中表示A u t h o r對象,但是前者的效率很低,后者要求程序員經常在兩個數據模型中
切換—關系型和層次型。的確存在很多工具,用于映射在像J a v a和C + +一類語言中的類與關系
數據庫,但是對于在一個關系數據庫中模擬分級數據要求對那些表做很多的連接(我們將在下
一部分看到連接和關系數據庫)。如果對象樹很深,這就可能用很多表來表示,結果也會相當的
慢。
(4) 好處
O O D B M S好處是在當我們真的想處理關系和深度復雜的對象時候。然而,因為它們不像一
般的R D B M S那樣快,如果復雜度不大的話,后者仍然可以用來模擬對象結構。我們將看一下在
兩個使用對象技術的產品上演示前面所討論的大部分的高級技術。
(5) 面向對象數據庫產品
讓我們看一下兩個面向對象數據庫:
(6) Object Design——eXcelon 1.1
e X c e l o n 產品是受到廣泛贊譽的O O數據庫,最近加入了X M L 的支持。雖然一般的
ObjectStore 4.0—存在于e X c e l o n下的數據庫—的行為是用于存儲文件,在對象的分層中將
其作為一個單元(看一下前面的文檔管理部分),e X c e l o n確實分析X M L輸來產生新的對象。換
句話說,比起每個對象在數據庫中是一個全X M L文檔,它用的只是文檔中的節點。這些節點可
以通過使用X Q L查詢(參見第8章)而得到(參見圖1 0 - 4)。
由于e X c e l o n能夠分析節點,并將它們保存為唯一的對象,因此e X c e l o n領先于其他產品。
O b j e c t S t o r e底層的O O技術完全能夠操縱這些節點。We b站點h t t p : / / w w w. o d i . c o m / e x c e l o n /上列出
了更多的信息。
(7) POET——Content Management System 2.0
C M S是基于Object Server Suite(OSS) 6.0,P O E T是自己所有的面向對象數據庫。同將輸入的
X M L轉化為e X c e l o n對象的方式有著相似的行為, C M S允許節點在任何一級被作為“組件”進行
描繪。這些組件相互之間是獨立地用于注銷和版本控制,等等,這就意味著兩個人可以在同一
時刻編輯同一文檔的不同節點。
在結構中搜索可以有兩種方法來執行,或者作為標準的文本進行廣泛的搜索,或者在標記
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(120)