用面向对象数据库代替ORM框架是否可行

abaddoncoder 14-09-05
              

看JDON里面的不少贴子,貌似对ORM框架不太感冒,其实本人在做一些系统开发时,也不太喜欢herbinate之类的映射框架,以前偶尔有了解到db4o,一个对象型数据库,java开源数据库,据说性能也不算差,并宣称零DBA管理,我也看几个数据库操作接口的例子,使用也比较简单,顿时想用db4o来代替ORM框架,初步感觉不少地方都简化了。
但事实上,目前市面上运用的大部分还是关系数据库,对象数据库占有的份额很少,对象数据库出现的时间不晚啊,如果真像我上述所想的话,为什么对象数据库没有风靡起来~, 各老师、专家,应该接触过对象数据库吧,发表一下看法,谢谢~

              

1
banq
2014-09-05 11:10

面向对象和关系数据库各有各的定位,仙女和凡人都有各自的界。面向对象数据库类似仙女下凡。

面向对象主要是使用类型来区别标识业务,对于复杂的业务面向对象+类型语言比较直观,但是在干脏活累活方面关系数据库还是比较擅长,NoSQL则擅长处理非结构数据。

结构化数据和非结构化数据都可以用面向对象方式组织起来。

另外面向对象实际是面向人类,而数据库是面向计算机CPU,所以,各自服务对象不同,因为人是有灵活性的,所以,适合计算机CPU的数据库人类也可以学会其规律,用数据库思路来思考问题,只是需要翻译,很多人习惯了没有感觉这其中有翻译,有翻译就有失真,这其实是一种不正常畸形,当然生活在畸形中的人如果不尝试正常状况(面向对象是一种适合人思考的正常状况),那就无法意识到自己是畸形,朝鲜人不出国旅游可能无法意识到自己的状况。

但是又不能将适合人思考的正常状况--面向对象强加到计算机上,事物没有人那么灵活,能够忍受不适合自己的畸形,因此就表现出性能等问题。

目前中间状态是,将用面向对象分析设计出来的类型代码放在内存中,数据库(SQL和非SQL)作为备份持久化使用,就如同我们用文本文件输入文本,经常要按Ctrl-s手动保存或激活自动保存一样。磁盘文件只是一个备份手段。当然现在很多NOSQL数据库也是这个原理,数据首先更新到内存中,然后记录下数据更新的事件,使用追加方式加入到磁盘文件上,然后,根据这个事件文件重放,用来同步内存和数据库。
[该贴被banq于2014-09-05 11:16修改过]