当前位置: 网学 > 网学资源大全 > 计算机 > 正文

.NET中的ORM设计与实现

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: admin 发布时间: 13/09/05
【网学提醒】:本文主要为网上学习者提供.NET中的ORM设计与实现,希望对需要.NET中的ORM设计与实现网友有所帮助,学习一下吧!

资料包括: 论文(30页11652字) 任务书 开题报告 
说明:

摘 要:面向对象设计关系型数据库设计存在很大的不同, 因为对象模型和关系模型两者之间存在“阻抗不匹配”的现象。面向对象设计的理论包括封装、关联、聚合、继承、多态,而关系数据库主要针对数据的存储,其数学依据是关系模型。我们希望可以实现通过面向对象的设计方式来完成业务流程,但是必须考虑的最终如何把对象保存下来。如果存贮介质采用关系型数据库,那么当我们将对象保存到关系型数据库的时候,矛盾也就出现了,这也是我们要做OR-Mapping的主要原因——架起对象和关系型数据库的桥梁。ORM(Object-Relation Mapping)主要解决对象层次的映射、对象关系的映射以及对象的持久化问题。它试图将实体对象的状态映射到RDBMS的数据上,以提供一种透明的持久化操作。

关键词: 面向对象,关系数据库,持久化,对象关系映射

A Design and Implementation of ORM with .NET

Abstract :There is great difference between Object-Oriented Design and Database System Design, because of the Impedance Mismatch between Object Model and Relation Model. Object-oriented design theory includes packaging, relevance, polymerization, inheritance and polymorphism, while Relation Database System(RDBS) mainly focusing on data storage, based on a mathematical relation model. We hope to accomplish business processes through the design of object-oriented methods, this is available. However, it must be considered that how to storage the data. If the storage medium is relational database, the contradictions occur when save the object data as a relation model. This is the main reason we need O-R Mapping which is a bridge between object and relational database. ORM includes object level mapping, object relation mapping and object persistence. It tries to map the entities state to the RDBMS data, in order to support a series of transparent persistency operations.

Key Words: Object-Oriented; RDBS; Object-Relation Mapping; persistency

1 绪论
1.1 课题的背景及目的
面向对象的开发即Object-oriented开发在近年已广为普及,成为软件开发最基本的方法。在面向对象的开发中,数据访问层最基本的数据库操作包括插入对象,删除对象,更新对象和查询对象。几乎所有的项目开发都需要首先需要实现这些操作。而这些操作在几乎所有的项目开发中都很类似,都是把插入对象,删除对象,更新对象和查询对象的这种对象级别的操作转化为底层关系数据支持的insert, delete, update和select等SQL操作。如果在项目需要面对不同的数据库,则还需要为每个数据库开发一个专门的数据访问层。显然这种每个项目都重复但却具备相同模式的代码是一种明显的浪费。这就催生了O/R Mapping技术的产生。ORM将开发人员从这种重复性的劳动解放出来,使其可以专注于应用程序的对象和功能,而不必担心如何保存它们或稍后如何找到它们。
1.2 国内外研究状况
现在各种ORM中间件产品已经在Java平台上得到了广泛的应用和验证,由于.NET平台是一个年轻的平台,所以在.NET上的产品还不是很丰富,但是很多Java平台上成品在.NET平台正在被重写,并针对.NET平台的特点进行更改。
同时也出现了另一种的解决方式,即提供一种面向对象的数据库。把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。
面向对象数据库很好地解决了阻抗不匹配的问题,但它也有缺点。它的缺点正好是关系数据库的强项,由于模型较为复杂(而且缺乏数学基础),使得很多系统管理功能难以实现(如权限管理),也不具备SQL处理集合数据的强大能力。

