面向對象數據庫系統及其在Web中的應用

關 鍵 詞: 面向對象數據庫系統;面向對象軟件開發;XML;Web;軟件工程;軟件複用技術
        1   數據庫的新技術和新問題

        爲了更好地瞭解新事物,首先應該瞭解它的發展歷史。數據庫對於計算機界人士來講應該是個老話題,但數據庫技術所涉及、處理的一些問題卻是計算機的核心、根本問題。因爲計算機最終是信息的處理,數據庫就是用來管理具有大量的、持久的和共享的特性的數據。隨着計算機科學的不斷髮展,數據管理技術也在不斷地改進

        數據庫系統的研究在查詢優化、對象-關係數據庫系統、主動數據庫、數據複製和數據庫並行性等領域取得了重大突破。而在數據庫未來的研究中,針對網絡日趨普及的狀況,數據庫界應當擴充數據庫管理的概念,使之包容Web和其它聯機數據存儲的內容,真正實現語義Web。並且在數據庫系統中做到過程和數據的統一,實現數據管理的智能化,支持軟件的複用技術,進一步發揮數據庫技術的重要作用。

        2   面向對象的數據庫設計

        面向對象的數據庫設計吸收了語義數據模型和知識表示模型的基本概念,借鑑了面向對象程序設計和抽象數據類的思想,在面向對象技術盛行的今天,具有非常實用的價值。

        2.1   面向對象的數據庫設計原理

        2.1.1   對象、類、類的繼承

        可以結合關係數據庫設計和麪向對象技術來理解面向對象的數據庫設計原理。在面向對象數據模型中,分析問題的最初着眼點是對象,現實世界中的實體都可以模擬成對象。對象具有兩個性質:

        屬性:描述對象的狀態、特性等;

        方法:描述對象的行爲特性,對對象進行的各種數據庫操作。在類中記錄的是方法的調用接口,方法實現的過程是獨立的,這是對象的封裝性。在數據庫設計中將遇到很多對象,而每個對象都有相應的屬性和方法,所以可以把對象類似地看作關係數據庫中具體的每一條記錄。

        對大量的對象可以歸併成類,對象是類的實例。即同一類的對象具有共同的屬性和方法,這樣就避免了大量說明信息的重複。類可以類似地認爲是關係數據庫中的表,對象與類之間的關係類似於記錄和表的關係。但兩者之間有區別:關係數據庫中不允許有兩條屬性全部相同的記錄,而在對象的實例化過程中,可以產生兩個屬性、方法完全相等的對象,但這兩個對象並不同一,因爲在O-O數據模型中,每個對象都有一個唯一的標識符OID,對象的OID是區別對象的唯一標誌。

        子類和其超類之間具有繼承性,子類可以繼承所有超類中的屬性和方法,這裏面就存在多繼承的問題。繼承性是OODBMS的一個突出特點,它支持複用技術。

        2.1.2   對象永久化

        OODBMS產生的一個目的是提供永久的對象存儲。在存儲機制中引入了指針的概念,指針是內存地址的某種形式,這樣的地址只在程序執行期間是有效的,每次啓動之後,對象的地址將是不同的。當存儲一個對象時,不管內存指針是否是在內存中的,需要把它們轉變成一個永久的唯一標識,才能在該對象的生命週期中都有效。一個對象既是數據又是方法,所以OODBMS應該同時存儲對象程序和數據。因爲各個對象的數據值不同,而給定類的每個對象具有相同的方法,因此對該類的每個對象實例,我們只需要存儲這些方法一次,在每個對象具體調用某個方法時,通過指針指向方法所在的位置。

        2.2   面向對象數據庫

        市場上有許多面向對象的數據庫系統可供選擇,例如ObjectStore、Versant Developer Suite、Poet FastObjects和InterSystems公司的Caché等。由於還沒有明確的標準評價OODBMS,所以對象數據庫管理組織(Object Database Management Group,ODMG)的標準應當是當前評價OODBMS最好的準繩。大部分的OODBMS具有如下特點:遵從ODMG標準;具有一定的兼容性,在所支持的Unix或Windows操作系統的某些版本中是兼容的;提供數據庫瀏覽器、客戶端緩衝、保證不同級別的數據庫安全以及對XML的支持。應用時可以使用標準的SQL和基於ODBC的方式訪問OODB。

        3   面向對象的軟件開發技術

        O-ODBMS借鑑了O-O軟件開發技術中的基本思想,比如對象、類、類的繼承、封裝等概念。所以兩者在許多方面都是互通的。

        3.1   需求分析階段:

        我們知道,軟件開發分析階段的最終目的是建立需求模型,一般是繪製出類框圖。在類框圖中提供這樣一些信息:問題處理所涉及的各種類、及其屬性和相應的方法、類之間的關係(繼承、關聯等)。所以,在面向對象的分析階段,設計者就能通過類框圖確定數據庫的結構。因爲目前國內還沒有廣泛使用的OODBMS,所以我們可以使用關係數據庫設計方法(如圖一)來模擬表示OODBMS。

        OID(對象標識符) 屬性1 屬性2 方法1 方法2

        001 attribute0011 attribute0012 minterface0011 minterface0012

        002 attribute0021 attribute0022 minterface0021 minterface0022

        ---------- ---------- ---------- ---------- ----------

        00n attribute00n1 attribute00n2 minterface00n1 minterface00n2

        (圖 一 )

        圖中第一行對應類的屬性和方法,下面是具體的每個對象,當然要有OID來標識不同的對象。Minterface*表示方法調用的接口,真正的方法過程體獨立於對象之外。

        3.2   實現階段:

        O-O數據庫設計應該是面向對象軟件開發設計步驟中的核心。當然這一步工作與分析過程是緊密結合的。分析人員可以在進行了需求分析之後比較快速地生成一個OODBMS,另外面向對象的程序設計工具均提供了與數據庫相連的控件,編程人員可以使用SQL(SQL3)訪問數據庫,對數據庫內容進行定義、查詢等操作。SQL3是對標準SQL的擴展,包括對面向對象數據庫管理的支持。它的出現超越了數據庫管理的慣例,在SQL3中結合了三組新的概念和方法:對抽象數據類型的支持,對錶定義的增強,以及使SQL3提高競爭力的對語言構造的擴展。

        4   數據庫設計與Web的結合

        面向對象數據庫設計較之關係數據庫在關於可描述數據的形式上有較大的突破。後者因爲必須滿足第一範式的要求,所表示的數據必須是原子形的(意義上不能再分),而Web中提供的信息資源能夠表示形式各異的數據(文檔、代碼、URL地址等),O-ODBMS恰恰符合這種特點,所以說O-ODBMS應當是Web中數據庫設計比較合適的模式。

        4.1   XML(擴展性標記語言)的特點

        XML的建立應該是面向對象數據庫設計的應用。它突破了傳統數據庫設計的思路,不單純支持對數據的管理,還支持對各種文件形式的資源和代碼的管理。是當今網絡時代爲了處理各種形式的數據而應運產生的。

        XML以文檔形式記錄各種信息(包括元信息、結構化數據、半結構化數據),使用簡單的標記描述封裝的信息,它的數據建模的依據是面向對象數據庫的思想,每個具體的對象也可以有相應的屬性和方法。XML處理器可以將XML文檔轉換成用戶需求的中間數據模式(如關係數據模式),供應用程序操作。它使得我們可以更加快速的在網上搜索所需要的資源。

        XML同時採用智能—數據(過程—數據)的思想,是數據庫設計新技術的體現。它對Web技術作出的突出貢獻除了描述信息的形式多樣以外,還提高了Web中的查詢級別,使得從傳統數據庫模式下的基於關鍵字的嚴格查詢技術提高到一種語義上的靈活的查詢技術。缺點是還沒有建立成熟的與用戶交互的接口,缺乏與SQL語句類似的成熟的數據庫操作語言。如果這個問題真正解決了,對建立真正的語義Web是非常重要的。

        4.2   XML下Web的體系結構:(暫略)      

        4.2.1   有利於文檔的交換:

        基於上圖的Web的體系結構,客戶端—瀏覽器或程序—將一個XML文檔作爲請求發送給服務器,那麼在服務器之間就存在數據的交換,XML正是面向對象型數據庫與關係型數據庫以及其它模型數據庫之間轉換的橋樑。而因爲XML具有:平臺獨立性、文件的自描述性、文件能夠顯示層次化信息等優點,所以XML文件較之普通的文件或數據庫等傳輸格式具有明顯的優勢。

        4.2.2   DOM和數據庫:

        XML爲在不同的數據庫之間傳遞信息提供了理想的機制。因爲各個服務器所描述的數據在格式、類型等方面均有差異,而服務器相互之間要傳遞數據,首先就要進行不同數據之間的轉換(翻譯過程)。利用DOM(Document Object Model)文檔對象模型能夠簡化各種數據庫之間信息傳遞的方式,它以文檔形式存儲信息,將文檔中的每個項目看作節點(元素、屬性、註釋、處理指令、甚至構成屬性的文本),從而減少爲傳遞的各種類型的數據進行翻譯的過程。

        當然,關係數據庫系統是傳統的比較成熟的數據庫系統,現在在線的網上數據有一大部分是關係數據庫支持的,而面向對象數據庫技術正日趨發展,與關係數據庫相比,在Web的應用中將更具有優勢。

        5   面向對象數據庫設計與軟件複用技術

        從軟件工程的角度來衡量一個系統或一種模式的性能是否優越,重要的因素是考慮它能否較好的支持軟件複用技術。軟件複用技術對於系統的可用性起到重要的作用。

        我們知道OODBMS的原理性思想是從面向對象的軟件開發技術中借鑑而來的。而且大家都清楚面向對象的軟件開發技術從分析到設計到實現都具備支持軟件複用的技術。比如類的三個特性:封裝性、繼承性、多態性,決定了代碼的重用性;分析階段模型的重用技術等。面向對象技術支持軟件的產業化。原因是它提出了組件、構件、中間件的概念。組件可以解決軟件系統的可操作性、可擴展性、語言獨立性和跨平臺的操作能力等問題,軟件組件可以看作是一種軟件集成電路元件,是可方便地插入到語言、工具、操作系統、網絡系統中的二進制代碼和數據。這也是面向對象技術之所以流行的一個重要原因。

         以上這些支持軟件複用的技術都可以應用到OODBMS中。因爲OODB中同樣是以對象爲操作的核心,對象具有其屬性和方法,類的三個特性及代碼重用等技術均能夠在OODB中體現出來。所以說OODBMS同樣是支持軟件複用技術的,尤其是當它作用在面向對象軟件開發的分析與設計階段,更能夠體現這個特性。

        6   小結

        OODBMS具有其突出的特點,當系統所涉及的數據結構複雜,數據類型多樣化,操作流程與對象結合密切,但操作流程比較固定的時候,我們可以採用面向對象數據庫系統來管理數據;當然在Web中對各種資源信息進行管理的較好的數據庫模式應該是面向對象的;同時它也爲解決數據庫新技術和新問題提供了思想源泉。但OODBMS有其缺點:首先要求採用面向對象程序設計;其次是大部分企業仍然採用傳統數據格式,要進行轉換將花費較大的人力和物力;現在的OODBMS沒有提供有效的查詢和報表工具;最後是在併發控制和事務管理能力上相對傳統數據庫產品而言是不成熟的。所以要根據具體要解決的問題來選擇適當的數據庫管理模式。

        

        References: 

        [1]   《數據庫處理——基礎、設計與實現》 David M。Kroenke著  電子工業出版社

        [2]   《XML高級編程》 Didier Martin著       機械工業出版社

        [3]   《數據庫系統原理》 王能斌 著           電子工業出版社

        [4]   《軟件工程》 楊文龍 等著     電子工業出版社


        OODBMS and the applications on the Web á

        NAME LIU Xiao-lu 

        (Dept. of Computer Engineering, Nanjing Institute of Technology, Nanjing  210013 , China)

        Abstract: *The paper analyzes the principle and the working mechanism of OODBMS,summarize its characteristics;talks about the applications of XML which bases on the mode of O-O;analyzes the relationship of OODBMS and O-O software development,and the sustentation of OODBMS to the reuse technology.*

        Key words: *OODBMS;O-O software development;XML;Web;software engineering;reuse technology*

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章