db4o, 看上去很美
生活随笔
收集整理的這篇文章主要介紹了
db4o, 看上去很美
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
由于厭煩了手寫Sql,在幾個(gè)小項(xiàng)目中嘗試著使用了Db4O.DAL層寫起來(lái)是爽了,但是,還是有很多其它東西會(huì)絆你的腳。
沒有主鍵的概念(因?yàn)閷?duì)象的內(nèi)存地址,或者引用就能標(biāo)志一個(gè)對(duì)象了).因而外界想指向一個(gè)具體的對(duì)象就比較困難(比如本頁(yè)的url里的1079505). 激活/保存層次的問(wèn)題.獲取一個(gè)對(duì)象,它的字段引用了其它對(duì)象,那么到底激活多少層次合適?保存時(shí)也是如此.層次深了傷性能,層次淺了用著不方便(動(dòng)不動(dòng)就是Null reference). 對(duì)象引用問(wèn)題.RDBMS里我們能很輕易地明白一個(gè)引用指向的是對(duì)象的淺拷貝(因?yàn)橹灰昧艘粋€(gè)主鍵).而一旦與內(nèi)存中的對(duì)象勾搭起來(lái),那深拷貝和淺拷貝就不容易區(qū)分了,很難說(shuō)清我刪除了一個(gè)對(duì)象會(huì)不會(huì)讓某個(gè)其它對(duì)象的某個(gè)字段變成null(同樣,修改對(duì)象也不容易看清其影響范圍). 對(duì)象生存期問(wèn)題.這是個(gè)看起來(lái)很奇怪甚至愚蠢的問(wèn)題:沒有被其它對(duì)象引用的對(duì)象是否應(yīng)該存在于數(shù)據(jù)庫(kù)中?換句話說(shuō),ODBMS要不要擁有GC功能?如果有GC功能的話,能夠避免誤刪除被其它對(duì)象引用的對(duì)象,而且能夠清除不再需要的數(shù)據(jù).但是相應(yīng)地,它讓開發(fā)必須考慮更多的問(wèn)題,保證每個(gè)對(duì)象的靜態(tài)可達(dá)性. 數(shù)據(jù)庫(kù)版本進(jìn)化難以跟蹤.由于數(shù)據(jù)庫(kù)的結(jié)構(gòu)與對(duì)象的結(jié)構(gòu)基本一致,對(duì)對(duì)象模型的任何修改都會(huì)導(dǎo)致數(shù)據(jù)庫(kù)結(jié)構(gòu)的變化,而這個(gè)過(guò)程中原有數(shù)據(jù)如何處理必須加以特殊處理(Db4O里提供了字段改名之類的api,但是至少我很討厭每修改一次對(duì)象就要寫幾行這樣的代碼).換句話說(shuō),我覺得數(shù)據(jù)庫(kù)和對(duì)象之間耦合嚴(yán)重了,不利于修改. 沒有類似Sql的成熟且流行的查詢語(yǔ)言(或者你必須學(xué)習(xí)一種新語(yǔ)言)進(jìn)行數(shù)據(jù)管理.很多時(shí)候,直接操作數(shù)據(jù)庫(kù)也是必須的,這時(shí)你會(huì)非常想念Sql. 總體而言,對(duì)于熟悉關(guān)系數(shù)據(jù)庫(kù)及基于關(guān)系數(shù)據(jù)庫(kù)進(jìn)行軟件開發(fā)的人而言,對(duì)象數(shù)據(jù)庫(kù)并不僅僅意味著換個(gè)存儲(chǔ)方式.要真正高效地使用它,可能需要很長(zhǎng)時(shí)間的摸索和適應(yīng).對(duì)我而言,Db4O是看起來(lái)很美,用起來(lái)很玄 :)
轉(zhuǎn)載于:https://www.cnblogs.com/deerchao/archive/2008/06/12/1079505.html
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的db4o, 看上去很美的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 设置ComboBox控件的边框颜色.
- 下一篇: 无法在 COM+ 目录中安装和配置程序集