目录:
1绪论1
1.1课题的背景及目的1
1.2国内外研究状况1
1.3课题研究方法1
1.4论文构成及研究内容2
2对象关系映射简介3
2.1对象之间的关系3
2.2关系数据库的关系4
2.3映射策略4
2.3.1继承映射模式4
2.3.2关联映射模式5
2.3.3聚合映射模式6
2.3.4一对一关联、一对多关联7
2.3.5多对多关联8
2.4面向对象的数据库设计8
3设计与实现要点9
3.1将属性映射成列10
3.2将类映射成表12
3.2.1整个类层次结构使用一个数据实体13
3.2.2每个具体类使用一个数据实体13
3.2.3每个类使用一个数据实体14
3.2.4比较并选取映射策略15
3.3跨多种数据库能力17
3.4运行时动态产生SQL语句的实现19
总结23
致谢24
参考文献25
参考文献:
M.Blaba, W.Premerlani. 面向对象的建模与设计在数据库中的应用[M] . 宋今, 赵丰年译. 北京理工大学出版社,2001. 25-55.
E.Gamma, R.Helm ,R.Johnson.设计模式:可复用面向对象软件的基础[M] . 李英军,马晓星,蔡橄等译. 北京:机械工业出版社,2000. 60-79.
梁添才, 皮佑国. J2EE数据持久层的ORM设计模式[J]. 深圳信息职业技术学院学报,2005,6(3).
洪艺, 胡华平, 刘利枚. .NET平台下ORM组件的研究与探索[J].微机发展,2006,16(1): 13 -16.
陈春玲,朱常宝, 严劲. 采用ORM技术的软件开发方法研究[J]. 计算机与现代化,2006, 55(6): 55-58.
狄炎炎. 基于.NET的ORM中间件的开发和应用[J]. 宁夏工程技术,2006,5(2): 168-171.
萨师煊,等. 数据库系统概论(第3 版) [M] . 北京:高等教育出版社,2003. 152-167.
刘润东.UM L对象设计与编程[M].北京:希望电子出版社,2001:1,51-68.
James Rumbaugh,Ivar Jacobson, Grady Booch. UML参考手册[M].姚淑珍,唐发根等译 .机械工业出版社,2001:32 -46, 64-69.
邵维忠,杨芙清.面向对象的系统分析[M].北京:清华大学出版社,1998:80-102.
龙伟健,余应淮. Hibernate应用与开发实践田[J].福建电脑,2006(3).169-170.
宋汉增,沈琳.利用Hibernate对象持久化服务简化Java数据库访问闭[J].计算机应用. 200 3(12):135-13.
S.W. Ambler. Mapping Objects to Relational Databases: O/R Mapping in Detail [EB/OL] www.agiledata.org 2000.7.
Halpin T. Object Role Modeling: An Overview. White Paper [DB/ OL]. http://www.orm.net 1998.
[15] Hibernate Corporation. Hibernate 2 and Hibernate 3 Documents [DB/ OL]. http://www. hibernate.org. 2004.
[16] Scot W. Ambler. Agile Database Technique[M]. Agile Data,2003. chapter7.
[17] Smith, B.C.Reflection and Semantics in Lisp[M]. In Proceedings of ACM POPL''84,1984.23 –35.

作者点评:
本文主要研究对象关系映射的实现,讨论了在对象关系映射过程中对象数据和对象间的关系到数据库的映射,在经过对三种映射策略的分析后,我选择了第二种即每个具体类一张表的方式来实现,但是这种方式也存在缺陷,它会造成程序和数据库的联系过于紧密,增加了模块间的耦合性。
由于在数据库(尤其是关系式数据库)和当前大部分的编程语言之间存在一个“阻抗不匹配”的问题,即数据库是对需要“什么样”的数据的一种定义,而编程则全部是关于处理业务和逻辑的工作,而不关心你怎样获取和存储,当数据被取出到应用中时,我们在内存中使用完全不同的方法来处理这些数据。因此出现了一种新的编程语言内嵌语言的概念,通过内嵌到常用编程语言中的这种类似脚本的语言来和数据库交互。典型的例子是微软公司的LINQ(语言集成查询)。从编程语言的演变来讲,这代表的更多的是经典的面向对象语言和现代动态语言(Python、Ruby)以及函数式语言(Lisp)的一种融合。这也是当前ORM的一个发展方向。
  • 上一篇资讯: Spring框架和Ajax技术在电信资源存量管理系统的应用
  • 下一篇资讯: 基于Spring的软件测试专业网站表现层设计与实现
  • 相关资讯

    网学推荐

    免费论文

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号