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