面向对象数据库db4o之旅

面向对象数据库db4o之旅

ID:18679540

大小:797.00 KB

页数:38页

时间:2018-09-21

面向对象数据库db4o之旅_第1页
面向对象数据库db4o之旅_第2页
面向对象数据库db4o之旅_第3页
面向对象数据库db4o之旅_第4页
面向对象数据库db4o之旅_第5页
资源描述:

《面向对象数据库db4o之旅》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象数据库db4o之旅第1部分:初识db4oRosenJiang,软件工程师,db4o和OO的忠实fansRosenJiang来自成都,是db4o和OO的忠实fans,是2005年db4o的dvp获得者之一。他正在J2me应用中使用db4o,你可以通过rosener_722@hotmail.com和他联系。张黄瞩(zhanghuangzhu@gmailcom),软件工程师,热爱开源软件张黄瞩,热爱开源软件,熟悉Java/C/C++编程语言,对数据库技术网络技术均感兴趣。你可以通过zhanghuangzhu@gmail.com联系他。Chris(chri

2、s@Matrixorgcn),Matrix创办者,MatrixChris来自香港,热爱开源和db4o。他创办了中国最火热的Java和开源社区Matrix(http://www.Matrix.org.cn),你可以通过chris@Matrix.org.cn和他联系。简介: 本文为db4o之旅系列文章的第一篇,介绍了面向对象数据库db4o的基本特性,并且与传统关系型数据库以及OR映射技术做了比较分析,读者可以体验到db4o的全新的面向对象存储的理念,并且给出了性能测试数据。前言业界对持久存储领域的追求从未停止过,为了更方便、更容易地用对象表达我们的思维,开源领

3、域和商业领域都涌现了许多新技术,ORM的出现恰恰说明了这点。最近一年,业界也在反思,到底ORM给我们带来的是便利还是麻烦。矛头指向大名鼎鼎的Hibernate,纷纷议论其性能问题,大家似乎要达成这样的共识:“在业务逻辑复杂的地方用SP,而一般的CRUD还是Hibernate”,就连全球知名的BearingPoint也有类似看法。下面一个简单的例子,说明了传统ORM工具的弊端。让我们考虑一个简单的Student对象如清单1:清单1Student类publicclassStudent{privateStringname;privateintage;public

4、StringgetName(){returnname;}publicintgetAge(){returnage;}}考虑下面这个场景:找到“年龄小于20岁的所有学生”?使用ORL实现如清单2:清单2ORL实现Stringoql="select*fromstudentinAllStudentswherestudentage<20";OQLQueryquery=newOQLQuery(oql);Objectstudents=queryexecute();使用JDOQL实现如清单3:清单3JDOQL实现Queryquery=persistenceManagern

5、ewQuery(Studentclass,"age<20");Collectionstudents=(Collection)queryexecute();上面的方法都存在一些普遍问题:·现代集成开发环境不会检查内嵌字符串的语义和语法错误。在上面所有查询语句中,age字段和数值20都被认为是数字类型,但是没有一个IDE或编译器能检查其实际正确性。如果开发者混淆了查询代码-―比如,改变了age字段的名字或类型,将导致――上面所有的查询语句在运行时报错,而不会在编译时提示。·现代敏捷开发技术鼓励不断进行重构来维持清晰和与时俱进的类模型,以便准确重现不断演进的域模

6、型。如果查询代码难于维护,它会延迟决定重构的时间并不可避免的引入低质量代码。·所有列出的查询都直接用Student类的私有成员age,而不是使用它的公共接口studentgetAge(),因此他们都破坏了面向对象封装规则,违反接口和实现应该分离的面向对象法则。·所有的查询都非100%的原生。既然存在如此多的问题,为什么不直接使用纯面向对象数据库呢?有些开发者可能会说:“它缺乏数学模型的支持,还不够成熟”。的确,RDBMS发展了几十年才有今天的成就,已经非常完善了。而技术的革新是无止境的,故步自封的永远都跟不上变化的脚步。让我们来简单回顾一下对象数据库的发展

7、史(资料来源于Wiki百科全书):“面向对象数据库系统”这一术语第一次出现于1985年。著名的研究项目包括:Encore-Ob/Server(布朗大学),EXODUS(Wisconsin大学),IRIS(惠普),ODE(Bell实验室),ORION(MCC),Vodak(GMD-IPSI)和Zeitgeist(TexasInstruments)。其中以ORION项目发表的论文数为最多。MCC的WonKim将这些论文中最有价值的一部分汇编成书并由MIT出版社出版。对象数据库管理系统为面向对象编程语言增加了持久的概念。最早的商品化ODBMS出现在1986年,是

8、Servio公司(现在的GemStone公司)和Ontos公司推出

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

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

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