开发数据库应用,选择一个好的数据库是非常重要的。目前,商品化的数据库管理系统以关系型数据库为主导产品, 技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有sql server、oracle、sybase、informix和 db2。根据网上的资料进行了整理,从一些方面比较了sql server与oracle、sybase、db2、informix 这些数据库,为今后选择数据库提供一些参考。
一、性能
1. sql server
老版本多用户时性能不佳,新版本的性能有了明显的改善,各项处理能力都有了明显的提高。保持了多项tpc-c纪录。具体参见http://www.tpc.org/
2. oracle
性能最高, 保持windows nt下的tpc-d和tpc-c的世界记录。
3. sybase
性能较高,支持sun、ibm、hp、compaq和veritas的集群设备的特性,实现高可用性。适应于安全性要求极高的系统。
4. db2
适用于数据仓库和在线事物处理,性能较高。 客户端支持及应用模式。
5. informix
性能较高,支持集群,实现高可用性。适应于安全性要求极高的系统,尤其是银行,证券系统的应用。
二、可伸缩性,并行性
1. sql server
以前版本sql server并行实施和共存模型并不成熟。很难处理大量的用户数和数据卷。伸缩性有限。新版本性能有了较大的改善,在microsoft advanced servers上有突出的表现,超过了他的主要竞争对手。
2. oracle
平行服务器通过使一组结点共享同一簇中的工作来扩展window nt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windows nt不能满足需要, 用户可以把数据库移到unix中,具有很好的伸缩性。
3. sybase
新版本具有较好的并行性,速度快,对巨量数据无明显影响,但是技术实现复杂,需要程序支持,伸缩性有限。
4. db2
db2具有很好的并行性。db2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点或数据库节点,伸缩性有限。
5. informix
采用单进程多线程的技术,具有较好的并行性。但是仅运行于unix平台,伸缩性有限。
三、安全性
1. sql server
microsoft advanced server 或的最高安全认证,服务器平台的稳定性是数据库的稳定性的基础,新版本的sql的安全性有了极大的提高。
2. oracle server
获得最高认证级别的iso标准认证。
3. sybase
通过sun公司j2ee认证测试,获得最高认证级别的iso标准认证。
4. db2
获得最高认证级别的iso标准认证。
5. informix
获得最高认证级别的iso标准认证。
四、操作繁简
1. sql server
操作简单,采用图形界面。管理也很方便,而且编程接口特别友好(它的sql-dmo让编程变得非常方便!) ,从易维护性和价格上sql server明显占有优势。
2. oracle
较复杂, 同时提供gui和命令行,在windows nt和unix,linux下 操作繁简程度相同。对数据库管理人员要求较高。
3. sybase
复杂,使用命令行 *** 作,对数据库管理人员要求较高。
4. db2
操作简单,同时提供gui和命令行,在windows nt和unix下操作繁简程度相同。
5. informix
使用和管理复杂,命令行 操作。对数据库管理人员要求较高。
五、使用风险
1. sql server
完全重写的代码,性能和兼容性有了较大的提高,与oracle,db2的性能差距明显减小。该产品的出台经历了长期的测试,为产品的安全和稳定进行了全面的检测,安全稳定性有了明显的提高。
2. oracle
长时间的开发经验,完全向下兼容,可以安全的进行数据库的升级,在企业,政府中得到广泛的应用。并且如果在winnt上无法满足数据的要求,可以安全的把数据转移到unix上来。
3. sybase
开发时间较长,升级较复杂,稳定性较好,数据安全有保障。风险小。在安全要求极高的银行,证券行业中得到了广泛的应用。
4. db2
在巨型企业得到广泛的应用,向下兼容性好。风险小。
5. informix
开发时间较长,升级较复杂,稳定性较好,数据安全有保障。风险小。在安全要求极高的银行,证券行业中得到了广泛的应用。
六、开放性
1. sql server
只能在windows 上运行,c/s结构,只支持windows客户,可以用ado,dao,oledb,odbc连接。windows9x系列产品是偏重于桌面应用,nt server适合各种大中小型型企业。 *** 作系统的系统的稳定对数据库是十分重要的。windows平台的可靠性,安全性经过了最高级别的c2认证的。在处理大数据量的关键业务时提供了较好的性能。
2. oracle
能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。多层次网络计算,支持多种工业标准,可以用odbc,jdbc,oci等网络客户连接。可以使客户选择最适合的解决方案。对开发商全力支持。
3. sybase
能在所有主流平台上运行,在银行业中得到了广泛的应用。
4. db2
有较好的开放性,最适于海量数据。跨平台,多层结构,支持odbc,jdbc等客户。在大型的国际企业中得到最为广泛的应用,在全球的500家最大的企业中,大部分采用db2数据库服务器。
5. informix
仅运行在unix平台,包括sunos、hpux、 alfaosf/1。在银行中得到广泛的应用。
七、易维护性和价格
1. sql server
从易维护性和价格上sql server明显占有优势。基于microsoft的一贯风格,sql server的图形管理界面带来了明显的易用性,微软的数据库管理员培训进行的比较充分,可以轻松的找到很好的数据库管理员,数据库管理费用比较低,sql server的价格也是很低的,但是在license的购买上会抬高价格。总体来说sql server的价格在商用数据库中是最低的。
2. oracle
从易维护性和价格体来说oracle的价格是比较高的,管理比较复杂,由于oracle的应用很广泛,经验丰富的oracle数据库管理员可以比较容易的找到,从而实现oracle的良好管理。因此oracle的性能价格比在商用数据库中是最好的。
3. sybase
sybase的价格是比较低的,但是sybase的在企业和政府中的应用较少,很难找到经验丰富的管理员,运行管理费用较高。
4. db2
价格高,管理员少,在中国的应用较少,运行管理费用都很高,适用于大型企业的数据仓库应用。
5. informix
价格在这些系统中居于中间,与sybase一样,在企业和政府中应用较少,仅在银行中得到了广泛的应用。经验丰富的管理人员较少,运行管理费用高。
八、数据库二次开发
1. sql server
数据库的二次开发工具很多,包括visual c++, visual basic等开发工具,可以实现很好的windows应用。开发容易。
2. oracle
数据库的二次开发工具很多,涵盖了数据库开发的各个阶段,开发容易。
3. sybase
开发工具较少,经验丰富的人员很少。
4. db2
在国外巨型企业得到广泛的应用,中国的经验丰富的人员很少。
5. informix
在银行业中得到广泛的应用,但是在中国的经验丰富的人员很少。
九、数据库综合比较结果
表1.1数据库综合比较结果表
Type | 性能 | 伸缩性 | 安全 | 操作繁简度 | 风险 | 开放性 | 维护性 | 价格 |
mssql | ●●●●● | ●●●● | ●●●● | ●●●●● | ●●●● | ●●●● | ●●●●● | ●●●●● |
oracle | ●●●●● | ●●●●● | ●●●●● | ●● | ●●●●● | ●●●●● | ●● | ● |
sybase | ●●●● | ●●● | ●●●●● | ●● | ●●●●● | ●● | ●● | ●●● |
db2 | ●●●● | ●●● | ●●●●● | ●●● | ●●●●● | ●● | ●● | ●●● |
informix | ●●●● | ●●● | ●●●●● | ●● | ●●●●● | ●● | ●● | ●●● |
经过以上比较,如表1.1所示,我们得出结论如下:一般的中小型企业或者中小型的应用中,采用ms sql server 作为数据平台,既可以节约资金,又便于维护管理。小型应用主要考虑的是资金问题,sql server的资金投入最小,是中小型应用的最佳选择。大型应用系统要求有较高的数据处理能力,一般应该采用了高性能的大型数据库管理系统——oracle,大型高可靠性要求的系统安全稳定性是首要考虑的因素,oracle 能够提供很高的安全稳定的性能,因此oracle是在国内的大型数据库的必然的选择。在国外的巨型企业中很多采用全套ibm解决方案,使用db2作为公司的数据仓库,可以达到几乎与oracle相同的安全稳定性和相近的性能,但是国内使用db2的人很少,经验丰富的管理员更少,很难实现很好的数据库管理。在银行和证券系统中,采用安全性较好的informix和sybase。随着sql2000的发布和完善,在大型数据库应用中microsoft也将占一席之地。
对于流动人口管理系统来说,由于区县的每个人都要有一条记录,一个市或县的人口数量一般达到10万,有些大县甚至达到100万级,每一个人的记录包括出生年月,户口所在地,姓名,性别……,如果育龄妇女占1/3,则大约有30万条数据,因此系统数据量不是很大,属于中小型应用在此,我们建议采用microsoft sql server数据库作为后台的数据库。这主要是考虑系统的性能价格比,和易于管理性,易维护性。
如前所述,microsoft sql server是基于windows 2000 advanced server服务器的,我们通过tpc的网站可以看到microsoft sql server的性能已经稳居数据库应用的前几位,可以满足系统的稳定性和大数据量的要求。对于小县/区来说,系统的数据容量较小,采用winnt平台安装数据库也可以较好的满足要求。当人口增加,数据量变大的时候,microsoft sql server也可以很好的满足数据管理的要求
数据库的稳定是建立在操作系统稳定的基础上。windows 2000 advanced server经过了最严格的安全认证,获得了最高的c2级别的安全认证标准。由此可以证明windows 2000 advanced server的系统稳定性是极高的,他的代码经过检验,证明是稳定的。microsoft sql server的性能我们已经在tpc网站上看到了,某些大型电信级的数据库也以microsoft sql server作为数据支持。
数据库良好稳定的运行需要管理员的辛勤工作,管理员的经验直接关系到数据库的安全稳定,ms sql server在中国的企业和政府得到了广泛的应用,有大量经验丰富的管理员。ms sql server 数据库的管理和 *** 作是最简单的,整个系统的安全性和稳定性也较好,而且性能价格比最高,完全满足人口管理的稳定安全的要求,同时节约资金,降低成本,是我们理想的选择。
因此,基于对人口管理系统的性能最优,安全稳定性和易于管理的综合要求,我们建议选择microsoft sql server数据库作为后台数据服务基础。
(完)