论坛首页 Java企业应用论坛

Robbin乱弹数据库

浏览 51209 次
该帖已经被评为精华帖
作者 正文
   发表时间:2003-10-25  
只谈技术,不谈商业因素:

Oracle是无可争议的巨无霸,在这方面,无论DB2,还是SQL Server和Oracle相差甚远,围绕Oracle数据库已经形成了一个产业,Oracle光是数据库已经是博大精深,够你研究一辈子的了。Oracle的一些比较牛的技术,像RAC,其它数据库没得比,差距不是一星半点。Oracle数据库的负载能力,和可伸缩能力是无敌的。

DB2是唯一可以和Oracle相提并论的数据库,我对DB2没有什么研究,对DB2接触的不多,使用DB2给我的感觉DB2同Oracle的丰富的编程接口和管理工具相比,DB2显得非常原始。由于IBM主要是卖服务,喜欢提供整体的解决方案,所以很多情况下很多公司也不得不用DB2,但是我感觉DB2用起来太原始,远不如Oracle顺手。

SQL Server除了和MS其它的工具的结合性非常好之外,我找不到它有什么真正值得称道的数据库技术。SQL Server 据说现在对XML支持的很好,也许算一个特点吧。那些围绕SQL Server所谓的性能测试没有什么实际意义,一个数据库速度快不意味着它就好,我用MySQL查询数据比Oracle可快多了,难道MySQL比Oracle好吗?SQL Server的那些所谓牛的特性都是MS自己吹出来的,SQL Server之所以卖的好,是因为MS强大的市场能力,无关技术。SQL Server的T/SQL够丑陋的了,不过我最烦的还是SQL Server的安全bug,一个大筛子,我是能不用就不用。如果你不是做全套MS解决方案,我想不到有什么采用SQL Server的理由。MS的东东易用性是无敌的,但是安全性阿,Bill你得加油!

Sybase一个半死不活的数据库,自从和MS分道扬镳,各卖各的,就没有什么市场了,这就是和MS合作的下场。

Informix原来银行用得很多,现在被IBM收购了。

接下来说说Free和OpenSource的DB:

MySQL一个中小型数据库,结构简单,速度很快,技术上其实也没有什么特别之处,不过就是抓住了一个速度和简单易用,可见一个软件产品的普及往往靠的不是技术上有多出色,而是技术之外的东西,例如市场策略,产品定位等等。SQL Server和Sybase本来就是一个东西,看看SQL Server卖得多好,Sybase卖得多差就知道了。

PostgreSQL是一个中型数据库,经常被用在一些需要事务处理和负载比较重的环境下,替代MySQL。速度比较慢,API接口也不是很好,唯一的长处是功能比较完整,是Ingres的前身。


SAPDB,大Boss登场了!隆重介绍SAPDB。SAPDB是SAP做的OpenSource数据库,使用起来给我的感觉和我使用Oracle的感觉很接近,SAPDB的很多概念和Oracle非常一致,因此熟悉Oracle的人不会对SAPDB陌生。我一个HP的朋友他们的实验室做过SAPDB的性能和功能测试和评估,是一个很强的数据库,可以考虑做为Oracle的免费替代品。最近SAP把SAPDB卖给了MySQL,SAPDB的开放团队和MySQL的开放团队开了一次会议商量进行两个数据库的移植问题,最后的结论是MySQL向SAPDB靠拢。可以到这里看到SAPDB

http://www.sapdb.org

Interbase, Borland的Free数据库,性能不俗,我没有用过,不过很多人推崇。有兴趣的可以试试看。

FireBird,一个OpenSource的数据库,现在很热门,可以在SourceForge上看到,我还没有用过。是根据Interbase的源代码基础上发展的,和Interbase差不多。
   发表时间:2003-10-25  
做复杂的应用(数据仓库、数据挖掘、OLAP),还是 Oracle 比较好。其它数据库明显比 Oracle 差一大截。Oracle 操作很方便,最重要的是非常稳定,装好了基本上就不用担心了,哪怕不优化也几乎不会出什么问题。TOAD、PL/SQL Developer 都是很好的开发工具。

