- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
db4o 开发指南
db4o 开发指南
信息存储和检索作为同义语伴随 RDBMS 已经 10 来年了,但现在情况有所改变。Java 开发人员尤其厌
倦于所谓的对象关系型阻抗失配,也对试图解决这个问题失去了耐心。再加上可行的替代方案的出现,就
导致了人们对对象持久性和检索的兴趣的复苏。本系列是对开放源码数据库 db4o 的详尽介绍,db4o 可
以充分利用当前的面向对象的语言、系统和理念。要下载 db4o,可以参考 db4o 主页;为了实践本系列
的示例,需要下载 db4o 。
db4o 开发指南: 简介和概览
2007 年 4 月 09 日
早就听说数据库间的大战以关系型数据库的胜利告终。然而,这之后,编程界真的就风平浪
静、一片繁荣了吗?持肯定观点的人恐怕最近都没有试过使用关系数据库来支持 Java™
对象吧。著名作家和讲师 Ted Neward 为我们带来了这个由多个部分组成的 系列 ,深入
介绍了 db4o,它是当前关系型数据库的一种面向对象的可选方案。
在我出道成为程序员的时候,数据库之战似乎已完全平息。Oracle 和其他几个数据库供应
商都非常支持和看好关系模型及其标准查询语言 SQL 。实际上,坦率地讲,我从未将任何
关系数据库的直接祖先,比如 IMS 或无处不在的平面文件,用于长期存储。客户机/服务
器看起来似乎长久不衰。
之后,忽然有一天,我发现了 C++。正像许多在这个特别的时刻发现了这个特别的语言的
其他人一样,它改变了我的整个编程 “世界观” 。我的编程模型从基于函数和数据的变成了
基于对象的。一时间,再也听不到开发人员大谈构建优雅的数据结构和 “信息隐藏” 了,现
在,我们更热衷于多态、封装 和继承 —— 一整套新
的热门字眼。 关于本系列
与此同时,关系数据库已风光不再,一种新的数据库 信息存储和检索作为同义语伴随
—— 对象数据库 —— 成为了人们的新宠。若能再结 RDBMS 已经 10 来年了,但现
合一种面向对象的语言,例如 C++ (或与之类似的编 在情况有所改变。Java 开发人员
程新贵,Java 编程),OODBMS 真是可以堪称编程 尤其厌倦于所谓的对象关系型阻
的理想王国。 抗失配,也对试图解决这个问题
但是,事情的发展并非如此。OODBMS 在 90 年代 失去了耐心。再加上可行的替代
晚期达到了顶峰,随后就一直在走下坡路。原来的辉 方案的出现,就导致了人们对对
煌早已退去,剩下的只有晦涩和局限。在第二轮的数 象持久性和检索的兴趣的复苏。
据库之战结束之时,关系数据库又成了赢家。(虽然 本系列 是对开放源码数据库
大多数 RDBMS 供应商都或多或少地采用了对象,但 db4o 的详尽介绍,db4o 可以充
这不影响大局。) 分利用当前的面向对象的语言、
上述情况中存在的惟一问题是,开发人员对 OODBMS 系统和理念。要下载 db4o,可
的热衷一直没有衰退,db4o 的出现就很好地说明了这 以参考 db4o 主页;为了实践本
一点。 系列的示例,需要下载 db4o 。
对象和关系
对象关系型阻抗失配 这个话题完全可以拿出来进行学术讨论,但简单说来,其本质是:对
象系统与关系系统在如何处理实体之间的互动方面所采取的方式是截然不同的。表面上看,
对象系统和关系系统彼此非常合适,但若深入研究,就会发现二者存在本质差异。
首先,对象具有身份的隐式性质(其表征是隐藏/ 隐式的 this 指针或引用,它实际上是内存
的一个位置),而关系则具有身份的显式性质(其表征是组成关系属性的主键)。其次,关
系数据库通过隐藏数据库范围内的数据查询和其他操作的实现进行封装,而对象则在每个对
象上实现新的行为(当然,模块所实现的继承都在类定义中进行指定)。另外,可能也是最
有趣的是,关系模型是个封闭的模型,其中任何操作的结果都将产生
文档评论(0)