将对象映射到关系数据库

将对象映射到关系数据库

ID:30170752

大小:663.04 KB

页数:34页

时间:2018-12-27

将对象映射到关系数据库_第1页
将对象映射到关系数据库_第2页
将对象映射到关系数据库_第3页
将对象映射到关系数据库_第4页
将对象映射到关系数据库_第5页
资源描述:

《将对象映射到关系数据库》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、将对象映射到关系数据库:对象/关系映射(O/RMapping)详解大多数现代商业应用开发项目使用面向对象技术,比如采用Java或者C#来创建应用软件,同时使用关系型数据库来存储数据。但这并不是要说你没有其它选择,也有许多应用程序是使用面向过程的语言开发,比如COBOL,而且也有许多系统使用对象型数据库或者XML数据库来存储数据。然而,因为面向对象和关系数据库技术到目前为止已经成为一种事实上的标准,在本章节中我假设你正在使用这些技术。如果你采用其它的存储技术,本文里的许多概念仍然适用,只需要做一点点修改(不必

2、担心,RealisticXML总括了对象与XML映射的相关问题)。在项目组通常用来创建以软件为基础的系统时,那些技术中,存在着面向对象技术和关系型技术之间的阻抗失配。不过这种阻抗失配很容易被克服,秘诀在于两点:你需要理解把对象映射到关系型数据库的过程,以及如何去实现这些映射。在本章节里,“映射”一词是用来表示如何把对象和对象之间的关系对应到数据库表以及表之间的关系。你将很快发现这并不像听起来的那样简单易懂,尽管它实际上也不是那么的槽糕。目录•敏捷DBA的角色•基本概念oShadow信息o映射元数据o如何使映

3、射适合全过程•继承结构的映射o整个层次结构映射到一张表o每个具体类映射到单独的一张表o每个类单独映射到一张表o将类映射为一个通用的表结构o多重继承映射满江红翻译团队:www.redsaga.com-34-o映射策略之间的比较•映射对象关系o关系的类型o如何实现对象关系o如何实现关系数据库中的关系o关系映射一对一映射一对多映射多对多映射o映射有序集合o映射递归关系•映射类作用域(Class-Scope)属性•性能调优o优化你的映射o延迟读取•为什么数据Schema不应该主导对象Schema•实现方式对对象的影

4、响•模型驱动体系结构(MDA:ModelDrivenArchitecture)的含义•映射技术模式化•参考文献和阅读推荐1.敏捷DBA的角色图1显示了一个敏捷DBA在映射对象到关系数据库的过程中所扮演的角色。其中我们关心三个主要的活动。1.映射。基本的目标是决定一个有效的策略来持久化对象数据。这包括保存单个对象的属性以及对象之间的关联,同时也包括那些类之间的继承结构。2.实现映射3.性能调优在图1中我们注意到有一个有趣的事情,敏捷的DBA和应用程序开发人员在在这三个主要活动中都在一起工作。虽然敏捷的DBA应

5、该确保映射的有效性,但他们实际上并不是独自对其负责的。与他人协同工作而不单打独斗正是敏捷软件开发成功的关键所在。图1.映射时敏捷DBA的角色。满江红翻译团队:www.redsaga.com-34-2.基本概念在学习如何把对象映射到关系型数据库的过程中,通常是从映射一个类的数据属性开始的。一个属性可以映射到关系型数据库里0个或者多个字段。请记住,不是所有的属性都是持久性的,其中的一些只是用做临时计算的。例如,在你的应用程序中一个Student对象可能需要有一个平均分(averageMark)属性,但并不需要存

6、储到数据库里,因为它是由应用程序计算得到。一个对象的某些属性可能本身也是对象,比方说一个Customer对象拥有一个Address对象作为其属性——这其实反映了两个类之间需要被映射的关系,Address类本身也需要被映射。重要的是这是一个递归的定义:在需要的地方,一个属性将被映射到0个或者多个字段。最简单的映射就是把一个属性映射到一个字段。当双方拥有一样的基本类型的时候,这甚至可以变得更简单。例如,双方都是date类型,或者属性是string类型而字段是char型,或者属性是number类型而字段是floa

7、t类型。映射术语映射(动词).指的是如何把对象和对象之间的关系持久化到永久存储设备(这在里是关系型数据库)中的行为。映射(名词).如何将对象的属性或关系持久化到永久存储设备的定义的关系。属性.数据属性,是实际的物理属性,例如一个firstName字串;或者是由某个操作实现的虚拟属性,例如getTotal()方法返回一个订单的总数。满江红翻译团队:www.redsaga.com-34-属性映射.描述如何持久化对象的属性的映射。关系映射.描述如何持久化两个或者更多的对象之间的一个关系(关联,聚合或者组合)。把类

8、映射到表上会让许多事情思考起来更简单,有时候的确是这样映射的,但并非总是这样直接,除了少数特别简单的数据库,你将不会有机会在类和表之间进行简单的一一映射。在这章的后面你将看到继承映射。但是,就这一整章全面来看,通常对于初始的映射,单类映射到单表是适用的(性能调优可能会促使你对映射进行重构)。现在,让我们从简单事物开始。图2显示了2个模型,一个UML的类图和一个遵循UML数据建模规则的物理数据模型。这两张图描绘了一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。