簡介
面向對象資料庫管理系統(OODBMS,object-oriented database management system)是支持將數據當作對象來模擬和創造的一種資料庫管理系統。它包括對對象類的支持以及對子類及其對象對類特性和方法的繼承的支持。現在,由什麼組成OODBMS的標準尚未被廣泛認同,並且OODBMS產品被認為尚處於初期。其間,與對象相關的資料庫管理系統(ORDBMS),有種觀念是面向對象資料庫概念可以添加到關係資料庫上,這一觀念在可利用的產品中更為普遍。面向對象資料庫界面標準被產業群體發展,成為對象數據管理組(ODMG)。
對象管理組(OMG)已經被定為網路中系統之間的面向對象數據的中間界面。
定義
在《面向對象的資料庫聲明》中,Malcolm Atkinson和其他作者對OODBMS的定義如下:
面向對象的資料庫系統必須滿足兩項標準:它必須是一個資料庫管理系統,並且必須是面向對象的系統,例如在儘可能的範圍內它必須與當前的面向對象的程式語言相兼容。第一個標準轉換為五個特徵:持續性、二級存儲管理、同步性、防禦性和一個特定詢問工具。第二個標準轉換為八個特性:複雜的對象、對象一致性、封裝、類型、繼承性、遲約束、可延長性和計算的完全性。
開發階段
資料庫管理系統的開發須經過需求分析和系統設計兩個階段。在完成了需求分析、進入設計階段時,通常要進行資料庫的設計,資料庫設計的好壞直接關係到系統後期的開發。傳統需求分析是用數據流圖,而資料庫的設計是用實體-關係模型方法(E-R方法),需求分析者和資料庫設計者對套用理解很難達成一致。如果在需求分析階段採用面向對象的分析方法,資料庫設計也採用面向對象的設計方法,則需求分析階段的對象模型可以很自然地轉為資料庫的結構。
一個資料庫系統要成為面向對象資料庫系統,必須具備面向對象系統的特徵及其資料庫的特徵,支持核心的面向對象數據模型以及擴充 修改傳統資料庫的語義,使之與核心的面向對象的數據模型取得一致。面向對象數據模型是構成面向對象資料庫結構的基礎,面向對象的資料庫管理系統設計的關健是其新型的數據模型對象即面向對象數據模型,以及數據模型向資料庫結構的轉化。
面向對象的數據模型
對象、類及繼承性構成了面向對象數據模型結構特性的基礎,具體有如下的含義:
(1)對象是數據結構和操作的最基本的單位。
(2)每個對象都具有由系統提供的唯一的、可識別的值
OID(對象識別符)。
(4)類與類之間通過繼承而互相聯繫,通過
超類與子類關係還可構成類層次結構。
(5)類定義是說明資料庫模式的機制,資料庫模式包含特定套用所定義的全部類,類定義包含了繼承關係和結構關係,其中後者相當於
E-R模型。
(6)完全的資料庫模式可包含一個或多個類層次及一個或多個結構關係,就某個模式描述則涉及到某些類的實例變數。
(7)類定義可包含系統所定義或用戶定義的實例變數,其類型可與類相一致。
需要說明的是,對象數據模型的結構具有很強的開放性和可擴充性,理由是其資料庫模型可通過定義新類而獲得動態擴充,同時可擴充性還指定義或增加新的數據類型的共同的能力,包括在常規的資料庫管理系統中所不能管理的類型,並可通過增加包括表示與操縱非傳統數據類型的結構與操作的新類來實現對非結構化數據的管理。
事實上,面向對象數據模型是對系統進行數據分析時,將欲抽取的事物、概念分解成一個個獨立的、可以區分的事物,再是套上對象之間的關係而構成的,包括領域需求分析和建立模型兩個主要過程,其操作的基礎是訊息的傳遞。
對象數據模型向資料庫結構的轉換
基於面向對象技術的資料庫系統是由若干個對象和這些對象間的相互作用構成,其中對象由數據和操作兩部分組成,對象具有自主性、封裝性和動態性。將面向對象技術套用到軟體工程的各個階段,其實質就是尋找對象及各對象間的相互作用關係。在需求分析階段,面向對象分析是對真實世界對象建模,其根本出發點是站在套用的角度對問題域進行刻畫和描述,這樣有利於對問題的理解。需求分析階段的結果是:問題陳述+對象模型+動態模型+功能模型。設計階段是對原對象模型進一步描述,此階段可用面向對象方法實現資料庫的設計。基於面向對象技術的資料庫設計中的對象數據模型與資料庫管理系統中的
外模式和概念模式相對應,因而可引入外對象模型和概念對象模型。不同許可權用戶所看到的外對象模型不同,但概念對象模型在全局上是一致的。
對象數據模型與資料庫管理系統中的表之間有著直接映射的關係。將對象數據模型轉化為表結構時,必須考慮完整性約束和範式約束,以反映表之間的聯繫。將對象數據模型映射為表,可用以下幾個步驟來實施:
(1)將單個對象映射為表;
(2)將對象間的二元關聯映射為表;
(3)將對象間的聚集關係映射為表;
(4)將對象間的繼承關係映射為表;
(5)將三元關聯映射為表。
面向對象資料庫管理系統的構造
能夠自然地表現複雜數據模型的
OOP技術可以提高套用系統的統一性。越來越複雜化的系統期待著高效率、短時間內就可以構造出的環境。比如說,我們需要在短期內構造出某單位的含有圖像和語音處理的人事資料庫管理系統。毫無疑問,採用傳統系統開發方式很難達到這一要求。但是,如果假設有關人事管理的基本數據系統、聲音系統、圖像系統已經存在,那么可以簡單地在一個視窗上定義這個相對複雜的人事資料庫管理系統。於是面向對象的資料庫管理系統作為不可缺少的系統引起人們的注目。
必須指出,一個OODBMS自身就是一個
對象。而它又是由若干個具有完全相對獨立功能的對象以及各對象間的協調關係所構成。一個OODBMS的製作過程可以用下圖簡單地描述。
由圖可以看出,OODBMS的設計與實現其關鍵就在於對象的製作。而對象的製作除了要配備相應的工具和支持環境外,一個最大的問題仍然是從錯綜複雜的數據關係中抽象出對象,並且在作為最小知識單元的基礎上用面向對象的程式設計語言加以實現。 面向對象的編程技術並不是一個新概念。但是,只是在當數據關係變得相當複雜的多媒體時代,在開發周期要求短、說明書變化多的情況下,在處理大量信息的領域裡才充分顯示了它的魅力,並且有著主宰
DBMS的開發領域的傾向。但是,一個完備的開發環境包括對作成系統的調試問題,還有待於進一步的研究。