Sybase 从技术和稳定性上说要好于 SQL Server,过程语言同样也使用 T-SQL,所以写脚本总也逃不过那个脑缺水的 go。

MySQL 我就不说了,严肃的数据库应用基本上可以直接排除。

PostgreSQL 的接口还是很丰富的,过程语言 PLPGSQL 与 Oracle 高度兼容,所以 PL/SQL 移植过来是很容易的。PostgreSQL 的性能还可以,但是可优化的方面不多,高可用性支持比较弱,不能以集群方式工作,备份手段也比较少。

SAPDB 没怎么用过,robbin 知道哪里有中文文档吗?看英文效率实在是比较低。
0 请登录后投票
   发表时间:2003-10-25  
第一代数据库为层次数据库, 网状数据库
第二代为关系数据库
第三代应该算对象数据库了
我们现在常用的为关系数据库, 它基于关系操作,  操作的关系, 操作的结果也是关系. 第二代与第一代不同的是, 关系数据库的存取路径对用户是透明的. 我们不必理会它, 所以关系数据库在存取效率上要低于第一代数据库,这也就涉及到存取路径的优化问题, 以前的作法是基于规则的优化, 但它不灵活, 后来又有了基于成本的优化. 即使是oracle这样的数据库, 它也不是一个完全的关系数据库, 在codd的12分中, 它只能拿8.5分. 但我们不得不说, oracle代表着当前最好的关系数据库, 考虑到现在的市场占用率和过渡的平滑性, 现在oracle的对象关系数据库是一个不错的方向, 我没有对它做深入的研究, 但看起来也是把对象映射成表, 跟ORM与相似的地方.
0 请登录后投票
   发表时间:2003-10-26  
bruce 写道
第一代数据库为层次数据库, 网状数据库
第二代为关系数据库
第三代应该算对象数据库了

还有一类面向数据仓库、数据挖掘、OLAP 的数据库。这类面向分析型应用的数据库设计与传统的面向操作型应用的数据库设计有很大的差别。Oracle、DB2 的数据仓库产品是专门为分析型应用做过优化的,不是普通的关系数据库。
0 请登录后投票
   发表时间:2003-10-26  
据说postgreSQL也支持集群了 好像原来有个商业版本的postgreSQL 现在开发者把它奉献给开放社区了 这个版本应该支持的功能很多
我的认识的一个人原来在DoD作数据库管理 他说他们就是用postgreSQL
0 请登录后投票
   发表时间:2003-10-26  
dlee 写道
MySQL 我就不说了,严肃的数据库应用基本上可以直接排除。


给个理由 , MySQL 是我的最爱。六年的readers of Linux Journal "best database"。严肃的应用......光一个Slashdot就够了。

