文档介绍:山东大学
硕士学位论文
基于对象关系映射的数据持久层框架的改进设计与实现
姓名:周栋
申请学位级别:硕士
专业:计算机技术
指导教师:万建成;徐红
20080405
山东大学硕士学位论文摘要计算机的出现对人类来说具有着划时代的意义,计算机拥有高速的计算能力,在完成精确任务和批量计算方面比人类更稳定,成为了辅助科技进步的强力工具。随着永久储存介质绱排痰的出现,使计算机又拥有了人类无法企及数据库技术经过几代的发展,目前最成熟和应用最广泛的是关系型数据库,的“记忆能力”。如何管理、使用计算机的“记忆能力”呢菘饧际跤υ硕生。有了数据库,我们可以将数据从计算机内存保存到其他永久储存设备中以便于日后的查询、修改,这也就是所谓的数据持久化。它是从数学模型发展起来的,用严格的数学逻辑和方法管理数据,拥有成熟、可靠、高效的数据操控能力。但不幸的是,数据库的发展并没能和软件技术的发展相匹配。随着软件工工程技术的发展,面向对象的设计、开发方法已经是软件生产的主流技术。但由于关系型数据库是不面向对象的,这使得数据在计算机系统中不得不以两种形式存在,在业务系统的内存中,数据表现为对象,在数据库中表现为关系数据。内存中的对象存在着关联和继承等关系,而数据库中无法表现多对多关联和继承关系。在面向对象数据库技术可以成熟应用之前,为了能够把对象数据持久化到关系数据库中,出现了关系一对象映射虺枷牒图际酢在领域,通过编程来访问数据库是传统的做法,这种做法是最原始、最直接的。的数据库操作是基于行集的,虽然它有着高效的运行效率,却必须在程序中嵌套大量的锞洌τ贸绦虻8鹤欧敝氐牟倏厥莸工作,并使得项目难以维护。虽然根据乃枷肟梢酝ü齁喑汤纯7⒌独的持久层,封装对数据库的操作,提供统一的接口,供业务层使用。但这要求对有很高的专业知识,在项目组织中,不得不抽出最好的设计、开发人员专门进行持久层的设计开发,在业务逻辑和数据持久化方案之间艰难的调和项目组的开发资源,使得有限的人力不能专注于业务逻辑的研究,往往造成项目开发中顾此失彼。而且由于数据库结构的不同,每次开发的持久层无法直接重复使用,使得程序复用变得困难,每次都要开发专用却又功能相似的持久层程序,使得项目开发陷入重复工作和低效率之中。庞大的持久层代码随着项目复杂度的增加,
山东大学硕士学位论文强T吹摹?7⒄呖筛菪枰Q芯科湓创耄ㄖ谱约旱墓δ堋也会变得越来越难以维护,假设项目组当初开发持久层的人员中途撤出,其他人员面对一个充满了锞浜褪莶僮髀呒某志貌悖苣言诙淌奔淠诮杏行的维护。幸运的是,基于枷氲某志貌憧蚣芪N颐墙饩錾鲜鑫侍狻是一种描绘对象与关系数据相互转换并持久化对象数据的原则思想,基于它的软件框架即为蚣埽衷谟行矶郞持久化框架可供选择,比如、、等等,他们承担了对象数据持久化的主要工作,不但可以自动将对象与关系数据进行对应比徽庑枰R恍┣捌谂渲貌呗,更能自动产生语句,大大减少了应用系统持久层的代码量,同时也就大大减轻了开发人员的工作量。他们有些是商业性的,有些则是非商业的。其中非商业的悄前最成熟和使用最广泛的蚣堋K阅芄涣餍校9楣τ谝韵碌挠攀疲谒蠴框架中拥有最详细的文档,使得研究和使用更方便。龆訨隽饲崃考兜姆庾埃缬斜匾#7⒄呖梢匀乒苯邮褂哂辛己玫目衫┱剐裕蛊涓慕晌?赡埽⒆钪毡3滞⒌纳Α仁视糜诙懒⒌腏绦颍彩视糜贘τ茫箍梢杂隕集成,大大拓展了其使用范围。梢杂攵嘀諻服务器、应用服务器相集成,并适用于目前几乎所有的主流数据库。本文首先探讨蚣懿蛞约八幕舅枷牒驮恚谘芯坑胫喙的面向对象、持久化、持久层、的理论思想以及目前流行的蚣的基础上,分析了其主要优点,也总结出其存在的三个主要缺陷。捎诿嫦蚨韵蠹际跚恐朴没褂枚韵罄创砉叵敌褪荩饣岬贾麓罅康冗余数据存放于内存中,这些冗余数据并不参与当前的事务处理,并在生命周期结束的时候被析构函数或者垃圾收集器释放。丛拥挠成浜凸亓9芾恚筄对系统性能造成了较大的影响。在系统中,对象之间通常通过对象引用和各种集合属性将对象相互关联起来,组成更加复杂的复合对象。应用程序同通过逐个访问成员对象来完成对这些复合对象.
山东大学硕士学位论文针对以上三个主要缺陷,本文从查询、缓存技术、缓存预取算法、配置方式的访问。这种在多个成员对象之间的导航操作导致突Ф撕秃蠖耸菘庀低持间的获取操作大幅度增加,从而导致了严重的性能问题。甇褂门渲梦募妥⑹屠瓷柚糜成涔叵岛投韵蠖杂Γ⒚挥谐浞掷类型元数据信息,,以达到减少应用系统内存占用、提高蚣芑存命中率和更为简洁、方便配置、维护的框架的目的。关键词:持久层と』捍
,—..,.“.,,—,。,琾,瓸。痵,.,甧,
山东大学硕士学位论