面向對象數據庫(Object Oriented Databases)

前面說幾句費話。現在正在從事面向對象數據庫在國內的推廣工做,假設有興趣可以與我聯繫。

假設有不論什麼問題可以私信我,也可以到咱們站點上 面向對象數據庫交流社區 來向我提問,我必定以最快的速度解答。html

想把 面向對象數據庫交流社區 打形成爲國內最大的面向對象數據交流的社區,但願有興趣的與我共同經營這個社區。如下的譯文。


面向對象數據庫也被稱爲對象數據管理系統。對象數據庫存儲面向對象編程語言(如Smalltalk,C++,java等)中的對象而不僅像關係數據庫那樣存儲整數,字符串和實數等。

對象通常由下面幾部分構成:

--屬性:屬性量化對象的特徵,這些量有多是簡單的整數,字符串或者實數。也有多是一個複雜的對象。java


--方法:方法也一般被稱爲過程或者函數,方法規定了對象的行爲。

所以。對象包括可運行的代碼和數據。固然對象也有其它特徵,好比一個方法或者數據可否在對象之外獲取到。但是爲了咱們的文章簡單易懂並應用到面向對象數據庫中,在本文中咱們不考慮這些。另一個需要要說起的東西是「類」。數據庫

類在面向對象編程中用來規定一個對象包括哪些方法和數據。類就像對象的模板同樣。編程

類自己並不包括方法和數據,但規定了對象中要包括什麼方法和數據。在對象建立過程當中要用到類。在面向對象數據庫中類用來建立對象中沒有被存儲在數據庫中的部分(如對象的方法)。架構



與關係型數據庫的對照

關係型數據庫將數據存儲在包括行和列的二維的表格中。由於關係型數據庫表格被「格式化」了,因此數據不會有太多的反覆。併發

所有的列都依賴於主鍵(列中的惟一值)來識別這一列。編程語言

可以用特定列的特定值來獲取或者更改某一行的值。分佈式


爲了把對象放到關係表中,必實用字符串、整數、實數等簡單數據來描寫敘述這個類。函數

好比要描寫敘述飛機,飛機機翼會用一個獨立的表格來描寫敘述它的尺寸等特性,機身用另一個表描寫敘述。螺旋槳、輪胎等也用單獨的表。諸如此類。
把複雜的信息分解成簡單的信息要耗費勞動力,這裏必需要編碼代碼完畢。

對象持久化

在傳統的數據庫中。在程序中被操做的數據是暫時的,存儲在數據庫中的數據是持久化的(存儲在永久的存儲設備上)。在面向對象數據庫中。程序可以操做暫時數據和持久化後的數據。工具



什麼時候使用面向對象數據

假設程序操縱很是複雜的數據或者數據的相對關係比較複雜時使用面向對象的數據庫,特別是多對多的對象關係。

假設數據很是少有連接或者有大量數據時最好不要使用面向對象數據庫。

面向對象數據庫適用於:

--計算機輔助造型程序(計算機輔助軟件project、計算機輔助設計、計算機輔助製造)
--多媒體程序
--隨時間變化的項目project類軟件
--商貿軟件

面向對象數據庫優點

--對象不需要裝箱和拆箱操做,節省編程和運行時間。


--下降分頁
--易於導航
--更好的併發控制 - 對象的層次結構可能被鎖定。
--數據模型基於現實世界。
--在分佈式架構狀態下可以很是好的工做。


--假設程序也是面向對象的可以下降代碼量。

面向對象數據庫的劣勢

--假設數據及數據間的關係相對簡單則面向對象數據庫效率較低。
--關係表更簡單易懂。
--後期綁定可能拖慢訪問速度。
--關係數據庫有不少其它的工具。


--關係數據庫的標準更加穩定。
--RDBMS的服務和支持更加穩定,不需要更改。



ODBMS標準

--對象數據管理組(Object Data Management Group)
--對象數據庫標準ODM6.2.0(Object Database Standard ODM6.2.0)
--對象查詢語言(Object Query Language)
--對象查詢語言支持SQL92(OQL support of SQL92)

數據怎樣存儲

不一樣的數據庫提供商使用兩個主要的方法來存儲數據。
--每一個對象包括惟一的ID,並定義爲一個基本類的子類,用繼承的方法來肯定牲。
--用虛擬內存映射來存儲及管理對象。
傳輸數據是以對象爲基礎或者頁面(一般爲4K)爲基礎。



----文章原文:http://www.comptechdoc.org/ind ... .html。假設翻譯有誤。請指正。

此文章也在 http://ood.tson.com/article/9 刊載,歡迎評論。

相關文章
相關標籤/搜索