基于对象关系映射的数据持久层框架的改进设计与实现

基于对象关系映射的数据持久层框架的改进设计与实现

论文摘要

计算机的出现对人类来说具有着划时代的意义,计算机拥有高速的计算能力,在完成精确任务和批量计算方面比人类更稳定,成为了辅助科技进步的强力工具。随着永久储存介质(如磁盘等)的出现,使计算机又拥有了人类无法企及的“记忆能力”。如何管理、使用计算机的“记忆能力”呢?数据库技术应运而生。有了数据库,我们可以将数据从计算机内存保存到其他永久储存设备中以便于日后的查询、修改,这也就是所谓的数据持久化。数据库技术经过几代的发展,目前最成熟和应用最广泛的是关系型数据库,它是从数学模型发展起来的,用严格的数学逻辑和方法管理数据,拥有成熟、可靠、高效的数据操控能力。但不幸的是,数据库的发展并没能和软件技术的发展相匹配。随着软件工工程技术的发展,面向对象的设计、开发方法已经是软件生产的主流技术。但由于关系型数据库是不面向对象的,这使得数据在计算机系统中不得不以两种形式存在,在业务系统的内存中,数据表现为对象,在数据库中表现为关系数据。内存中的对象存在着关联和继承等关系,而数据库中无法表现多对多关联和继承关系。在面向对象数据库技术可以成熟应用之前,为了能够把对象数据持久化到关系数据库中,出现了关系-对象映射(Object-RelationgMapping简称ORM)思想和技术。在JAVA领域,通过JDBC编程来访问数据库是传统的做法,这种做法是最原始、最直接的。JDBC的数据库操作是基于行集的,虽然它有着高效的运行效率,却必须在JAVA程序中嵌套大量的SQL语句,应用程序担负着繁重的操控数据的工作,并使得项目难以维护。虽然根据MVC的思想可以通过JDBC编程来开发单独的持久层,封装对数据库的操作,提供统一的接口,供业务层使用。但这要求对JDBC有很高的专业知识,在项目组织中,不得不抽出最好的设计、开发人员专门进行持久层的设计开发,在业务逻辑和数据持久化方案之间艰难的调和项目组的开发资源,使得有限的人力不能专注于业务逻辑的研究,往往造成项目开发中顾此失彼。而且由于数据库结构的不同,每次开发的持久层无法直接重复使用,使得程序复用变得困难,每次都要开发专用却又功能相似的持久层程序,使得项目开发陷入重复工作和低效率之中。庞大的持久层代码随着项目复杂度的增加,也会变得越来越难以维护,假设项目组当初开发持久层的人员中途撤出,其他人员面对一个充满了sq1语句和数据操作逻辑的持久层,很难在短时间内进行有效的维护。幸运的是,基于ORM思想的持久层框架为我们解决上述问题。ORM是一种描绘对象与关系数据相互转换并持久化对象数据的原则思想,基于它的软件框架即为ORM框架,现在有许多ORM持久化框架可供选择,比如EJB、Hibernate、IBATIS、TopLink、OJB等等,他们承担了对象数据持久化的主要工作,不但可以自动将对象与关系数据进行对应(当然这需要一些前期配置策略),更能自动产生sq1语句,大大减少了应用系统持久层的代码量,同时也就大大减轻了开发人员的工作量。他们有些是商业性的,有些则是非商业的。其中非商业的Hibernate是目前最成熟和使用最广泛的ORM框架。它之所以能够流行,要归功于以下的优势:1.它是开源的。开发者可根据需要研究其源代码,定制自己的功能。2.它在所有ORM框架中拥有最详细的文档,使得研究和使用更方便。3.仅对JDBC做了轻量级的封装,如有必要,开发者可以绕过它,直接使用JDBC。4.具有良好的可扩展性,使其改进成为可能,并最终保持旺盛的生命力。5.它既适用于独立的JAVA程序,也适用于JAVA WEB应用,还可以与EJB集成,大大拓展了其使用范围。6.它可以与多种WEB服务器、应用服务器相集成,并适用于目前几乎所有的主流数据库。本文首先探讨ORM框架产生原因以及它的基本思想和原理,在研究与之相关的面向对象、持久化、持久层、DAO、MDA的理论思想以及目前流行的ORM框架的基础上,分析了其主要优点,也总结出其存在的三个主要缺陷。1.由于面向对象技术强制用户使用对象来代表关系型数据,这会导致大量的冗余数据存放于内存中,这些冗余数据并不参与当前的事务处理,并在生命周期结束的时候被析构函数或者垃圾收集器释放。2.复杂的映射和关联管理,使ORM对系统性能造成了较大的影响。在ORM系统中,对象之间通常通过对象引用和各种集合属性将对象相互关联起来,组成更加复杂的复合对象。应用程序同通过逐个访问成员对象来完成对这些复合对象的访问。这种在多个成员对象之间的导航操作导致了客户端和后端数据库系统之间的获取操作大幅度增加,从而导致了严重的性能问题。3.ORM使用配置文件和注释来设置映射关系和对象对应,并没有充分利用类型元数据信息(metadata),给系统开发和维护带来了额外的成本。针对以上三个主要缺陷,本文从查询、缓存技术、缓存预取算法、配置方式改进三个方面提出改进的方案,以达到减少应用系统内存占用、提高ORM框架缓存命中率和更为简洁、方便配置、维护的ORM框架的目的。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 引言
  • 1.2 问题提出的背景和研究的意义
  • 1.3 本文的主要工作
  • 1.4 论文的组织
  • 第二章 相关理论和技术
  • 2.1 面向对象
  • 2.1.1 面向对象的基本特性
  • 2.1.2 面向对象的基本概念
  • 2.1.3 面向对象的要素
  • 2.1.4 面向对象的优点
  • 2.2 持久化、持久层、对象持久化、DAO
  • 2.2.1 持久化、持久层
  • 2.2.2 对象持久化、DAO
  • 2.3 ORM
  • 2.3.1 ORM的概念和作用
  • 2.3.2 传统持久层与 ORM框架的比较
  • 2.3.3 ORM框架的设计模式
  • 2.3.4 ORM的优点
  • 2.4 模型驱动构建
  • 2.4.1 模型驱动构建的基本思想
  • 2.4.2 MDA的实现步骤
  • 2.4.3 MDA的优点
  • 第三章 HIBERNATE原理分析
  • 3.1 Hibernate原理
  • 3.2 Hibernate的特点
  • 3.3 Hibernate的基本使用方式
  • 第四章 ORM框架改进设计
  • 4.1 引言
  • 4.2 改进设计
  • 4.2.1 检索查询方式改进
  • 4.2.2 预取方式的改进设计
  • 4.2.3 映射方式的改进设计
  • 第五章 总结与展望
  • 参考文献
  • 致谢
  • 学位论文评阅及答辩情况表
  • 相关论文文献

    标签:;  ;  ;  

    基于对象关系映射的数据持久层框架的改进设计与实现
    下载Doc文档

    猜你喜欢