就數據庫的使用而言,過去十年是ORM的時代,數百個競爭者將我們的對象圖保存在普通的老式RMDBS中。現在我們似乎正在見證面向文檔的數據庫時代的到來。 Thesedatabases針對無模式文檔進行了高度優化,但對於並行擴展和查詢集羣的能力也非常有吸引力。面向文檔的數據庫是否比關係數據庫更適合持久化對象?
面向對象的數據庫在面向對象的設計中也具有優於RDBMS的優點。由於這些表是無模式的,因此可以將屬於不同類的對象並排存儲在繼承層次結構中。此外,隨着領域模型的變化,只要代碼能夠應對從舊版本的領域類獲取對象,就可以避免在每次更改時遷移整個數據庫。
另一方面,面向文檔的數據庫的性能優勢主要表現在存儲更深的文檔時。在面向對象的術語中,由其他類組成的類,例如博客文章及其評論。在大多數我可以想到的例子中,比如博客,讀取訪問的好處似乎被每次發表新評論時必須撰寫整篇博客帖子「文檔」的懲罰所抵消添加。
在我看來,面向對象的數據庫可以爲面向對象的系統帶來顯着的好處,如果需要極其謹慎地組織深度圖中的對象,以優化數據的讀寫方式,但這意味着知道最前面的用例。在現實世界中,我們通常不知道,直到我們實際上有一個我們可以描述的實時實現。
那麼關係型和文檔型數據庫的情況就是波動和環島?我對人們的意見和建議感興趣,特別是如果任何人在面向文檔的數據庫上構建任何重要的應用程序。
感謝您的支持。我正在進行MongoDB談話,並且發言人對關於關係和基於文檔的比較問題不太瞭解。這個答案,特別是標籤更新示例非常有用。 – Domenic 2011-05-25 23:40:22