基于对象关系映射的对象持久化模型的分析与设计

来源 :西南财经大学 | 被引量 : 0次 | 上传用户:MENTAL2010
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
作为软件中描述数据的两种主流模型——对象模型和关系模型,具有不同的理论基础和模型特点。对象模型用对象来表示现实世界中的事物;利用对象模型,能够很好地描述和设计复杂的软件系统。这使得面向对象的设计方法在软件开发中大行其道,已经成为业务数据分析的基础,成为几乎所有应用开发的标准技术。但令人沮丧的是,与其同基于对象模型,理论上模式最相匹配的面向对象数据库却无法担任主流,大多数应用的存储还要在关系型数据库中实现。但是对象模型与关系模型对数据的描述方式是不同的:对象包含属性和行为,对象之间有继承、关联等关系,而关系数据库包含表、关系及表之间的关系使用主、外键表示等。这就突显出对象模型与关系模型的模式失配问题。在绝大多数的应用中,内存中暂时存在的对象需要永久的保存在关系数据库中,使得设计者要花费大量的精力解决对象型数据向关系型数据转化,并将数据存储在关系型数据库中的问题。实现在关系数据库存取对象,常用的做法有:第一种方法是SQL语句嵌入到应用代码即直接编写SQL代码来存取对象;第二种方法是将SQL代码在专门的数据类(或存储过程)中编写;实质是将执行SQL操作的源代码封装到了数据类中,是一种局部封装。但这两种方式都使得对象模型与关系数据库模式的耦合度大,不容易维护,因为无论是对象还是关系模式的微小改动,都将导致应用程序的重新编译。只适合小型应用系统或快速原型化。第三种,也是主流方法,即专门编制持久层实现对象和关系之间的映射,这种机制使应用程序的开发人员不需要了解关系数据库的模式,也不需要了解操作对象在数据库的存储方式就可以透明地操作存储在关系数据库中的数据,有利开发大规模的应用程序。但由于在设计体系中加入了持久层,势必造成效率方面的问题,使得在持久层的设计中不单单只是处理模式失配的问题,还要求有相应的机制解决效率等问题。持久层的设计要权衡诸如性能、读取频率、可扩展性、空间耗费、支持事务、游标、处理对象标识等,使持久层具有应用系统所要求的功能,并结合实际应用环境来权衡持久层的各种功能,满足最基本的、最满足应用环境的功能需求。持久层的映射要遵循一定的规则,不同的持久层所支持的映射规则是不相同的。但一般的ORM(Object Relation Mapping)都要支持类、属性、方法的映射、关系映射、继承的映射、数据完整性的映射等基本功能。本文对映射规则结合实例进行了深入分析,介绍了各种映射概念、方法,同时对实现同一目标的不同方法进行了横向的对比,有的还给出了使用原则。目前流行且非常成熟的J2EE是主流的创建企业级应用的平台,JDO是其轻量级的版本,但作为中间件也存在着诸如占用资源过多,依赖于XML的数据实体表示方式的特点;而微软的.NET出现的时间比较短,目前在这个平台上没有成熟统一的架构,本文描述和设计的便是基于微软的.NET的的中间件的架构,严格地说它不是狭义上的对象关系映射及持久化工具,因为它站在软件整体设计的视角以数据实体和数据访问作为核心实现目标,同时预留和简单实现了实体控制、业务规则等功能。本文提出的Netlight一种主要解决对象关系映射,数据库访问的中间件的架构,虽然是一种轻量级的、相对来说较简单的架构,但是它的架构基于分层,结构清晰,经过功能的强化,在添加更多的模块之后是可作为一个企业级的、具有较大的扩展性、耦合度较小的中间件框架。跟常用的框架的分层的区别在于对数据实体层进一步细分为数据实体和数据操纵层,使得业务逻辑层的代码更清晰,和数据实体层的耦合度进一步降低。Netlight分层设置为业务外观层、业务逻辑层、实体控制层、数据实体层和数据访问层的五层架构来封装不同数据库的连接访问、数据表示、数据的查询、插入、删除及修改等,以及业务的逻辑处理和业务服务的提供,使上层只需要调用下层封装过的操作,而不必关心其实现细节,各行各职,减少了系统和存储介质及各功能单位的相互耦合,使代码清晰度高,具有较高的可维护性,可使软件设计中的部分工作可以并行,提高了开发效率。关于Netlight的类结构,本文详细介绍并结合实例分析了系统的映射规则、数据库访问的封装、数据实体的表示、数据实体的控制、业务逻辑及业务服务的提供等等,列出了实现层次功能的关键类、常用方法以及类间的调用关系等。本文另一个特点是突破主流的面向对象的设计方法,提出了在中间件的设计中使用AOP(面向方面编程)设计方法,并通过对比其与面向对象方法处理相同业务逻辑时在降低系统耦合、使业务逻辑清晰化等的表现,说明了AOP的思想,并在Netlight中提出尝试使用AOP,以解决一些诸如身份权限检验,日志记录等经常被业务逻辑调用、和业务逻辑耦合但却属于整个系统的处理。解决了面向对象编程时有时存在的与业务逻辑紧耦合、不易扩展缺乏灵活性的缺点。但论文中实现的仅仅是一些中间件的一些较基础的功能,一些功能接口还有待填充和完善;对AOP的支持也只是处于设想阶段;作为一个理论上的框架,需要结合实际工程来检验系统的设计合理性,并结合实际不断的加以完善。
其他文献
二十一世纪初叶,随着全球竞争的加剧,科学技术的快速变革和经济的不断飞跃,尤其是信息化、网络化、智能化趋势得日渐加强,知识的重要性变得更为突出和明显。企业竞争优势的源泉在
地质公园是国家为了保护特殊的地质资源遗迹及其所在地生态环境、自然景观、人文景观,促进当地经济发展而设立的一个有着地质研究、科普教育、旅游观光等多种功能的保护性区域
基于钻井岩心资料,对贵州岑巩区块下寒武统变马冲组黑色页岩取心段进行系统采样、主微量元素测试及沉积地球化学分析.研究结果表明:1)古盐度判别指标Sr/Ba及Rb/K分布显示,下
在岩土工程中,边坡失稳是较为常见的现象,特别是对于斜坡变形情况,无论施工工艺多完善,都有可能出现边坡失稳的情况.边坡失稳会给整个岩土工程构成严重威胁,修复工作会浪费大
伏立康唑分散片作为南京海陵药业的明星产品,其利润在南京海陵药业所有产品利润中的占比达到17%,且呈不断上升趋势.提高伏立康唑分散片的班产量,不仅能够降低生产成本,同时能
创作心得:数学并不是我们想象中的那么枯燥乏味,在我们常用的数学知识中,也有新奇有趣的小窍门哦!掌握小窍门,学数学是不是就更简单了呢?快来探索数学中的学问吧!
期刊
本文通过对荣华二采区10
期刊
现代信息技术现在已然进入到了社会各个领域,融入到了生活的方方面面,更为我国教育事业的蓬勃发展以及创新进步带来了强大的动力支持.将现代信息技术应用到现代教学当中,能够
公司治理是近20年来西方公司金融研究领域中最为繁荣的方向,无论是在公司治理基础理论上,还是在公司治理机制上,都取得了丰硕的研究成果。中国作为经济转型和新兴市场经济国家,公
小曼准备和妈妈一起出门买东西.在妈妈的带领下,小曼坐上了妈妈的车,两个人一同前往食材批发市场.小曼和妈妈平时都是去家附近的超市买东西,今天却特意开车去离家远的地方买,
期刊