另外,没有人提到hsql?( http://hsqldb.sourceforge.net/ ) 一个只有几百K的Java实现ansi 92标准数据库,非常适合用来做开发和演示。
0 请登录后投票
   发表时间:2003-10-26  
Quake Wang 写道
给个理由  , MySQL 是我的最爱。六年的readers of Linux Journal "best database"。严肃的应用......光一个Slashdot就够了。

别拿什么 Linux Journal 的评选来说事儿,we are all professionals,用过了 Oracle 之后再说话。
一个不支持完备的事务处理的数据库,能用来做什么严肃的应用?Slashdot 是什么?充其量不过是一个大的 bbs。
HSQLDB 同样只是一个玩具数据库。
0 请登录后投票
   发表时间:2003-10-27  
dlee 写道
别拿什么 Linux Journal 的评选来说事儿,we are all professionals,用过了 Oracle 之后再说话。

好吧,在Linux Journal上投票的几千人,几万人都是玩玩的......都不是professionals......。我确实没有好好用过Oracle,但是做为斑竹你不能因为这个而剥夺我说话的权利啊,严重抗议!:(

dlee 写道
一个不支持完备的事务处理的数据库,能用来做什么严肃的应用?Slashdot 是什么?充其量不过是一个大的 bbs。

MySql在3.23-max和versions 4.0以上提供了完整的ACID的支持,它有不同的表类型可以让你在事务和速度上有更自由的选择,不知道你说的完备的事务支持还包括那些方面,我想好好了解一下。
如果你觉得Slashdot只是一个玩具BBS的话,那么你说的严肃应用又是什么呢?TI, Ericsson这些公司可以算严肃了吧,你可以看看更多的success story: http://www.mysql.com/press/user_stories/

dlee 写道
HSQLDB 同样只是一个玩具数据库。

你不能瞧不起玩具......,HSQL作为产品的演示,试用,它是一个极好的选择,在我给客户做demo的时候,我的笔记本是跑不动Oracle之类的东东。由于它支持内存方式的处理,在速度上还非常快,客户对于你的产品会有一个非常好的印象。
在试用产品方面,用户不需要自己额外去安装那些数据库,能够让他们更快的运行系统,更好的了解你的产品。即便是玩具,它也可以让你获得利益,为什么要看不起它呢?

言必称enterprise, professinal,这也是一种中国软件业通病的表现:浮躁。
0 请登录后投票
   发表时间:2003-10-27  
其实目前很多大企业自己的软件系统开发不堪重负!
迫切需要进行软件外包,可是国内却鲜有有承担的软件企业。有些企业将软件外包给IBM公司,也是迫不得已。

不要张口闭口 enterprise !
国内鲜有 enterprise 软件开发商。
(连 ejb 是干什么,用在什么地方都搞不懂的话enterprise 软件开发免谈)
0 请登录后投票
   发表时间:2003-10-27  
tomcat 写道
其实目前很多大企业自己的软件系统开发不堪重负!
迫切需要进行软件外包,可是国内却鲜有有承担的软件企业。有些企业将软件外包给IBM公司,也是迫不得已。

不要等、靠、要,你自己是做什么的?这正是很好的机遇,关键是要把工作真正做到实处,而不是象某些公司那样纯粹的捣糨糊。
tomcat 写道
不要张口闭口 enterprise !
国内鲜有 enterprise 软件开发商。
(连 ejb 是干什么,用在什么地方都搞不懂的话enterprise 软件开发免谈)

也没见过你发表过什么真正有见地的介绍 EJB 的文章(robbin 到是写了不少),充什么大拿?!:(  把你用 EJB 实施项目(不要说大型项目了)的成功经验 share 出来让大家看看。不要再眼高手低了,这样的人我见过的太多了。我说过 EJB 在所有场合都不适用吗?

我对“严肃”的理解可能与你们不同,主要原因是我们将来主要会从事 OLAP 一类的研发,没有完备的事务处理是根本无法做这类应用的。如果我的话刺痛了你们我可以道歉。

我说的也是 MySQL 目前的现状,不代表它将来吸收了 SAPDB 企业级的优点后也能够发展成一个企业级的数据库。

如果不了解什么叫做企业级应用可以到 www.linuxtea.org 去看 joe 发表的老帖子,我的观点与 joe 基本上是相同的(LinuxForum 的老用户很多都读过 nntp(joe)的精彩文章)。企业级应用是事实在在的东西,不是什么 Marketing Hype。

Show your opinion, then try to testify it, ok?

回答我几个问题(按照我认为的重要性排序):
1、MySQL 是否支持真正的两阶段提交?
2、MySQL  有无存储过程和触发器?将来是否准备支持?
3、MySQL 是否支持外键完整性?
4、MySQL 是否支持视图?
5、MySQL 是否提供了企业级的备份工具?
6、MySQL 是否支持集群?
7、Linux Journal 是否是一个严肃的数据库评测机构?
8、Slashdot 是否是一个真正的以数据库为中心的应用,还是仅仅把数据库用来作为工具。

一些基本的术语如果不清楚拜托回去温习数据库的教材。
不能说服我的话还是我用我的 Oracle,你用你的 MySQL 好了。我的意见真的对你有这么大的影响吗?还是你自己不自信呢?
1 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics