- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于java对象持久性设计方案浅议
基于java对象持久性设计方案浅议
摘要:文章讨论的是在传统中间件环境下,在数据库多层访问模型的基础上,利用对象/关系映射如何实现对象持久性设计。
关键词:持久性对象;关系数据库;三层模型;对象标识
中图分类号:TP312文献标识码:A文章编号:1006-8937(2009)10-0025-02
持久对象需解决内存中瞬时对象与其他存储设备上持久对象的数据格式转换问题。主要的存储设备有以下的三种:
①文件系统。可以通过串行化对象来将对象保存在一个文件中。当应用程序设计中要求使用文件系统作为持久性基础设施来实现应用程序中相关对象的持久性时,我们可以自定义一个文文章件的格式,将对象的状态存储在该文件中。
②对象数据库。这是保证对象持久性的最合理的做法。但大多数公司还只是刚开始研究对象数据库,所以还不是主流的存储介质。
③关系数据库。目前大多数先进的应用程序都使用面向对象的数据结构。但在企业级的应用中大部分的数据库系统仍然是关系型数据库。虽然面向对象的数据结构对很多应用必不可少,但我们仍然要考虑很多原有系统的需要,所以关系数据库的应用还是主流。
持久性一般可以分成两类:空间上的持久性和时间上的持久性。空间上的持久性是在网络中传递对象的状态,例如:远程方法调用RMI(Remote Method Invocation, RMI是java分布式对象(EJB)的通信基础设施)将对象状态串行化后,通过socket传输串行化结果。时间上的持久性中,轻量型持久对象通常保存在本地文件系统中;重量型持久性对象通常采用:O/R映射(关系/对象映射)+RDB(关系数据库)来解决。
最简单的持久性实现方案是在应用程序启动时从文件装入相关对象的状态,在程序结束时将相关对象的状态存到该文件中。但当我们要采用可扩展性更好的持久性方案时,譬如实现对象瞬时(transient)状态的更新与其持久性是同步的的时候,O/R+RDB的解决办法就显得非常实用了。
1关系数据库的应用
企业级的应用大多数都采用三层模型来使用中间件访问数据。典型的三层模型由上到下分别是:表示层、业务逻辑层、数据层。三层结构将业务逻辑抽取出来作为一个独立的中间层。业务逻辑层是对企业所有业务逻辑的一种抽象,对上:为表示层提供了更高级的API;对下:封装了整个数据层。企业级的应用还可以是以三层结构为基础的扩展,例如:在业务逻辑层与数据层之间引入一层“持久对象层”,持久对象层可以实现对象/关系映射,数据类型转换等功能。
数据库是企业级应用的基础设施。在开发数据库应用系统时,引入对象―关系映射中间件是提高开发效率、提升软件可维护、扩展性的需要。成熟的对象―关系映射中间件产品,可以把内存中的对象持久化到数据库中,但前提是我们必须设计好自己的持久性对象、合理的对象持久性方案。持久性保存数据到一个数据库需要注意的是尽量的保持对象持久性的高度透明化。理由有以下4点:①企业应用需要实现持久性对象。②代表业务逻辑的对象可独立于使用它们的程序而存在。③多个应用程序可能需要工作在同一个对象上。④当对象与另一个对象交流时,不必了解该对象在内存还是在外存。
2O/R映射基本规则
对象范式与关系范式之间存在阻抗不匹配问题,利用已有的O/R映射模式可帮助设计人员避免实现对象持久性的陷入误区。基本的映射规则有以下的三点:
①将属性影射为列。并不是所有属性都是持久性的。通常,依赖属性都不是持久性的。例如:记帐凭证中的借、贷合计。
②将类映射为表。形式可以是多个类映射到单张表、单张表映射到多张表。多个类映射到同一张表这种情况是由于对象范式含有数据与操作,关系范式仅有数据,所有O/R映射丢失操作后,某些数据可能更适合合并。一个类映射到多张表,这种情况一般是由于要考虑程序效率才这样做。在某些情况下划分多张表会提高性能,但如果执行涉及连接的操作则通常反而降低性能。
③类间关系(继承、聚集、关联)的映射。继承关系的映射,一般有三种形式:一是整个类层次使用一张表,类层次中所有类的所有属性均存放在该表中。二是每个叶结点类使用一张表。三是每个类使用一张表,该表只保存OID(对象标识)以及对应类自己的属性(不含所继承的属性)。关联与聚类关系的映射从关系范式的角度来看,区别仅在于耦合程度不同而已。聚类耦合程度高:通常对“整体”操作都伴随着对“部分”。关联则不存在这么
高的相关度。
3对象持久性的设计方案
为了将设计阶段的工作过程清晰的表达出来,文章简单的设计一个餐馆订餐小系统来说明整个设计过程。
第一步:标志那些数据需要持久性。
对象标识(OID)唯一标识关联对象/关
您可能关注的文档
最近下载
- Unit 4 My Family Lesson 1 My Family Photo 说课稿2024-2025学年冀教版英语七年级上册.docx VIP
- 《工科数学分析》期末考试试题(A卷)参考评分标准.doc VIP
- 《船舶修造气象风险等级划分及应对》DB3310T 123-2025.docx VIP
- 无机保温砂浆专项施工方案(屋面_外墙)方案(1).doc
- 化学工艺概论题库(含答案).pdf VIP
- 2025 年黑龙江中职单招考试英语全真模拟卷.docx VIP
- 印刷厂安全培训课件.ppt VIP
- TOGAF基础级中文习题.docx VIP
- 研读《创新实干促发展》心得体会.docx VIP
- 《人工智能应用概论(第2版)》PPT完整全套教学课件.pptx
原创力文档


文档评论(0)