ChinaUnix.net 首页 | 博客 | Linux | 论坛 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 沙龙 | 搜索
Linux首页 | Linux论坛 | 论坛精华 | 开源新闻 | 技术文章 | 专题专栏 | 新手指南 | 迁移方案 | 产品方案 | 开源项目 | 开源图书 | 软件下载 | 人才招聘 | Linux博客
  搜索

  产品与方案
·中科红旗全面打造现代化邮政体系
·红旗助力“网上审批服务” 推动电子政务
·红旗正版化开创呼和浩特网吧建设新起点
·红旗Linux助信息产业部邮件服务器“快跑”
·中标普华Linux 为电子政务信息化保驾护航
·中标普华Linux助力基金产业
·中标普华Office率先支持UOF标准
·中标普华邮件系统助力西藏政府信息化建设
·红旗Linux助力国库集中支付系统改革
·红旗助中信卫星 掀起GIS通信应用风暴
·红旗软件助力烟草总局 全面建设“数字烟草”
·红旗助力“信访阳光工程”打造畅通信访渠道
·红帽联合FIS发布下一代实时核心银行平台
·红旗助力金盾 打造全无忧出入境信息系统
·红旗Linux全力打造中国邮政总局名址信息库
·爱尔兰证交所从Unix迁移到红帽企业Linux
·一流的意大利银行选择使用红帽企业Linux
·PLUS Finanzservice选择使用红帽企业Linux
·红帽助力TransACT Communications 公司
·法国零售业巨头Lapeyre采用Redhat Linux
·旅游预订网站选择使用红帽企业Linux
·马哈拉施特拉邦政府的红帽解决之道
·美国联邦政府案例
·红帽为慕尼黑展览会提供现代化集群系统
·Yuba郡用开源软件和红帽产品提高了效率
·红帽企业Linux助印度理工建立高性能计算中心
·采用红帽Linux 将系统维护时间缩短了65%
·从UNIX迁移到Linux使Peñoles公司获益非浅
·Hikal公司用红帽企业Linux开展任务关键的ERP项目
·KDE3.5.4新版本发布
·芝加哥商业交易所从Unix向Linux迁移
·南方基金管理有限公司成功案例 Red Hat Linux
·广东北电通讯设备有限公司成功案例
·挪威国家石油公司从UNIX迁移到红帽Linux,成本减半
·中央电视台CCTV动画部案例 Red Hat Linux

  图书

鸟哥的Linux私房菜基础学..


Linux程序设计.第3版


Linux设备驱动开发详解


  下载
·Endian Firewall
·linux kernel(Linux 内核)
·CentOS
·Fedora Core 6
·Scientific Linux
·Slackware 11.0
·Gentoo Linux
·ubuntu-6.10-i386服务器版本
·ubuntu-6.10-amd64服务器版
·ubuntu-6.10-i386桌面版
·ubuntu-6.10-amd64桌面版
·Engarde Linux
您的位置: Linux时代 > 技术文档 > 数据库 >

如何理性选择适合自己的数据库?

日期:2007-11-08 作者:东方蜘蛛 来自:linux.chinaunix.net


有没有这样一个数据库?它不仅可以让你来存储你的所有数据,而且不用你去购买软件授权,花很少的钱就可以获得技术支持。或许你认为这是白日做梦,实际上这样的事情是确实存在的,它们的名字叫做“开源数据库”。

  但是,开源数据库和其他事物一样,并非完美无缺,它可能会让你付出另一种类型的代价,可能是比较低的数据处理数量、缺少的功能、受限制的图形化管理,或者是一些其他商业数据库有而开源数据库不具备的的东西。

  当前主流的商业数据库有Oracle、微软SQL Server、IBM DB2和Sybase Adaptive SQL Server。而在开源方面,主要有三家主流数据库:MySQL、PostgreSQL和Ingres。所有这些数据库管理系统都已经在市场上存在了十年以上。

  这两类数据库都已经证明了自己可以胜任数据存储和管理的需要。世界上大大小小的公司,从最小的新兴公司到世界500强的大企业,再到政府部门,每天都在使用这些产品中的一种或多种,并放心地把它们的数据交给这些数据库。

  

  图1:部分数据库产品路线图

  本篇文章通过对开源和商业数据库的用户及厂商的分析,可以看到开源数据库正在通过不同的方面来完善自己。从商业的角度来看,开源数据库正联合起来来对抗它们的商业竞争对手。另外,在本文中我们还将讨论,对于不同的应用情况是否具有选择开源数据库的理由。

  希望这篇文章能成为一块敲门砖、问路石,在你开始研究开源数据库,在你考察是否将它们应用到你的企业中的时候,希望对你有些帮助作用。

  大多开发者使用的数据库都不止一个,有四个因素是我们很明显要考虑的。首先是易用性,这是应用程序是否被选用的一个关键因素。图形化管理界面也是被人们经常提到的。另外,在决定为每一个应用程序选用什么数据库的时候,功能的深度也起着重要的作用。最后,软件的成本问题也是大多数人所关注的。

一、商业数据库和开源数据库总览

  1. 商业数据库之Oracle

  Oracle是商业数据库的代表,具有非常丰富的功能、广泛的平台支持和大量的附加功能。在IDC的一个调查中,Oracle占据了数据库市场的44%,增长了14%。

  Oracle的功能从表分区和大量的统计功能,到一些高可用功能,诸如本地复制、数据镜像和应用集群(Real Application Clusters,RAC)等。

  

  图2:Oracle RAC

  Oracle另一个强大的功能是在线表和索引重建。在很多数据库中,需要离线进行重建,也就是说当索引被重建的时候,不允许访问数据,因为这个操作要求独占性访问对象。当然,这不是Oracle的全部功能,只是其所能提供的高级功能的一些示例。

  2. 商业数据库之IBM DB2

  在2004年,DB2数据库的销售主要集中在IBM大型机和它们自己的AS/400系列系统中。尽管根据2006 IDC的调查报告,DB2的市场占有率高居第二位,但是与Oracle相比,它的销售额和市场占有率都要低很多。

  现在除了IBM的专有操作系统外,DB2可以运行在Windows、Linux和Unix平台上。新版的DB2 V9在XML处理方面具有较大的改进。在我最近的一个使用了其他数据库的项目中,在规划XML方面我们做了大量的额外工作。如果我们所使用的数据库具有 DB2 V9的相应功能,或许就不会有这么多麻烦了。

  

  图3:IBM DB2 V9的XML特性

  另外,IBM正在通过其DB2 Everyplace进入移动领域,目前支持PDA和智能手机。

3. 商业数据库之微软SQL Server

  和本篇文章中提到的其他数据库不同的是,微软的SQL Server只可以运行在其Windows操作系统平台上。不过由于Windows操作系统的广泛普及,缺乏对其他系统的支持并没有阻挡SQL Server的市场份额的增长。

  根据IDC的统计,微软的SQL Server是市场份额增长最快的数据库,市场份额仅次于DB2,排名第三。

  在最新版本的SQL Server 2005中,增加了许多新的功能,使其进一步对Oracle够成威胁。其中包括表分区、在线索引操作和很多其他管理功能。从下文中你将看到,很多用户对SQL Server的直观、易用的管理界面深表支持。

  

  图4:SQL Server 2005的产品线

  对比2004—2006年三大企业级数据库的市场份额是涨幅变化,如下图:

  

  图5:2004—2006年全球关系型DBMS软件厂商利润和市场份额分布

4. 商业数据库之Sybase

  最新版本的Sybase Adaptive Server与以前的版本相比,具有更丰富的功能设置,但是与上面Oracle和DB2两个商业数据库相比还是少很多,举个例子来说,它缺少对高可用群集和在线索引重建的支持。这或许是为什么在IDC的一次调查中,它仅排名第四,只有可怜的3.2%的市场份额。

  Sybase比较强大的地方在于它对资源的低占有率上。在这一方面,Sybase 15还引入了新的“专利查询过程技术”,显示了增强的性能和降低的硬件资源消耗。

  另一方面,Sybase正在通过其SQL Anywhere数据库服务器进入移动领域。SQL Anywhere功能之一就是其常驻内存的数据库管理系统,可以运行在Windows Mobile、Windows、Palm OS和Symbian上。

  

  图6:Syabse数据仓库

  关于Sybase还有一个很有意思的历史插曲,微软的SQL Server是从Sybase开发而来的。微软和Sybase签订了一个合约,微软被授权可以销售一个重新包装的Sybase,或在它的基础上开发一个它自己的版本。尽管微软已经对其进行了很多修改,你依然可以在SQL Server的命令组成中看到两者之间的渊源。

  5.开源数据库之MySQL

  MySQL是开源数据库中的佼佼者,它的用户数是在同类开源数据库中是最多的,它既可以被小的新兴公司所使用,也可以被采用了操作系统集群的大型Web站点所使用。

  MySQL拥有很多插入式的存储引擎,用来给用户提供不同的所需功能,而不是默认具有全部功能。这也是为什么MySQL会在数据恢复操作中具有最佳表现的另一个原因。

  自从MySQL第一版发布以来,就提供一个存储引擎接口。它让用户来根据需要选择数据存储引擎。MySQL既有事务安全(ACID兼容)的存储引擎(诸如InnoDB、Falcon),也有不支持事务处理的存储引擎(MyISAM)、日志引擎(不能被更新或删除,Archive)和通过无共享体系结构实现高可用性的群集技术, MySQL还有专有的第三方引擎,例如InfoBright和Nitro。

  

  图7:MySQL体系结构

  MySQL拥有很多实现特定功能的存储引擎,但是并不建议你全部安装它们。而像Google这样的公司则编写了自己的存储引擎来加速它们的常用操作。

  MySQL与Oracle相比的一个优势就是它对资源的占用非常少。MySQL是实现数据恢复方面最快的数据库,但是它的确缺少一些在Oracle中的功能。

  MySQL从来没有想过与其他数据库在功能数量上一较高下,MySQL的目标是易用、稳定和性能。MySQL现在具有丰富的功能,已经得到了很多开发者的支持。

6. 开源数据库之PostgreSQL

  在开源数据库中,PostgreSQL以其丰富的功能而显得格外突出,其中包括存储过程、表分区(partitioning)、多过程语言支持和多种数据类型和索引的支持。

  另外,PostgreSQL的标准兼容性和严格的安全功能也被众多用户所称道。PostgreSQL的在线事务处理(OLTP)是其最受欢迎的功能,在开源数据库中,它的数据仓库方面也是表现最好的。

  

  图8:PostgreSQL V8.1 架构

  由于PostgreSQL是一个被不同公司支持的社区控制型开源项目,很多公司提供对它的支持,诸如Sun、Fujitsu、SRA和Red Hat和很多新兴公司和顾问公司。PostgrefSQL在日本的市场情况很不错,仅次于Oracle。

  7. 开源数据库之Ingres

  在Ingres 2006版中引入了很多新功能,其中一些功能是关于大规模部署方面的,例如键范围表分区(key range table partitioning)和并行查询支持。

  另外,诸如存储过程、触发器和视图功能早已被Ingres所支持,不过Ingres现在还不支持内部任务。

  8.嵌入式数据库应用

  数据库的一个比较特别的应用案例是嵌入式应用程序,在这方面应用中,低资源占用成为一个必需的要求。

  MySQL由于其设计理念,在这一方面被应用的比较多。微软的SQL Server 2005 Express版也被做为嵌入式数据库使用,它被认为是微软数据库引擎(MSDE)的下一版本,而且它也是完全免费的。而Oracle则又通过收购得来的 TimesTen内存数据库来满足嵌入式应用程序。

  Linux是开源数据库的首选操作系统,因为它们都是开源而且完全免费的产品。现在的消费电子产品市场中,Linux变种已经被广泛应用。而这也使得开源数据库们在嵌入式应用程序受益。

