面向對象數據庫系統
面向對象數據庫系統(Object Oriented Data Base System,簡稱OODBS)是數據庫技術與面向對象程序設計方法相結合的產物。
對于OO數據模型和面向對象數據庫系統的研究主要體現在:研究以關系數據庫和SQL為基礎的擴展關系模型;以面向對象的程序設計語言為基礎,研究持久的程序設計語言,支持OO模型;建立新的面向對象數據庫系統,支持OO數據模型。
面向對象程序設計方法是一種支持模塊化設計和軟件重用的實際可行的編程方法。它把程序設計的主要活動集中在建立對象和對象之間的聯系(或通信)上,從而完成所需要的計算。一個面向對象的程序就是相互聯系(或通信)的對象集合。面向對象程序設計的基本思想是封裝和可擴展性。
面向對象數據庫系統支持面向對象數據模型(以下簡稱OO模型)。即面向對象數據庫系統是一個持久的、可共享的對象庫的存儲和管理者;而一個對象庫是由一個OO模型所定義的對象的集合體。
一個OO模型是用面向對象觀點來描述現實世界實體(對象)的邏輯組織、對象間限制、聯系等的模型。一系列面向對象核心概念構成了OO模型的基礎。概括起來,OO模型的核心概念有如下一些:
(1)對象(Object)與對象標識OID(Object IDentifier)
現實世界的任一實體都被統一地模型化為一個對象,每個對象有一個唯一的標識,稱為對象標識(OID)。
(2)封裝(Encapsulation)
每一個對象是其狀態與行為的封裝,其中狀態是該對象一系列屬性(Attribute)值的集合,而行為是在對象狀態上操作的集合,操作也稱為方法(Method)。
(3)類(C1ass)
共享同樣屬性和方法集的所有對象構成了一個對象類(簡稱類),一個對象是某一類的一個實例(instance)。
(4)類層次(結構)
在一個面向對象數據庫模式中,可以定義一個類(如C1)的子類(如C2),類Cl稱為類C2的超類(或父類)。子類(如C2)還可以再定義子類(如C3)。這樣,面向對象數據庫模式的一組類形成一個有限的層次結構,稱為類層次。
(5)消息(Message)
由于對象是封裝的,對象與外部的通信一般只能通過顯式的消息傳遞,即消息從外部傳送給對象,存取和調用對象中的屬性和方法,在內部執行所要求的操作,操作的結果仍以消息的形式返回。
OODB語言用于描述面向對象數據庫模式,說明并操縱類定義與對象實例。OODB語言主要包括對象定義語言(ODL)和對象操縱語言(OML),對象操縱語言中一個重要子集是對象查詢語言(OQL)。OODB語言一般應具備下述功能:
(1)類的定義與操縱
面向對象數據庫語言可以操縱類,包括定義、生成、存取、修改與撤銷類。其中類的定義包括定義類的屬性、操作特征、繼承性與約束等。
(2)操作/方法的定義
面向對象數據庫語言可用于對象操作/方法的定義與實現。在操作實現中,語言的命令可用于操作對象的局部數據結構。對象模型中的封裝性允許操作/方法由不同程序設計語言來實現,并且隱藏不同程序設計語言實現的事實。
(3)對象的操縱
面向對象數據庫語言可以用于操縱(即生成、存取。修改與刪除)實例對象。
目前,還沒有像SQL那樣的關于面向對象數據庫語言的標準,因此不同的OODBMS其具體的數據庫語言各不相同。
對象數據庫系統
對象-關系數據庫系統就是將關系數據庫系統與面向對象數據庫系統兩方面的特征相結合。 對象-關系數據庫系統除了具有原來關系數據庫的各種特點外,還應該提供以下特點:
(1)擴充數據類型,例如可以定義數組、向量、矩陣、集合等數據類型以及這些數據類型上的操作。
(2)支持復雜對象,即由多種基本數據類型或用戶自定義的數據類型構成的對象。
(3)支持繼承的概念。
(4)提供通用的規則系統,大大增強對象-關系數據庫的功能,使之具有主動數據庫和知識庫的特性。
對象數據庫 VS 關系數據庫
我們將對象數據庫管理系統(ODBMS)定義為一個集成了數據庫能力與面向對象編程語言能力的數據庫管理系統(DBMS),ODBMS使數據庫對象看起來像是已有的一個或多個程序設計語言中的程序設計語言以象。——Rick Cattell,OMG-93委員會主席。
ODBMS在多用戶客戶機/服務器環境中提供了持久性存儲器。ODBMS可以處理對象的并行訪問,提供鎖定和事務保護,保護對象存儲器免遭各種類型的威脅,照管像備份和恢復之類傳統任務。ODBMS這所以與關系數據庫不同,是因為ODBMS存儲的是對象,而不是表格。對象的引用通過持久性標識(PID)進行,PID可以獨一無二地識別各個對象,可以用來在對象之間建立標記和容器關系。ODBMS還加強了封裝,支持繼承。ODBMS結合了對象屬性和傳統的DBMS功能,如鎖定、保護、事務處理、查詢、版式本、并發和持久性。
ODBMS不是利用分離的語言(如SQL)定義、檢索和處理數據,而是利用類定義和傳統的面向對象的程序語言(通常是C++、SmallTalk和java語言)構造來定義和訪問數據。ODBMS只來過是存儲器內語言數據結構的多用戶、持久性擴展。換句話說,客戶就是C++或是Java程序,服務器就是ODBMS-——沒有像SQL和RPC這樣的可視中間對象。ODBMS將數據庫能力直接集成進語言。
ODBMS的價值。很顯然,最好是以自然的形式存儲那些對象,而不是將數據修飾得光光滑滑或撕得七零八落之后放進關系表格中。
對于那些數據復雜難以在表格里簡單排列的用戶來說,ODBMS特別適合。ODBMS曾經長期是學者和OO研究人員極為感興趣的領域。最早的商品化ODBMS出現在1986年,是Servio公司(現在的GemStone公司)和Ontos公司推出的。后來(九十年代)Object Design(ODI)、Versant、Objectivity、O2 Technology、Poet、Ibex、UniSQL和ADB MATISSE等公司也加入了這個開拓行列。這些ODBMS廠商首先瞄準了那些復雜數據結構和長命期事務處理的應用程序——包括計算機輔助設計、CASE和智能辦公室等。隨著多媒體、群件、公布式對象和萬維網技術的出現,ODBMS與那些深奧難懂的特性現在變成了客戶機/服務器系統的主流要求。ODBMS技術填補關系數據庫最弱的那些空隙——復雜數據、版式本和長生命期事務、持久性對象存儲、繼承和用戶定義的數據類型等等。
以下是ODBMS廠商開拓的各個特性:
1、自由創建新的信息類型。
2、快速存取。
3、組合結構的靈活視圖 。
4、與面向對象的程序語言緊密集成。
5、利用多繼承支持可定制的信息結構。
6、支持版本事務、嵌套事務和長生命期事務。
7、分布式對象儲庫。
8、支持復合對象的生命期管理。
新聞熱點
疑難解答