論物件導向的資料庫技術論文

來源:才華庫 2.01W

論文摘要:物件導向的資料庫極有可能是資料庫發展的方向,關係型資料庫已顯得力不從心,物件導向技術已經滲透到了資料庫領域,把物件導向的方法和資料庫技術結合起來可以使資料庫系統的分析、設計最大程度地與人們對客觀世界的認識相一致。物件導向資料庫的技術機理並不高深,但它的設計思想卻極有價值。

論物件導向的資料庫技術論文

論文關鍵詞:關,鍵,詞,資料庫,物件導向,技術

(JinchangMunicipalPublicSecurityBureauGansuJingchang737100)隨著應用的日趨複雜和智慧化,傳統的關係資料庫的缺點一點點的暴露出來,人們迫切希望產生一種新的資料庫解決方案來適應這些複雜需求。一種新的解決方案呼之欲出。而這個解決方案極有可能就是物件導向資料庫技術。物件導向資料庫的技術機理並不高深,但它的設計思想卻極有價值。在傳統的物件導嚮應用開發中,由於傳統的關係資料庫開發風格完全不同於物件導向風格,使得許多程式設計師難以從複雜的SQL程式設計中解脫出來(儘管已經有一些成熟的ORM技術框架,如Hibernate,但程式設計師仍需要做大量的資料庫程式碼工作),從而也無法從實質上提高工作效率。

1、物件導向資料庫技術概述

物件導向是當前計算機界關心的重點,物件導向是一種新的方法學,也是一種認知方法學。它是一種支援模組化設計和軟體重用的實際可行的程式設計方法,它把程式間的邏輯活動建立在物件間的訊息傳遞之上,且設計上更加符合現實世界,更加自然,所以物件導向方法得到了更廣泛的應用。

物件導向資料庫系統是為了滿足新的資料庫應用需要而產生的新一代資料庫系統。在資料庫中提供物件導向的技術是為了滿足特定應用的需要。隨著許多基本設計應用(如MACD和ECAD)中的資料庫向物件導向資料庫的過渡,物件導向思想也逐漸延伸到其它涉及複雜資料的應用中,其中包括輔助軟體工程(CASE)、計算機輔助印刷(CAP)和材料需求計劃(MRP)。這些應用如同設計應用一樣在程式設計方面和資料型別方面都是資料密集型的,它們需要識別於型別關係的儲存技術,並能對相近資料備份進行調整。

セ褂行磯嚶τ靡求多媒體資料庫。它們要求以整合方式和文字或圖形資訊一起處理關係資料,這些應用包括高階辦公室系統的其它文件管理系統。

ッ嫦蚨韻笫據庫從面向程式設計語言的擴充著手使之成為基於物件導向程式設計語言的物件導向資料庫。例如:ONTOS、ORION等,它們均是C++的擴充,熟悉C++的人均能很方便地掌握並使用這類系統。

物件導向資料庫研究的另一個進展是在現有關係資料庫中加入許多純物件導向資料庫的功能。在商業應用中對關係模型的物件導向擴充套件著重於效能優化,處理各種環境的物件的物理表示的優化和增加SQL模型以賦予物件導向特徵。如UNISQL、O2等,它們均具有關係資料庫的基本功能,採用類似於SQL的語言,使用者很容易掌握。

2.物件導向資料庫的優點

物件導向資料庫是資料庫技術與物件導向程式設計方法相結合的產物,由於同是物件導向方法學,所以其具有了所有物件導向的優點。同時,由於資料庫主要操作的是集合(而不是單個數據),所以其又具有自身的特點和優點。

(1)提高資料庫開發效率

由於物件導向本身的親和性,使得人們可以使用更自然的方式來開發資料庫,而不必像關係資料庫那樣考慮到方方面面諸如規範到第幾正規化等等問題,大大的提高了開發效率。同時,由於物件導向開發的流行,人們往往更熱衷於使用物件導向的方式思考問題,這也無形中提高了資料庫系統的開發效率。再有,應用於資料庫間的互動將變得更加直接和方便,因為加入應用也是物件導向的,那麼可以將物件導向資料庫中的物件直接對映到應用程式的物件中。比如當前J2EE開發中流行的EJB以及開源的Hibernate等框架技術就是在關係資料資料庫與物件導向間搭橋方面做了積極的工作。而對於物件導向資料庫來數,EJB和Hibernate等中間技術將顯得無用,人們可以直接將資料庫中的資訊轉換到基於物件導向技術應用程式的物件中,而且效率更高(因為無需中間層的轉化)。程式設計師可以徹底的從持久層複雜的開發邏輯中解放出來,投入跟為重要的業務邏輯開發中,而且再也不用寫複雜的SQL語句,因為應用中的程式設計和資料庫中的程式設計時一致的【1】。

(2)資料庫本身可以完成複雜的邏輯

由於使用了物件導向方法學,在資料庫中編寫複雜的邏輯變得簡單了,於是,人們可以在資料庫中加入複雜的邏輯,而且可以和在應用中新增的邏輯相互銜接。目前,主流資料庫都提供了過程化查詢語言,但畢竟還是過程化的',它天生就不如物件導向方法高效簡單,因此人們往往並不想使用過程化查詢語言實現太複雜的邏輯,因為它將導致開發和維護困難,提升成本。

在資料庫中使用資料庫查詢語言實現複雜的基於物件導向的業務邏輯是物件導向資料庫的一大亮點。這不僅使得程式的開發和維護變得簡單,而且執行效能也得到了提升(因為在資料中實現的邏輯總比在應用中實現的邏輯快那麼一兩步)。

(3)低冗餘性和高效性

