面向對象數據庫系統的特征
1989年12月,在第一屆演繹、面向對象數據庫國際會議上,以Malcolm Atkinson , Francois Bancilhon , David Dewitt等人為代表的一批OODB專家發表了著名的“面向對象的數據庫系統宣言”,提出了OODBS應該具備的主要性質和特征。這些特征分為三組:必備的(被稱作面向對象的數據庫系統所必須滿足的特性)、可選的(為了使系統更完善可添加的而非必備的特性)和開放的(設計人員可以選擇的特性)。
其中必備的特征包括:
1)復雜對象:對簡單對象運用各種構造符即可得到復雜對象。
2)對象標識:在帶對象標識的模型中,對象獨立于它的值而存在,由此就有了兩個對象等價的概念:兩個對象可能相同(它們是同一個對象),也可能相等(它們有同樣的值)。
3)封裝性:封裝性的概念來自兩個方面,一是需要明確區分操作的說明和實現;二是模塊化的需要。封裝提供了一種邏輯數據獨立性的形式,能夠在不改變使用類型的程序的情況下改變類型的實現。讓操作可見而將數據和操作的實現隱藏在對象中,就可以獲得適當的封裝。
4)類型和類:對應了兩大類面向對象的系統:支持類概念的系統和支持類型概念的系統。類型和類具有相同的說明方式,類型的實例是靜態說明的,而類的說明是動態產生的,它們都對應了抽象數據類型。
5)類和類型的層次結構:類和類型的層次結構可以導致類和類型的繼承機制,在面向對象的系統中,至少存在有四種繼承:替代繼承、包含繼承、限制繼承和特化繼承。
6)復載、過載和滯后聯編:按照類型的不同重新定義每個類型的操作的實現叫做復載(Overriding),用同一個名字來表示不同的實現叫做過載(Overloading),它們都是由于多態性(Polymorphism)導致了同一方法名對應不同的對象而產生的調用不同的程序體的現象。為了實現這種功能,系統不能在編譯時就把操作名聯編到程序上,而要等到運行時才進行解釋,這個推遲的轉換叫做滯后聯編(Late Binding)或動態聯編(Dynamic Binding)。
7)計算完備性:就是能夠用數據庫系統的數據操縱語言(DML)表達任何可計算的功能。一般情況下,計算完備性可以通過與現有程序設計語言的合理連接來實現。
8)可擴充性:是指用戶在數據庫系統帶有的一組預先定義類型的基礎上所具有的可定義新類型的手段,并且系統定義的類型和用戶定義的類型在使用上沒有區別。
9)持久性:持久性是指程序員保證他的數據在進程的執行中存在的能力。
10)輔存管理:輔存管理是數據庫管理系統的一個經典特征。它通常有一組方法支持,包括索引管理、數據聚集、數據緩沖、存取路徑選擇及查詢優化。
11)并發性:并發性是指數據庫中的對象可被多個用戶共享而不影響其一致性和完整性,并發性保證了同時在數據庫上工作的多個用戶之間的和諧共存。
12)恢復:恢復是指在硬件和軟件發生故障時,數據庫具有的能夠使它返回到數據的某種相關狀態的能力。
13)即席查詢功能:就是數據庫提供的一種高級的(即簡明地表示重要的查詢)、有效的(即查詢的形式應該是進行過查詢優化的)和與應用無關的(即它是獨立于用戶的特殊應用的)查詢功能。
可選的特性有:多重繼承性、類型檢查和類型推理、分布、設計事務處理和版本等五個方面。
開放的特性是程序設計范例、表示系統、類型系統和一致性。
面向對象數據庫系統的其他定義
Rainer Unland在Francois Bancilho的基礎上作了進一步的補充,他指出:“OODBS除了須滿足以上所定義的準則外,還必須滿足非傳統應用領域所提出的一些需求/特征,例如版本管理和可擴充的事務模型等等。
Wan Kim對OODBS的定義與他們的定義基本類似,他認為“一個數據庫系統可以稱為面向對象數據庫系統,必須滿足以下兩個條件:支持核心的面向對象數據模型;借助擴充/修改傳統數據庫的語義,使之與核心的面向對象數據模型的語義一致,以支持傳統數據庫系統中所有的數據庫特征!辈⒅赋觯骸懊嫦驅ο髷祿䦷煜到y是一個面向對象數據庫的永久、共享存貯器和管理程序;面向對象數據庫是由面向對象數據模型定義的對象集合,該集合中的對象反映了面向對象程序設計所支持的對象語義。