二、如何选择适合自己的数据库?

  1.按需求来选择

  事实上,现在没有完美无缺的数据库,无论是商业数据库,还是开源数据库。

  我们发现,选择一个数据库的主要理由就是它的功能是否可以很好地支持你的应用程序。人们通常使用数据库来完成的任务有:支持Web、事务处理、文本搜索,有的情况下复制也是一个重要的要求。

  在事务处理方面,Oracle看上去更有领先优势,接下来是微软的SQL Server。没有一个开源数据库具有可以与Oracle相媲美的事务处理功能。

  在那些要求功能丰富的情况下,开源数据库们并不比商业数据库有什么优势。人们经常提到的商业数据库的优势功能有存储过程、触发器和一些安全功能。

  不过,正如我们上面提到过的,自从Ingres问世以来就支持触发器和存储过程。PostgreSQL对这些功能也早已支持。在MySQL的新版中最近也增加了存储过程和触发器功能。

  对于支持Web应用程序,MySQL看上去要比其他对手表现好。Web应用程序主要是对数据库进行读取操作。MySQL在这方面以速度快而见长。一些用户表示,在快速阅读操作方面,MySQL至少不比Oracle差。但是,当任务从阅读数据库转向处理一个客户购买操作的时候,用户则可能更倾向于选择Oracle而不是MySQL。

  在复制和群集功能上,MySQL给人的印象差别很大。MySQL中的单向复制表现惊人,但是,MySQl的群集功能被应用的不多,因为它只是基于内存的。

  2. 按易用性和管理来选择

  开源数据库们主要是以命令行工具中管理。尽管也有一些图形工具可用,但是与Oracle等商业数据库自带的图形管理工具相比,它们还显得不够灵活和稳定。

  在图形化管理方面的赢家无疑是微软。微软的SQL Server管理工具不是基于浏览器的,而是自带的一个终端平台。这使得它有能力完成一些Web浏览器所不能实现的强大功能。一些用户希望Oracle中的管理功能也和SQL Server中一样好。

  3. 按支持性来选择

  当讨论开源软件的时候我们听到最频繁的问题是:“我们从哪儿能得到支持?”

  MySQL为它自己的客户提供24*7、30分钟响应时间的支持。在其Unlimited服务中还有很多不同的付费支持级别。正如上面所提到的,PostgreSQL的支持来自于不同的平台厂商,支持的内容、成本、地区和要求因厂商不同而不完全一样。

  由于开源数据库的源代码可以被任何人查看和修改,这导致了几个潜在的问题。

  一个合法客户对数据库进行了修改会发生什么?Sun公司不会对这种情况提供支持,而MySQL公司将提供支持,但是需要满足一些特定条件和情况。事实上,能对这些开源产品进行修改的客户的数量是非常少的——这与产品的复杂度有关系。

  另一个开源软件的问题是,任何人可以对产品进行修改的现实会带来一些潜在的漏洞或安全问题。诸如此类的事情已经发生过,客户需要确信从熟悉的网站下载这些产品,并且确认它们可以通过MD5校验。

  4. 按成本因素来选择

  数据库中成本因素是非常简单的。

  对于开源数据库,你可以免费得到授权,但是同时也牺牲了一些功能。而对于商业数据库,你可以使用更多强大的功能,但是你需要按每个拷贝或每个CPU来支付授权费用。

  对于开源数据库,在维护成本方面,尽管看上去你可以选择不从厂商那儿购买支持合同,因为你拥有源代码,但是实际上并不如此简单。

  虽然你可以选择修改源代码,但是当新版数据库出来后,你所做的修改不得不重新进行实施,而且你曾经所做的修改可能已经没有必要,因为新版中增加了相应的功能。对我们来说,唯一比较实际的做法就是成为这个数据库开发社区中的一员,这可能需要你投入大量的时间,其成本或许会超过购买一个支持合同。

  对于商业数据库,你只有面临一个选择,如果你想得到来自它们的维护支持,那么就购买它们的支持合同。

  三、结论

  总体来说,选择什么样的数据库要看你的应用程序的需要。如果它是以阅读数据库为主的Web应用,MySQL无疑是最佳选择。而如果需要那些事务处理和复杂的数据库功能,那么可能是Oracle和微软的SQL Server的地盘。如果你需要一些商业数据库的高级功,但又不想支付授权费用,那么看一下PostgreSQL或Ingres。对于嵌入式数据库应用, MySQL和Sybase所占有的系统资源最少。

  如果你因为害怕缺乏支持而对开源数据库敬而远之,那么我们的文章已经告诉你,你可以把这些担心抛开了,三个主流开源数据库都由实力强大的企业或组织来提供支持,响应时间和专业程度完全可以和商业数据库厂商相媲美。

  切记,不选最好的,只选最适合你的。

本文被浏览



 相关新闻

Solid电信级数据库在LinuxWorld大放异彩2007-08-27 10:54:53
SOLIDDB 6数据库支持IBM 刀片服务器2007-06-27 16:43:39
SOLIDDB 6 内存数据库支持多内核处理器2007-06-13 10:00:55
RedHat Sybase联合开发数据库虚拟设备2007-05-16 08:47:49
数据库厂商加入SOLID技术合作伙伴计划2007-04-27 09:49:28
MySQL在数据库市场获得25%的市场份额2007-04-04 09:42:48
SOLID数据库支持高可靠性移动解决方案2007-04-03 15:18:42
为你的MySQL数据库加铸23道安全门2007-04-02 09:46:55
数据库开源成热点 IBM拒绝甲骨文Linux战略2007-03-27 09:01:20


 相关评论
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 免费注册

Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们

京ICP证041476号