對象持久層的設計 對象持久層的設計

對象持久層的設計

  • 期刊名字:鹽城工學(xué)院學(xué)報(自然科學(xué)版)
  • 文件大?。?06kb
  • 論文作者:衡冬梅,唐擁政,朱躍龍
  • 作者單位:河海大學(xué),鹽城工學(xué)院
  • 更新時(shí)間:2020-11-03
  • 下載次數:次
論文簡(jiǎn)介

第18卷第3期鹽城工學(xué)院學(xué)報(自然科學(xué)版)Vol. 18 No. 32005年9月Journal of Y ancheng Institute of Technology( Natural Science)Jun.2005對象持久層的設計”衡冬梅',唐擁政”,朱躍龍'(1.河海大學(xué)計算機及信息工程學(xué)院,江蘇南京210098;2. 鹽城工學(xué)院現代教育技術(shù)中心,江蘇鹽城224003)摘要:描述了面向對 象應用與關(guān)系數據庫之間對象持久層的設計,提出了針對基本維護性數據的改進(jìn)持久層性能的方案,并分析了這種方案的可行性。關(guān)鍵詞:持久層,性能.緩存鏡像表中圖分類(lèi)號:TP311文獻標識碼:A文章編號:1671一5322(2005)03- 0045-04面向對象的數據庫應用開(kāi)發(fā)中一般有兩種策.系統稍慢.因此本文主要討論如何對持久層進(jìn)行略,即基于面向對象的數據庫的開(kāi)發(fā)和基于關(guān)系合理設計來(lái)提高性能。數據庫的開(kāi)發(fā)凹。由于面向對象的數據庫技術(shù)還對象持久層的框架設計不成熟,實(shí)際開(kāi)發(fā)中大多還是采用基于關(guān)系數據庫的策略。這樣,就必須用持久層[2~8]實(shí)現面向持久化層實(shí)際.上就是封裝了對象持久化功能對象數據庫的操作,以處理關(guān)系數據庫中各個(gè)表的一組類(lèi)。目前較為流行的持久層框架有To-之間的錯綜復雜的關(guān)聯(lián)關(guān)系。pLink ,Castor , OJB, Hibernate等,本文中設計的對象持久層的功能實(shí)現并不復雜,關(guān)鍵在于持久化層主要參考輕量級持久化框架Hibernate,建立對象模型和關(guān)系模型之間的映射和查詢(xún)轉實(shí)現對象持久化的基本功能,如類(lèi)到數據庫表的換,從設計模式和持久化框架不同的側面來(lái)解決映射,還提供數據查詢(xún)和獲取數據的方法,該持久這個(gè)問(wèn)題中]。對象持久層在實(shí)際應用中的難點(diǎn)在層的設計包含了6個(gè)大類(lèi)。在表1中對這6個(gè)大于如何保證系統的性能,因為持久層在提高應用類(lèi)功能做了具體描述。系統的可維護性、可擴展性和可移植性的同時(shí),也.使用該持久層時(shí),應用程序的程序員只需要存在這樣的問(wèn)題:對應用系統的性能有所影響,存知道PersistentTransaction, PersistentBroker提取數據時(shí)速度與效率會(huì )比原先直接使用SQL的供的接口就可以了。表1持久層類(lèi)的描述Table 1 Description of the class of Persistent LayerPersistentObject 封裝了使單個(gè)對象持久化所必須的行為,所有需要持久化的PersistentObject對象都要根據Persistent()bject的Operator的方法規則重載操作符。PersistentTransaction封裝的對多個(gè)對象持久化的行為,包括多個(gè)對象的存Persis tentT ransaction儲、更新、刪除;并且封裝了數據庫事務(wù)操作的所需的行為。PersistentBroker是需要持久化的對象和持久化機制之間的連接,處理對象和PersistentBroker持久化機制之間的通信,提供存儲,更新,刪除,恢復等操作給用戶(hù),它是用戶(hù)和持久化機制之間的橋梁。ClassMap .ClassMap是映射類(lèi),它的功能中國煤化工干奉中的庫表。Sql類(lèi)是封裝了寫(xiě)庫的sql語(yǔ)言更好的體現程序Sql類(lèi)面向對象的特點(diǎn),且模塊化程IHCNMHGPersis tentMechanimPersistentMechanim封裝了對持久化機制的操作方法收稿日期:2005-07-11作者衙?衡冬梅(1981-),女,江蘇建湖縣人,河海大學(xué)計算機及信息工程學(xué)院碩士研究生。46●鹽城工學(xué)院學(xué)報(自然科學(xué)版)第18卷Persistant Transactlonfprocess Thans action()◆retry()◆addTransactionIOadds aveObJectso1 addRetrlevaObjectso1... addUpdateObjects(rollback0process by1..11ParsistentObjectpersistentBrokerintCName : String電ng aveObjectoprocoss byClassMapolaClassPersistent: Bool process by. deleteObjectoIsOblectPersistent : 30011.. 7 VretrieveObjocto正AtribureMapoTimeStamp : time◆updateObjocto◆TableMapO. procossTra insactlonooperator0proces: Sql01..10..1creat 110m8ql,Insorto. update(. 、connect0...PersistantMecharismBbconnoction9DBnameG buser| Opas swordOopen(圖1持久化層的框架設計Fig. 1 The design of the framework of Persistent Layer在ORM模式下,這兩個(gè)表映射為Employ-eeEntity員工類(lèi)與DepartmentEntity部門(mén)類(lèi)。當2持久層性能優(yōu)化Retrieve到員工類(lèi)的一個(gè)員工對象employeel后,如要求顯示部門(mén)名,就需要DepartmentEntity2.1 緩存鏡像表的提出在一個(gè)公司信息管理系統中,員工表-部門(mén)表去Retrieve對應的部門(mén)departmentl,通過(guò)使用是關(guān)聯(lián)表,員工表是DepartmentID關(guān)聯(lián)部門(mén)表departmentl的Name屬性顯示部門(mén)名。這個(gè)過(guò)的主鍵。如圖2所示。要求:顯示員工名時(shí),顯示.程中進(jìn)行了兩次數據庫訪(fǎng)問(wèn),假設此員工表有5個(gè)關(guān)聯(lián)的外鍵.那么一個(gè)員工的顯示,將進(jìn)行6次數據訪(fǎng)問(wèn),則數據庫訪(fǎng)問(wèn)的性能大打折扣。EmployeeDepartment對于這種情況,現有的持久層中的解決方案IDK是:在XML中配置5個(gè)one-to-many的映射N(xiāo)uneName關(guān)系,然后采用非Lazyloading(延遲加載)的方DepartmentID PK式進(jìn)行-次性讀取,這樣就把6次的數據訪(fǎng)問(wèn)一次性執行了,但如果有N個(gè)人同時(shí)進(jìn)行這樣的操表2員工表-部門(mén)表中國煤化工常大,達到NX6次。Table 2 Employee- departmentMYHCNMH G可采用另一種更好的此員工所屬部門(mén)名稱(chēng)。在傳統非ORM模式下,方式解決。我們可以把這個(gè)部門(mén)表的內容放到緩可采用Select語(yǔ)句來(lái)讀取.這種非ORM模式開(kāi)存里,形成一個(gè)“緩存鏡像表”,即數據庫中實(shí)際表發(fā)的系統,系統擴展性、數據庫移植性都比較差、的一個(gè)鏡像,實(shí)時(shí)保持與實(shí)際表的同步,判斷如開(kāi)發(fā)效率質(zhì)月數據下:第3期衡冬梅等:對象持久層的設計if(緩存中鏡像表存在)DeleteCriteria._ ISaveInCache" ) >從緩存直接讀取;< summary>else用于判斷刪除操作是否要保存在緩存{從數據庫讀取;false:不保存在緩存中。則每次都從建立緩存鏡像表,把數據庫中的數據放數據庫讀取,為默認值到緩存中,true :保存到緩存中,如果緩存中存在這樣的方式可以減少很多的數據訪(fǎng)問(wèn),就拿就直接從緩存中讀取,對于基本數據建議使用此上面的例子來(lái)說(shuō),在第一個(gè)人進(jìn)行了6次訪(fǎng)問(wèn)后,功能。對于頻繁操作數據不推薦.這會(huì )導致大量以后的N個(gè)人執行,只要執行N次數據訪(fǎng)問(wèn)了,內存被占速度將會(huì )有一個(gè)突破性的提高。對于這種“緩存鏡像表”的可行性我們先從數.同樣的據庫數據來(lái)分析。一個(gè)系統將包括很多的數據,< member name = "C: PersistenceLayer. In-我們可以對這些數據分一下類(lèi):sertCriteria. _ IsSaveInCache"> 用于判斷插入操(1)維護型數據:這是指那些在系統中的基本作是否要保存在緩存.數據,比如前面的部門(mén)類(lèi)型、客戶(hù)類(lèi)型、付款方式、member name = " C: PersistenceLayer.結算方式、銷(xiāo)售類(lèi)型、貨幣種類(lèi)等等,這些數據存UpdateCriteria. IsSaveInCache">用于判斷更新在的共同點(diǎn)是:數據量小、字段少、使用頻率高、維操作是否要保存在緩存.護少。因此,具有這些特點(diǎn)的數據,我們就非常有在這個(gè)持久層中有個(gè)靜態(tài)類(lèi),它的ArrayList理由放到內存中緩存起來(lái)。(2)操作型數據:這種數據的特點(diǎn)是數據量比里存放各種“緩存鏡像表”的“鏡像DataTable”,較大,字段也比較多,更改頻繁,比如員工、客戶(hù)等在進(jìn)行Retrieve()時(shí),先判斷此ArrarList中是否存在此實(shí)體的“鏡像”.如果有的話(huà),則直接從此信息,不適合用到內存中。(3)日志型數據:這種數據數據量更多,比如“鏡像DataTable”中Retrieve()出來(lái), 還有Re-trieveCriteira(獲取標準)時(shí),會(huì )從此“鏡像DataT-訂單、訂單明細、操作記錄等,更不合適。able"中使用Select符合條件的,生成新的“鏡像因此該方案主要是考慮“維護型數據”。DataTable”返回出來(lái)。實(shí)體在進(jìn)行Save().De-2.3 緩存鏡像表的可操作性分析在可行性分析后,我們要考慮,在實(shí)際操作起lete()和Update操作時(shí)都會(huì )進(jìn)行“鏡像DataT-來(lái)要注意哪些。關(guān)鍵在于“如何保持實(shí)時(shí)的鏡像able”的同步更新。關(guān)系”,也就是要實(shí)時(shí)保持緩存中鏡像與實(shí)際的數在應用中,要讓實(shí)體保存到緩存中,只要在實(shí)據庫表數據一致。那么我們就要保證在進(jìn)行更新體的XML配置文件中指明ISaveToCache =(增,刪,改)時(shí)能同時(shí)更新內存表數據就可以了,true即可。在OR Mapping時(shí),我們標識一個(gè)實(shí)體為“需如:< class name = " DepartmentEntity" table保存為鏡像”,那么持久層( PersistenceLayer)在進(jìn)行此對象的Save()、Update(). Delete()時(shí),自= " Department”database =”Oracle9i" Is-動(dòng)進(jìn)行“同步處理”,而且這是完全可以實(shí)現的。SaveToCache= " true">2.4緩存 鏡像表的代碼實(shí)現< attribute name="Id" column= " Id"在實(shí)體類(lèi)的定義中增加代碼:type= " Integer" increment= "true" key= " pri-< member name = " C: PersistenceLayer. .中國煤化工ClassMap. . IsSaveInCache'YHCNMHGNo"column="No"< summary>用于判斷此實(shí)體是否要保type= "String" key= " primary" />存到緩存中< attribute name = " Name" column = .Name" type= "String" />< m瓦市數據ame =" C: PersistenceLayer.48●鹽城工學(xué)院學(xué)報(自然科學(xué)版)第18卷多少"緩存鏡像表"時(shí),要考慮服務(wù)器的承受能力3總結的。但是,增加內存,提高性能這是開(kāi)發(fā)過(guò)程中很從上我們可以看出.效率的提高建立在內存多客戶(hù)所追求的。我們只要能仔細分析,是可以.的犧牲之.上,如果有過(guò)多"維護型數據"使用"緩存得出-種好的"緩存鏡像表”的。鏡像",整個(gè)內存消耗將非常大,所以,在考慮使用參考文獻:[1]車(chē)敦仁,周立柱.關(guān)系數據庫與面向對象數據庫的集成[J]. 軟件學(xué)報,1996 ,7(11): 669-675.[2] Scott W Ambler. Process Patterns- Building Large- - Scale Systems Using Object Technology[ M]. Cambridge:Cam-bridge University Press, 1998.[3] Scott W. Ambler. The Object Primer 2nd Edition[ M]. Cambridge:Cambridge University Press, 2001.[4]朱慶偉,吳宇紅,-種對象/關(guān)系映射框架的分析和應用[J].電子科技,2004(1): 54-57.Design of Object Persistent LayerHENG Dong - meil ,TANG Yong - zheng' ,ZHU Yue- long'/1. College of Computer and Information Engineering of HoHai University, Jiangsu Nanjing 210098 ,China\ 2. Modern Educational Technology Center, Yancheng Institute of Technology, Jiangsu Yancheng,224003, China/Abstract: This paper describes the design of an object persistent layer , which is a middle ware between object- orientedapplication and RDBMS. The authon proposes one solution to the improvement of the obiect persistence layer, which fo-cuses on basic attendance data, and analyses the feasibility of this solution.Keywords: persistent layer, capability, cache mirror table(上接第25頁(yè))[1] YANG Qun, ZHAO Yanan, A fuzzy logic - based framework for voute choice in vehicole navigation systems [J].Journal of Systens Science and Systems Engineering ,2000.9(4):467- 474.[2] Shier RD. ON algorithms for finding the K Shortest paths in a metwork [J]. Networks, 1979 ,9(9):195- 214.[3]陳芒,陳洪亮.智能交通系統中的路徑牽引算法[J]. 微型電腦應用,1999,15<6):45-46.[4]楊兆開(kāi),初連禹.動(dòng)態(tài)路徑誘導系統的研究進(jìn)展[J].公路交通科技,2000,17(1):34- 38.[5]鄭長(cháng)江.動(dòng)態(tài)交通分配方法及其初步應用研究[D].南京:東南大學(xué),2000.Study on Replaceable Route Choice ApproachCHENG Yang, WANG Bo(School of Management , Shanghai Science and Technology University, Shanghai 2 10000 ,China)中國煤化工,Abstract: The study on Pynamic Route Gvidance System( DRGS)eld of Intelligent Trans-portation System(ITS). The core of the study is to find a "best I.MYHc N M H Ghe crretrt taff ifom-tion. As a result the travel time can be saved and the traffic congestion can be avoided. This method can give drivers a sin-gle "optimal" path to follow. After the adoption of the improved K- shortest path algorithm, we can offer a number ofroutes with different features to drivers , which will tally with the as tual situation better.Keywords:呀方數據- shortest path algorithm; replaceable route

論文截圖
下一條:基坑支護設計
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院