面向對象數據庫的產生主要是為了解決“阻抗失配”,它強調高級程序設計語言與數據庫的無縫連接。什么叫無縫連接,假設你 不用數據庫,用C語言編了一個程序,你可以不需要(或基本不需要)
任何改動就將它作用於數據庫,即你可以用C語言透明訪問數據庫,就好象數據庫根本不存在一樣,所以也有人把面向對象數據庫理解為語言的持久化。怎么樣,聽起來挺玄的吧,可是我們自己開
發的數據庫系統——OSCAR早就做到了這一點。 由於實現了無縫連接,使得面向對象數據庫能夠支持非常復雜的數據模型,從而特別適用於工程設計領域。打個比方,想象CAD中的一個復雜部件,
它可能由成千上萬個不同的零件組成,要是用關系模型中的表來表達,得用多少張表啊?而描述這種復雜的部件,正好是高級程序設計語言的強項。
此外,面向對象數據庫還吸收了面向對象程序設計語言的思想,如支持類、方法、繼承等概念。 面向對象數據庫很好地解決了阻抗失配的問題,但它也有缺點。它的缺點正好是關系數據庫的強項
,由於模型較為復雜(而且缺乏數學基礎),使得很多系統管理功能難以實現(如權限管理),也不具備SQL處理集合數據的強大能力。