在關係資料庫中,低冗餘和高效一直是魚和熊掌不可兼得的狀態。低冗餘往往會使得查詢困難並最終導致資料庫效率降低(因為將產生可觀的笛卡爾集或者生成複雜的查詢優化方案,從而降低效率)。而在物件導向資料庫中,查詢將變成對物件ID和訊息的傳遞(也就是方法呼叫),從而消除了大範圍的笛卡爾集帶來的困擾,提高資料庫的訪問效率。同時,由於物件導向的封裝性,使得物件導向資料庫在設計程式時天生就已經達到了相當於關係資料庫中的第三正規化的設計準則。因此物件導向的資料庫天生就是低冗餘的。

(4)提高軟體的可重用性

原因很簡單,因為物件導向的設計思想本來就要求你把業務邏輯封裝到一個個物件中,並通過給它們傳遞訊息呼叫業務邏輯計算。這樣,你就不得不首先把一些通用的業務邏輯設計在一個個類中,下次使用只需呼叫它們即可。同時,物件導向方法還有繼承該概念,繼承使得功能可以從一個類直接擴充套件到它的子類中。另外,多型,動態聯編等技術以及設計模式的應用使得程式碼的可複用性得到了最大限度的擴充套件【2】。

3.物件導向方法學在計算機領域中的應用

物件導向資料庫系統可以應用於複雜的諸如人工智慧等領域,也可以使用於傳統的企業級應用。總之,物件導向資料庫可以應用在所有關係資料庫能夠應用的地方,且在許多方面效能更高,比如人工智慧和其他較為複雜的應用中。物件導向資料庫現在已經存在一些實現,主要是三條路線:

(1)以關係資料庫和SQL為基礎的擴充套件關係模型

這種方式的優點是適宜於市場推廣,缺點是無法做到純粹的物件導向性。這個方式已經在各大主流資料庫總得到實現,如Oracle、DB2等。

(2)以物件導向程式設計語言為基礎

這種方式是以物件導向程式設計語言為基礎的,研究持久的程式設計語言。這種方式的優點是它是純粹的物件導向的,缺點是難以進行市場推廣。

(3)建立新的物件導向資料庫

這種方式已經有一些實現,如法國O2Technology公司的O2系統。優缺點與第二條路線一致,基於研究的目的,本文中的物件導向資料庫的簡易實現版本是以這種方式為基礎的。

4.物件導向技術和資料庫技術的結合沿著三種途徑發展【3】:

1)物件導向資料庫管理系統(OODBMS)

物件導向資料庫管理系統以一種物件導向語言為基礎,增加資料庫的功能,主要支援持久物件和實現資料共享。利用類來描述複雜物件,利用封裝方法來模擬物件行為,利用繼承性來實現物件的結構和方法的重用。但是這種純粹的物件導向資料庫管理系統不能支援SQL語言,不能和現有的資料庫結合起來,在擴充套件性和通用性方面受到限制。

2)物件關係資料庫管理系統(ORDBMS)

物件關係資料庫管理系統既支援SQL語句,也支援物件導向技術,實現了傳統資料庫技術和物件導向技術的完美結合。全球的資料庫生產商爭相研發這種資料庫產品,資料庫生產商競爭的一個焦點是如何在現有的資料庫中加入物件導向技術。

3)物件關係對映資料庫系統(ORMDBMS)

物件關係對映資料庫系統是在物件層和關係層之間建立一個對映層,使得資料來源中的關係資料能夠進入物件領域,並且作為物件供上層應用使用。

5、物件導向技術在資料庫中的實現

將物件導向技術應用到關係資料庫中可以有兩種方式:

一種方式是把物件導向技術中的物件作為關係資料庫系統中的一種新的資料模型。關係表中的屬性值包含物件指標,物件資料的操作在關係資料庫之外進行。把物件導向資料模型(ODM)和關係資料模型(RDM)結合起來,對關係資料庫管理系統進行擴充,但物件查詢功能受到一定的限制。

另一種方式是把物件導向介面新增在關係資料庫中,在關係資料庫系統中增加一個物件至關係轉換器,將上層的物件導向模式轉化為關係儲存模式,存放到關係資料庫中。這樣,在物件導向的資料庫中關係儲存模型位於底層,資料庫使用者可以利用標準的物件導向資料庫語言進行查詢處理,使用者輸入的物件導向資料庫語言被轉換成關係資料庫語言,從而對底層的關係儲存模式進行查詢等處理,同時將操作結果按照物件方式返回給使用者。這種實現方式使得資料庫管理系統在實現關係模型和物件導向模型之間的模型轉換時需要一定的開銷,執行效率比直接物件導向資料庫要低一些,但這種擴充方式實現比較簡單。下面主要介紹一下第二種方式是如何實現的:

物件導向技術通過對映介面和關係資料庫相結合,物件導向資料庫強調的是物件的屬性、方法和物件間的關係,設計這種型別的資料庫需要理解物件到關係資料庫表的對映方法。這種對映方法通過將物件類生成為SQL語言中的資料定義語言(DDL)來將物件轉換成一個好的概念層的資料模型(DDL)【4】。

6.結論

隨著計算機技術的飛速發展,現有的資料庫技術不能滿足計算機網路、多媒體技術、CAD/CASE等領域的需要,物件導向技術應用到現有的資料庫中應運而生。物件導向技術和資料庫技術結合的三種途徑以及物件導向技術應用到資料庫中的優勢,通過在關係資料庫中增加一個物件至關係轉換器,把物件導向介面新增到關係資料庫中來實現物件導向技術在關係資料庫中的應用。

參考文獻

1 Alex Kriegel and Boris 寶典[M].北京:電子工業出版社,2003. 1~200

2 Bruce king In Java 4 [M].北京:機械工業出版社,2006.1~600

熱門標籤