摘 要:隨著不同的領(lǐng)域?qū)?shù)據(jù)類型的苛刻需求,面向?qū)ο蟮乃季S模式,可以非常自然和直觀地表達復雜的對象結(jié)構(gòu),操作方法與封裝到數(shù)據(jù)庫領(lǐng)域,以提高快速的數(shù)據(jù)處理能力。其獨特的面向?qū)ο蟮奶匦圆粩鄾_擊傳統(tǒng)的關(guān)系數(shù)據(jù)庫。文章強調(diào)面向?qū)ο髷?shù)據(jù)庫的特點,并討論它們的屬性數(shù)據(jù)庫和未來發(fā)展趨勢的發(fā)展過程中的獨特優(yōu)勢。
關(guān)鍵詞:面向?qū)ο?;?shù)據(jù)庫系統(tǒng);設計
中圖分類號:TP311.13
在數(shù)據(jù)類型需求較多的計算機領(lǐng)域,例如:計算機輔助加工與設計、圖象處理、建模工程等,要求數(shù)據(jù)類型應具有用戶自定義的可擴展能力。這樣,傳統(tǒng)的關(guān)系型數(shù)據(jù)模式就顯得相形見絀了。
1 面向?qū)ο髷?shù)據(jù)庫的概念和基本特征
1.1 面向?qū)ο蟮母拍罴疤匦?/p>
面向?qū)ο蟮姆椒ň褪菍嶓w模型化成對象的方式,其方法具有抽象性、封裝性、多態(tài)性等特性。應用過程中,將對象定義成為類,并實現(xiàn)其數(shù)據(jù)類型。封裝是將方法與數(shù)據(jù)集成于對象中,使數(shù)據(jù)的操作通過訪問該對象本身的方式進行,應用中的對象就是一個已被封裝好的類。多態(tài)是指類被其它類訪問時,根據(jù)其它信息可解釋為不同的含義,把實現(xiàn)的方法留給接收方的類,同一操作可作用于多種類型的對象,但能獲得不同的結(jié)果。
1.2 面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的特征
面向?qū)ο髷?shù)據(jù)庫系統(tǒng)(OODB,Object-Oriented Database),是以面向?qū)ο蟮睦砟顬榛A,通過數(shù)據(jù)庫的設計人員以及開發(fā)人員,應用于更多的應用領(lǐng)域,提高了科技人員的認識,拓展了人們的邏輯思維模式。面向?qū)ο髷?shù)據(jù)庫其特征比較顯明:
首先,它是數(shù)據(jù)庫系統(tǒng),具有數(shù)據(jù)庫系統(tǒng)應具有的基本功能。存儲功能:包括數(shù)據(jù)緩沖、索引維護、數(shù)據(jù)聚集、路徑選擇及優(yōu)化等;永久性:數(shù)據(jù)保存是可持續(xù)性的;并發(fā)控制:高于系統(tǒng)同樣級別的多個用戶并發(fā)操作;恢復能力:不低于系統(tǒng)同樣級別的從故障后的錯誤狀態(tài)中恢復到某個正確狀態(tài);交互式:非過程化的、高效的、獨立于應用的。
其次,它是一個支持面向?qū)ο蟮臄?shù)據(jù)庫模型。結(jié)構(gòu)機制的使用,以支持更復雜的對象,從簡單的組成復雜的物體的能力。結(jié)構(gòu)能力加強其模擬客觀世界的能力,容易了解和接受,挖掘進入人們的看法的方法;性交對象的身份,獨立存在的對象屬性的內(nèi)容,可以大大提高查詢速度;與對象封裝對象的封裝,這兩種方法,封裝數(shù)據(jù)和信息保護,這樣用戶就沒有方法的詳細信息,僅使用該接口來訪問;具備的能力水平之類的,這個強大的支持繼承和多態(tài)性質(zhì)建模工具。在領(lǐng)域中的應用,能夠支持這樣的版本管理,事務管理,以及其他方面的模型推導。
2 面向?qū)ο髷?shù)據(jù)庫的發(fā)展途徑
在面向?qū)ο蠹夹g(shù)在數(shù)據(jù)庫技術(shù)發(fā)展過程中,基本上是沿著兩種途徑:一種是純粹的面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)(即OODBMS)。第二種是擴展傳統(tǒng)的關(guān)系數(shù)據(jù)庫,增加面向?qū)ο蟮奶匦?,使其兩兩結(jié)合,建立對象關(guān)系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。
2.1 面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)
面向?qū)ο髷?shù)據(jù)庫是以一種面向?qū)ο蟮恼Z言為基礎,支持持久對象和實現(xiàn)數(shù)據(jù)共享。由于全新的模式,不受已有模式的限制,不僅在定義許多復雜的數(shù)據(jù)類型時可以做到游刃有余,而且在應用領(lǐng)域的設計、研發(fā)、維護等方面有著極大的優(yōu)越性。其代表性的系統(tǒng)是:ServioLogic公司下的Gemstone;A1tair開發(fā)設計的O2系統(tǒng);ATNT的ODE;日本的Jusminc;MCC的ORION;Onto-Logics的Ontos等等。
但是,從目前的OODBMS的探索中發(fā)現(xiàn),面向?qū)ο髷?shù)據(jù)庫也有其很大的不足:
一是關(guān)于基礎方面,面向?qū)ο蟮脑S多概念還沒有一個完全統(tǒng)一的模式和標準,在此基礎上的面向?qū)ο髷?shù)據(jù)庫語言也沒有完全統(tǒng)一,不同的面向?qū)ο笙到y(tǒng)支持的對象說明不同,所以OODBMS設計實現(xiàn)難度大。
二是面向?qū)ο髷?shù)據(jù)庫技術(shù)還不廣為人知。因此技術(shù)的培訓需要一定的周期,培訓之所以重要,是因為人們的理念方面,即從傳統(tǒng)的關(guān)系數(shù)據(jù)庫模式轉(zhuǎn)為OO設計模式,需要一套新的方法使之與現(xiàn)有的關(guān)系型技術(shù)相結(jié)合。可以說,面向?qū)ο笙到y(tǒng)的有關(guān)原理才具有初步的設計及雛形,應用仍不廣泛,需要一定的時間在成本等方面達到可接受的程度。
三是不兼容標準的SQL語言的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)和大多數(shù)。雖然各方面的產(chǎn)品面向?qū)ο蟮臄?shù)據(jù)庫,允許用戶創(chuàng)建一個靈活的數(shù)據(jù)模型,并且可以添加在許多情況下,這種模式下的對象,但沒有足夠的手段從數(shù)據(jù)庫中檢索數(shù)據(jù)。同時,面向?qū)ο蟮臄?shù)據(jù)模型的基礎上完善的數(shù)學基礎,面向?qū)ο蟮臄?shù)據(jù)庫語言沒有正式的基礎。此外,還有用戶的各種約束,允許用戶進行交互的面向?qū)ο蟮膽贸绦虻牟槐?,已?jīng)極大地限制方面。
目前,ODMG(Object Data Management Group,對象數(shù)據(jù)管理組,簡稱ODMG,是以指定對象管理標準為目的的工業(yè)協(xié)會)作為一個強大的支持對象數(shù)據(jù)庫標準,這有助于減少各種標準化工作隨機數(shù)據(jù)庫供應商性,標準化,以一定的標準在該領(lǐng)域贏得了廣泛的知名度和支持面向?qū)ο蟮臄?shù)據(jù)庫,而且還幫助開發(fā)面向?qū)ο蟮臄?shù)據(jù)庫,數(shù)據(jù)庫和當前的供應商工廠接受。
2.2 關(guān)系與對象相結(jié)合的數(shù)據(jù)庫管理系統(tǒng)
當前,采用最多的是基于關(guān)系數(shù)據(jù)庫系統(tǒng)之上加以擴充,擴充的方式有兩種:
一是直接在關(guān)系數(shù)據(jù)庫應用上的以接口的方式加以擴充,類似于中間件的部份功能,在對象和關(guān)系之間加以轉(zhuǎn)換,將應用層的面向?qū)ο竽J睫D(zhuǎn)換為關(guān)系應用模式,與關(guān)系數(shù)據(jù)進行交互。這樣,在面向?qū)ο蟮膽弥?,關(guān)系數(shù)據(jù)庫的模型對用戶是黑盒子、透明的,用戶通過標準的面向?qū)ο髷?shù)據(jù)庫語言進行數(shù)據(jù)處理。數(shù)據(jù)庫管理系統(tǒng)在應用層面將面向?qū)ο髷?shù)據(jù)庫語言轉(zhuǎn)換成關(guān)系數(shù)據(jù)庫語言,對關(guān)系存儲模式進行信息的交互處理,再將結(jié)果以對象的方式返回給使用者。這種方式實現(xiàn)簡單,但確是以相對較低的執(zhí)行效率為代價。
第二種方式是開放關(guān)系數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)類型,使表中的屬性/值包含對象的指針,目的就是在關(guān)系表中構(gòu)建一種新的數(shù)據(jù)類型,對象的數(shù)據(jù)操作將在數(shù)據(jù)庫系統(tǒng)之外進行。簡單的說,就是修改現(xiàn)有的關(guān)系型數(shù)據(jù)庫,把關(guān)系型數(shù)據(jù)的結(jié)構(gòu)修改成能提供面向?qū)ο笫褂玫哪J健_@種方式避免了第一種模式在面向?qū)ο蠛完P(guān)系型數(shù)據(jù)庫之間轉(zhuǎn)換帶來的系統(tǒng)開銷,但在使用對象查詢過程中的功能受到一定的限制。
以上兩種方式,均是要求面向?qū)ο竽J脚c關(guān)系型模式相結(jié)合,其優(yōu)點在于,可以借助于關(guān)系型數(shù)據(jù)庫現(xiàn)有的成熟方式,與關(guān)系數(shù)據(jù)庫共享信息。缺點是由于這種模式,均用到中間轉(zhuǎn)換,將損失面向?qū)ο笞杂械男阅芊矫娴膬?yōu)勢。但數(shù)據(jù)廠商仍然抵擋不住面向?qū)ο竽J脚c關(guān)系模式相結(jié)合的優(yōu)勢,吸引著他們競相研究開發(fā)。如何在當前關(guān)系型數(shù)據(jù)庫的產(chǎn)品中加入面向?qū)ο蠹夹g(shù),即研發(fā)面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫已成為了數(shù)據(jù)庫廠商得以生存的競爭焦點。并且已經(jīng)有許多的關(guān)系數(shù)據(jù)庫廠商在此方面有了突破性的進展。例如,INGRE公司推出了NGRES Object Management Intelligent Database。HP公研發(fā)的IRIS,Oracle研發(fā)的ORCLE面向?qū)ο髷U充版本,SYBASE公司在其產(chǎn)品中,以觸發(fā)器及將方法作為數(shù)據(jù)庫的成分進行存儲來實現(xiàn)類似面向?qū)ο蟮墓δ堋?/p>
3 總結(jié)
盡管當前對面向?qū)ο蟮墓ぷ饕汛罅康纳钊氩煌膽妙I(lǐng)域,但面向?qū)ο髷?shù)據(jù)庫技術(shù)成熟的過程仍有更多的工作來完善、解決。無論是關(guān)系與對象相結(jié)合的數(shù)據(jù)庫模式還是面向?qū)ο蟮臄?shù)據(jù)庫模式,面向?qū)ο蟮姆绞胶头椒ㄊ瞧洳豢苫蛉钡摹D姆N模式更適合,更能滿足數(shù)據(jù)庫應用領(lǐng)域的需求,有待于在今后的實際應用中加以驗證。
參考文獻:
[1]杜文靜.面向?qū)ο髷?shù)據(jù)庫的探討[J].電腦報,2007,5.
[2]劉江楓.面向?qū)ο髷?shù)據(jù)庫技術(shù)及其前景分析[J].化學工程與裝備,2010,09.
[3]來羽,張華杰.面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的特點分析[J].河南科技,2010,09.
作者單位:黑龍江財經(jīng)學院,哈爾濱 150025;中國光大銀行黑龍江分行,哈爾濱 150001