【软件工程】实体类的持久性
實(shí)體類
實(shí)體類表示應(yīng)用程序中的持久數(shù)據(jù)庫對(duì)象。它不是數(shù)據(jù)庫中的持久類。
稱它們持久的原因是在應(yīng)用程序終止之前,實(shí)體對(duì)象的最新映射會(huì)持久保存在數(shù)據(jù)庫中。
如此,同一個(gè)應(yīng)用程序或者其他應(yīng)用程序的后續(xù)活動(dòng)就可以再次獲取這些實(shí)體對(duì)象,且只需要從數(shù)據(jù)庫中重新裝載實(shí)體對(duì)象到程序內(nèi)存中即可。
應(yīng)用程序與持久數(shù)據(jù)庫模型的關(guān)聯(lián)
下圖表示了PCBMER體系結(jié)構(gòu)框架中的向下依賴原則(DDP)擴(kuò)展了應(yīng)用程序與持久數(shù)據(jù)庫之間的通信。
資源子系統(tǒng)專門負(fù)責(zé)與數(shù)據(jù)庫通信。所有來自應(yīng)用程序的SQL查詢和對(duì)存儲(chǔ)過程的調(diào)用由資源類產(chǎn)生并傳遞給數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器返回所有的數(shù)據(jù)和結(jié)果在傳遞到實(shí)體子系統(tǒng)之前首先要傳遞到資源類。
實(shí)體子系統(tǒng)表示應(yīng)用程序內(nèi)存中的業(yè)務(wù)對(duì)象,必須仔細(xì)定義業(yè)務(wù)對(duì)象與對(duì)應(yīng)數(shù)據(jù)庫表記錄之間的映射規(guī)則。
映射規(guī)則由中介者子系統(tǒng)使用,中介者負(fù)責(zé)管理應(yīng)用程序的內(nèi)存以及對(duì)象在內(nèi)存與數(shù)據(jù)庫之間的人和移動(dòng)。也就是說,當(dāng)控制類需要訪問一個(gè)業(yè)務(wù)對(duì)象而事先沒有該對(duì)象的句柄(引用)時(shí),中介者子系統(tǒng)就是調(diào)用的第一個(gè)端口。這也意味著中介者子系統(tǒng)必須管理執(zhí)行數(shù)據(jù)庫訪問和修改的業(yè)務(wù)事務(wù)。
O-R映射的困難性
應(yīng)用程序與數(shù)據(jù)庫之間的映射是復(fù)雜的,主要有兩方面的原因。
原因一是數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)處理不了面向?qū)ο蠓盒?#xff0c;實(shí)際上是非面向?qū)ο蠼Y(jié)構(gòu)(通常是關(guān)系表)到實(shí)體子系統(tǒng)類的轉(zhuǎn)換。即使目標(biāo)數(shù)據(jù)庫就是一個(gè)對(duì)象數(shù)據(jù)庫,數(shù)據(jù)庫的特性也使得這個(gè)轉(zhuǎn)換需要經(jīng)過仔細(xì)的考慮。
原因二是數(shù)據(jù)庫幾乎都不是為單個(gè)應(yīng)用程序設(shè)計(jì)的,需要能滿足所有應(yīng)用程序的最優(yōu)數(shù)據(jù)庫設(shè)計(jì)而不僅僅是只針對(duì)所考慮的應(yīng)用程序。所有與該數(shù)據(jù)庫相關(guān)的應(yīng)用程序具有與它們一致的數(shù)據(jù)庫結(jié)構(gòu)。數(shù)據(jù)庫設(shè)計(jì)人員應(yīng)該考慮到未來,預(yù)測(cè)將來的應(yīng)用程序?qū)?shù)據(jù)庫的需求,并設(shè)計(jì)出滿足這些需求的數(shù)據(jù)庫。
總結(jié)
以上是生活随笔為你收集整理的【软件工程】实体类的持久性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 到天宫做客(洛谷P1178题题解,Jav
- 下一篇: 【软件工程】构件化业务模型CBM