欢迎来到天天文库
浏览记录
ID:31934572
大小:1.93 MB
页数:69页
时间:2019-01-29
《对象关系映射在关系型数据上的分析与实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、浙江大学硕士学位论文表目录表3.1代表属性映射的元数据⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..18表3.2继承映射策略的比较⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯~25表3.3属性映射⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..32表3.4映射关系⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯~32表3.5类作用域属性的映射策略⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯~39一Ⅵ一浙江大学硕士学位论文第1章绪论1.1引言第1章绪论大多数现代商业应用开发项目使用面向对象技术,比如采用Java或者C++来创建应用软件,同时使用关系型数据库来存储数据
2、。但这并不是要说没有其它选择,也有许多应用程序是使用面向过程的语言开发,比如COBOL,而且也有许多系统使用对象型数据库或者ⅪⅥL数据库来存储数据。在一般的软件项目组通常用来创建以应用软件为基础的系统时,那些技术中,存在着面向对象技术和关系型技术之间的阻抗失配。所谓“阻抗失配”这一词组通常用来描述面向对象应用向传统的关系数据库(RDBMS)存放数据时所遇到的数据表述不一致问题。C++程序员已经被这个问题困扰了好多年,而现在的Java程序员和其它面向对象开发人员也对这个问题深感头痛。“阻抗失配”产生的原因是因为对象模型与关系模型之间缺乏固有的亲合力。“阻抗失配”所带来的问题包括:类的层次
3、关系必须绑定为关系模式(将对象类映射为关系表),D生成,并发访问以及下面提到的一些问题。应用和数据存储方式的不一致是导致这些问题的主要原因。这个问题在很多方面已经变得十分明显,如:产品上市的周期,应用设计、开发和维护的费用,代码维护和扩展性,以及能够满足响应时间和性能需求的硬件配置和结构。在这些方面使用不同的数据存储方式所得到的结果将有很大的不同。面向对象与关系数据库之间不一致所带来的必然结果——基于sQL的应用程序与面向对象数据库之间的不匹配效应越来越受到人们的关注,所以,对这个问题解决方法的探讨十分必要。不过这种阻抗失配很容易被克服,秘诀在于两点:首先需要理解把对象映射到关系型数据
4、库的过程,以及如何去实现这些映射。因此在本文中可以把“映射”一词定义成为如何把对象和对象之间的关系对应到数据库表以及表之间的关系。1.2o瓜MappilIg概述在时下的软件开发中,O/RMappiIlg这个词组越来越多的被人们提起。什么是O瓜Mapping?简单地说就是0忉ec仍klalionMappillg,对象到关系的映射。这名字和概念是出那里冒出来的呢?在开发中为什么需要O瓜Mapping呢?首先在面向对象的开发Obiect-0rierlmed开发在近年己广为普及,成为软件开发最基本的方法。开发语言也出现了专门为面向对象开发的编程语言,像目前主流的Java’C群都是基于面对象开发
5、设计的编程语言。实践证明面向对象是一种能有效提高开发质量,易于管理和符合人的思维模式的开发方法。不管是面向过程/结构的开发方法还是面向对象的开发方法,几乎所有的项浙江大学硕士学位论文第l章绪论目和产品的软件开发中都必须涉及关系数据库的数据存取更新等问题。和关系数据库打交道是所有项目产品开发中首先需要面对的,目前的开发技术需要为每个项目开发一个数据访问层(Da=taAccessLayer)来作为商业逻辑代码的基础,图1.1就显示了这样的一个过程。圉圈囤圉图1.1数据访问层在软件开发中的位置在面向对象的开发中,数据访问层最基本的数据库操作包括插入对象,删除对象,更新对象和查询对象。几乎所有
6、的项目开发都需要首先需要实现这些原子操作。而这些操作在几乎所有的项目开发中都很类似,都是把插入对象,删除对象,更新对象和查询对象的对象级别的操作转化为底层关系数据支持的iIlS吼delete,updale和∞lect等SQL操作。看一个基本的例子插入对象,这里可以增加一个用户对象Accoum。publicvoidaddAccoum(finalAccountaccoull∞throwsDAoExccption,AccolllltA】rcadyExigIExcc埘on{fillalCo曲ectionc叫co衄=gctConnecdon();删Pr印aredS诅t锄entstal=conn.
7、pr印areStatemem(”insertinto”+Persisten“kccoⅧ吐.PROPERTYACCOuNT’r-ABLE+”(”+Pe商stcntAcco吼t.PRoPERl'YIJSEIUAME+”,”+PersistaltAccoll】1t.PROPERTYPASSWORD+”,”+PersistentAccoum.PROPERTYEMAIL+”,”’+Pe塔igtelltAcco吼t.PI的PERTYCOllTMNWRITE
此文档下载收益归作者所有