随笔-22  评论-149  文章-1  trackbacks-0

db4o开门之篇

这是我第一次发表文章,心情很紧张,希望我的文章对大家有用,也请各位大侠们多多关照,多多指点我们这些经常潜水的人。好了,废话不多说,直接进入主题!

 

db4o本来也是在园子里的一位朋友的博客上看到的介绍,看到他说db4o用来开发中小程序可以提升开发速度和质量,受了他之言,我就跑到www.g.cngoogle了一下(本人不喜欢用baidu),看看db4o到底是什么牛神鬼蛇,接下来就是我的db4o的了解。

 

要学习db4o 先要到www.db4o.com网站上去下载他的资源,目前已经发布了db4o 7.4版本了,本人目前用的是db4o 7.3版本的,下载来了按后安装他,在安装的根目录下会出现:bin,doc,src三个文件夹,他们分别是什么,这不用我说大家都明白咯,如果要开发db4o我们只需要bin"net-2.0下的Db4objects.Db4o.dll 文件,把该文件放到你项目的BIN中,然后在引用它就可以了。

现在来说说db4o是什么东西。从官方资料中显示, db4o开源对象数据库,是完全原生于Java.NET 100% 面向对象, 抛开对象-关系映射 ,为嵌入式应用优化, 开源,可以基于GPL协议免费使用的一个产品。什么是面向对象数据库呢?那好先来说说数据库吧。数据库到目前有三代了,第一代就是网状和层次数据库系统 ,第二代是关系数据模型,第三代是面向对象的数据库。这里的db4o好称是面向对象的数据库,呵呵,这可是第三代的数据库啊。db4o本身就是一个数据库系统,它不仅包括了数据库而且还提供了对这个数据库进行编程的类。在我第一下db4o来时,我还以为他只是一个数据库的操作框架,想hibernate那种的产品,还到处找db4o怎么来连接访问SQL2005的方法,闹了一个这么大的笑话,如果有人看到了这里还问我db4o怎么连接SQL2005啊,那我就简直是晕倒了。

你在运行db4o的时候他会自动产生一个*.yap文件,这这个文件就是db4o所生成的数据库,就相当于SQL2005中的*.MDF文件,而db4o他和SQL2005所不同的是SQL2005需要ADO.NET来访问他,但是db4o不需要这样,它自己自带了一些列的API来访问自己,你可以用他们来对db4o进行开发,也就是说db4o它把数据库和开发API都绑定到了一起。db4o分为netjava两个版本的,他们分别是用NETJAVA开发的,你可以在他们的官方网站上下载其源代码。

在你安装了db4o后,会在开始/程序 那里有个db4o的用户程序,进入程序,你会发现有两个东西,一个db4oAPI,另一个是db4otutorial,这个东西我不知道怎么翻译,本人的英语不是很好。在API中,你可以查看到db4o所有的类,而tutorial中,则是db4o给开发者的一个例子,一个关于法拉利和宝马为主题的应用程序,不过是英文版的,对于英文像我这样的人来说又是一大挑战。在上面db4o会以法拉利和宝马的故事带你进入db4o开发的路径,目前我在园子里已经发现了有人把上面的翻译过来了,不过好像没翻译完,就翻译了3章,不过这3章是最重要的3章,后面的都是一些无关紧要的东西,这是地址http://www.cnblogs.com/dotdty/category/156928.html

好了,这篇就写到这里了,带大家开个头,以后有时间还会有后续文章,这是本人第一次发文,还有很多不足的地方,请各位多多指教,也请大侠们口下留情,多鼓励鼓励俺,别太打击了俺的积极性

posted on 2008-11-07 15:21 独臂侠 阅读(1829) 评论(14)  编辑 收藏 网摘 所属分类: db4o.net探索

评论:
#1楼 2008-11-07 15:28 | Ariex[未注册用户]
db4o的帮助文件做得相当的棒~
  回复  引用    
#2楼 2008-11-07 15:32 | 2008年的梦想      
支持一下。楼主让我知道了db40,谢谢。
  回复  引用  查看    
#3楼 2008-11-07 15:40 | 谢慧琦      
这个数据库比access好吗?
  回复  引用  查看    
#4楼 2008-11-07 15:41 | 巫云      
支持一下,无奈大部分公司都在用Sql,Oracle,Sybase,不知道OODB啥时候才能流行起来。尤其在企业级应用。
  回复  引用  查看    
#5楼 2008-11-07 15:41 | Phinecos(洞庭散人)      
@谢慧琦
哈哈。。。,access好吗?

  回复  引用  查看    
#6楼 2008-11-07 16:14 | Jason Cui      
能否告诉我怎么按照添加对象的顺序取出对象列表?
  回复  引用  查看    
#7楼 2008-11-07 16:50 | guest[未注册用户]
实体操作其它很不爽很不爽的持久存,如果你还有编程的兴趣,建议你不要用这个持久层
  回复  引用    
#8楼 2008-11-07 18:31 | 玄魂      
第一次听说,谢谢
  回复  引用  查看    
#9楼 2008-11-08 08:40 | byrybye[未注册用户]
目前的应用都是在嵌入式系统中吧。不过个人觉得 很好很方便。
  回复  引用    
#10楼 2008-11-08 10:42 | JacksonLin      
n月前看过这东西.支持推广.
顶起去!!!

  回复  引用  查看    
#11楼 2008-11-08 11:25 | AndyWu[未注册用户]
楼主的用的是拼音输入法,速度可达到同时网聊n个人,鉴定完毕。
  回复  引用    
#12楼[楼主] 2008-11-08 15:16 | 独臂侠      
@谢慧琦
数据库没有好坏,只有是不是适合,access和db40的区别是:access是关系型数据库,DB40是面向对象型数据库,后者比前者更高级,但合不合适你的需求那就是另一码事情了

  回复  引用  查看    
#13楼 2008-12-10 22:19 | peak2007[未注册用户]
博主:
您好!
我下面的论文开题是基于开源的面向对象数据库下的面向对象的GML空间数据查询,不知道这个研究内容怎么样?以下是详细内容:
现在硕士论文开题内容是<<面向对象的GML空间数据查询语言研究>>,先谈一下开题背景,比我大一年级有一位师哥写的是<<面向对象的GML存储与索引>>(他是对GML文档把要素集,要素,几何,拓扑解析之后存储在的是开源的DB4O面向对象数据库里,其存储粒度是基于要素的),然而,现在我在他的基础上,就是应用他已经实现的GML对象化存储的数据,(初次设想是要设计一个GML空间查询界面,能读取存在对象数据库里的GML数据来进行查询,并可以在用户查询输入窗口类似这样的语句:(select 公交路线 where 出发地='A地' and 目的地='B地'),具体是怎么读取的现在还没有弄清楚?),这样来进行GML空间数据的查询研究(能对GML空间数据进行空间关系和拓扑查询,包括空间操作算子和空间数据类型).
谈谈论文研究目标,大体上是:
1.针对GML空间数据的特点,对面向对象的查询语言OQL进行扩展(要找一种开源的面向对象查询语言(OQL)来进行扩展,现在还没有设想.在开源网站www.sf.net里找到有一个开源的面向对象数据库EyeDB,它里面有一个EyeDBOQL.pdf文档,说是把开源的OQL API加入到DB4O里去,即开源软件EyeDB里的OQL引擎组件和DB4O里的组件进行组装),增加空间数据类型和空间操作算子(空间查询可以通过JTS API实现,具体怎么写还要学习一下.),实现GML空间数据的面向对象查询(最主要的内容). 但是在DB4O里它不支持空间数据类型和空间操作函数,都要自己去写,不像MySQL和PostgreSQL,这两个是开源的对象关系数据库,且里面自带了几个空间操作函数.这样的话,研究工作量就不会很大了.
特别说明:有这么一段话"试想直接将FeatureType和Features以对象形式存入对象数据库,整个系统至少在理论上可以减少一层。不过,以对象数据库作为数据源,还需要对象数据库的性能进一步提升。而之后的和已有软件的对接应该不成问题,因为db4o可以直接存储Feature对象和Geometry对象。
但是因此产生的数据对实现的依赖性又是一个问题:数据和实现紧密耦合,数据中捆绑了代码,虽然db4o号称支持Java和.NET的的互操作,但是对于其它实现来说又成了问题。从这个角度来说,对象数据库作为数据源是一种倒退".这就是DB4O里的不足之处吗?您是怎么看的呢?
我的问题是怎样读取对象化存储在DB4O里的GML空间数据?(要利用DB4O里的API?)

另外,注释:DB4O里有一个原生查询方式(Native Query)与基于字符串形式的SQL语句不同,现在还不知道是否一定要用到!

有以下一些问题和想了解的:
首先,在DB4O里能实现对GML空间数据对象的面向对象查询吗?那么要自己设计一种面向对象的GML空间数据查询语言吗?
其次,基于面向对象数据库的GML空间数据查询语言,这个扩展怎样进行?要考虑语法分析和词法分析吗?即是要设计一种查询语句的解释器吗? (面向对象数据库与GML的结合点不大吗?)

另外,GML查询语言研究--要有特色的话,不是单纯的空间查询,是通过像SQL一样,用户能通过输入查询指令(这里的话,要自己设计查询接口?要对扩展了空间数据查询谓词,要设计语句的解释器吗?)
附:如果在OQL/SQL的基础上发展一门面向GML的DSL(Domain Specific Language)领域专用语言,是不是会更有潜力?(DSL是最新敏捷中国会议里谈到的)

另附: 1:这种实现是基于一种开源的面向对象数据库进行扩展,在DB4O下进行,这种方式的实现难度怎么样?(自己的开发能力不是很好!,工作量太大了,怕完不成).
2:这种基于一种开源的面向对象数据库进行GML查询语言的扩展,和针对某一种已经存在的查询语言,比如GQL、GMLQL、FLD等等有多种,开发空间操作算子,类似于Mapserver4.4.2等开源软件里所具备的能够实现对GML的空间查询的模块。有什么不同?

3:GIS论文,还有哪方面可以作为硕士论文选题?
先写这些!

请您能对我这个题目给一些建议.(不知道这个题目难度大不大,可不可行?)

万分感谢!

衷心祝愿您:
工作顺利!
万事如意!
学生:陈峰
2008.12.10

  回复  引用    
#14楼 2009-01-15 14:58 | tmrp      
13楼的朋友,我现在论文也是搞这方面,可以相互交流。我的QQ:38113179
@peak2007

  回复  引用  查看    
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1328907




相关文章:

相关链接: