赞
踩
选择一款合适的SQL数据库是一项艰巨的任务,因为可选的产品很多。这既有好的一面也有不利的一面,选项增加意味着做出错误选择的概率也在增加。为此,需独具慧眼,谨慎而全面地对比每家厂商技术的优缺点,通过衡量自身需求,正确地进行评估与选型,才能选中适合的数据库产品。
我们的目标是选择最合适的数据库产品,通常从主流性、性能、可靠性、扩展性、安全性、数据库规模、跨平台、SQL特性、成本、服务质量、可用资源等多方面来考虑。对于不同的需求,考虑的侧重点有所不同:中心数据库和工作组数据库的会需更多地考虑性能、可靠性、扩展性、安全性和服务质量因素;而本地数据库需要部署在离线应用的每台机器,主要为单个用户使用,且需要部署很多机器,因此需更多地考虑成本、数据库规模因素。
1) 主流性
面对品种繁多的数据库产品,一一进行评估显然不太现实。我们可以把范围缩小为主流的几款数据库产品,因为能成为主流必然有综合的优势,是众多用户已经选型和实施的结果。在确定主流产品后,再结合自身的需求,对它们进行对比,从中选择适合的产品。
2) 性能
考虑性能一般是面向大量的操作和用户,在大型数据库产品上来考虑。大型数据库产品Oracle、DB2、SQL Server 这三个中哪一个是性能最好、处理最快、可扩展性最好问题,在数据库领域也被讨论和争论很多年了,每个公司也会投入大量的资金来证明自己是最优的,在过去的这些年所获得的性能上的改进说明,这三个公司的中任何一个都有足够的能力来提供比大多数应用程序所需要的更好的速度、可扩展性以及性能。对于大多数的企业来讲,这三个产品的性能都已已经足够了。
3) 可靠性
数据库保存的是企业最重要的数据,是企业应用的核心,稳定可靠的数据库可以保证企业的应用常年运行,而不会因为数据库的宕机而遭受损失。企业的信息化可以促进生产力,但如果选择了不稳定产品,经常影响业务生产的正常运营,则实际效果很可能是拖了企业的后退。信息系统的稳定可靠是由多方面的因素构成的,包括网络、主机、操作系统、数据库以及应用软件等几方面,这些因素互相之间又有一定的依赖关系,因此,在企业信息化的选型中要通盘考虑这些问题。在数据库方面主要看数据库要具备灾难恢复、系统错误恢复、人为操作错误恢复等功能,同时要尽量降低数据库的计划内维护宕机时间。
4) 扩展性
企业的应用是不断深入和扩展的,数据量和单位时间的事务处理量都会逐渐增加。要求一次购置就足以满足未来若干年发展的需要显然是不恰当的,因为这意味着要多花很多钱而不能发挥信息设备的最大效能,造成资源的浪费。比较好的解决办法就是先购置配置较低系统,当未来业务有需要时可以方便的对系统进行扩展,使系统的处理能力逐步增加满足业务处理的需求。对数据库来讲就是要选择具有良好的伸缩性及灵活的配置功能的产品,无论是主机系统的内存或硬盘方面的扩展还是集群系统的扩展,都能够被数据库利用,从而提高系统的处理能力。
5) 安全性
数据库的安全性是指保护数据库以防止不合法的使用造成的数据泄露、更改或破坏。安全性问题不是数据库系统独有的,所有计算机系统都有这个问题。只是在数据库系统中保存着大量重要的数据,而且为许多最终用户共享使用,从而安全问题更为突出。系统安全保护措施是否有效是数据库系统的重要指标之一。数据库的安全控制主要通过用户标识与鉴别、存取控制、视图机制、审计、数据加密等机制完成。
6) 数据库规模
如果考虑的是中大型数据库产品,数据库规模不是问题,因为各家的企业版和标准版产品都在PB级以上或者无限制;而小型数据库产品则需加以考虑,数据库最大限制从GB到TB级别的都有。
7) 跨平台
每个数据库产品与操作系统平台结合情况都不一样,操作系统的稳定对数据库是十分重要的。有的产品可以运行于主流的平台,而有的产品只限于Windows平台或Unix/Linux平台,平台受限具有一定的风险。
8) 特性
SQL92/99标准的支持,对于应用需支持多个数据库产品是尤为重要;面向对象的支持,可为数据模型提供多一种选择。
9) 成本
成本是一个很复杂的因素,因为不仅仅是指数据库产品的购买价格,还包括服务器配置、产品系统的维护、额外工具、开发成本以及技术支持等费用等总体拥有成本TCO(TotalCostofOwnership),特别是人力资源成本是企业需要提前预知的长期成本。
10) 服务质量
在现今信息高度发达的竞争中,数据库厂商完全靠产品质量打动用户的年代已不复存在,各数据库产品在质量方面的差距逐渐缩小,而用户选择产品的一个重要因素就是定位在厂家的技术服务方面。因为在你购买了数据库系统之后,你面临着复杂的软件开发,数据库的维护,数据库产品的升级等等,你需要得到数据库厂商的培训,各种方式的技术支持(电话、用户现场)和咨询。数据库厂家的服务质量的好坏将直接影响到企业信息化建设的工作。
11) 可用资源
部署一套完整的用户解决方案,需要有一系列的配套支持资源,如服务器(应用程序服务器、数据库服务器)和人力资源,人力资源包括系统操作用户和系统维护人员,其中维护人员包括应用程序维护人员以及数据库管理员。故在资源系统中,涉及到跟数据库相关的是数据库服务器和数据库管理员,对于一般的系统而言,会考虑现有的服务器是否能够满足新系统的需求?现有的维护人员是否能够满新系统的需求?如果原系统的相关配套在满足系统现有需求的基础上还有一定的可发展空间的话,是可以考虑沿用原有的数据库系统的。
据Gartner在2014年3月发布的调查报告,在2013年RDBMS全球市场份额中,Oracle 47.4%,Microsoft(SQL Serever)19%,IBM(DB2)17.7%,即主流的前三甲商业化大型数据库为Oracle、MS SQL Server、DB2。
小型数据库和开源数据库暂无市场份额数据,我们可以从流行榜来考察:
上述流行榜数据来自数据库知识网站DB-engines.com,其排名主要根据5个因素来进行:Google以及Bing搜索引擎的关键字搜索数量、GoogleTrends的搜索数量、Indeed网站中的职位搜索量、LinkedIn中提到关键字的个人资料数以及Stackoverflow上相关的问题和关注者数量。
从流行榜可以看出,主流的中大型关系型数据库为Oracle、MySQL(开源)、MS SQL Server、PostgreSQL(开源)、DB2,与商业化部分与市场份额的排名一致;小型关系型数据库为MS Access、SQLite(开源)。
中心数据库和工作组数据库显然应使用中大型数据库,本地数据库应使用小型数据库,而中大型数据库与小型数据库不适宜放一起对比,因此分成两组进行对比。
根据上述对比,总结如下:
| Oracle | MS SQL Server | DB2 |
主流性 | ★★★ | ★★ | ★ |
性能 | ★★★ | ★★ | ★★★ |
可靠性 | ★★★ | ★★★ | ★★★ |
扩展性 | ★★★ | ★★ | ★★★ |
安全性 | ★★★ | ★★ | ★★★ |
数据库规模 | ★★★ | ★★★ | ★★★ |
服务质量 | ★★★ | ★★★ | ★★★ |
跨平台 | ★★★ | ★★ | ★★★ |
SQL特性 | ★★★ | ★★ | ★★ |
成本 | ★★ | ★★★ | ★ |
可用资源 | ★★ | ★★★ | ★ |
(合计) | 31★ | 27★ | 26★ |
上表只是比较粗略的评估,而非精确的评比打分,因为那样需要考虑更详细更复杂的因素,还需考虑各因素针对不同的需求所占的权重,而各产品的详细信息不能完全得到,得到信息还带有厂商或提供者的倾向性。尽管如此,通过多方面对比得到的结果,对数据库选型仍具有参考意义。
主流的小型关系型数据库为MS Access、SQLite(开源),MS SQLServer LocalDB虽未直接出现在排名中,但由于它是SQL Server轻量版(Express)的一种简化版本,中大型的 SQL Server 编程模型一致,因此也把它纳入考虑。
Access:单文件数据库,显著缺点是功能较少;不支持事务等常用功能;数据库最大虽然可以到2GB,但达到100MB左右的时候性能就会开始下降,在没有压缩的前提下,如果大批量的进行数据操作(新增/修改),一般连续增长100多万行的数据就不能再插入数据。最大优点是简单、多数开发者都很熟悉,部署也很方便。
支持SQL92。
由于其数据库大小和性能下降,不能满足要求,不予以考虑。
SQL Server LocalDB:是SQL Server 2012 Express 系列中新增的一种轻型版本的 Express,该版本具备所有可编程性功能,但在用户模式下运行,并且具有快速的零配置安装(MSI安装程序)和无需管理的特点。可与 Visual Studio 之类的应用程序和数据库开发工具捆绑在一起,也可以与需要本地数据库的应用程序一起嵌入。
显著缺点是数据库最大10GB,最大优点是和服务器端的SQL Server 编程模型一致,开发便利。
支持SQL92/99。
根据上述对比,总结如下:
| SQLite | SQL Server LacalDB | 说明 |
主流性 | ★★★ | ★★ |
|
性能 | ★★★ | ★★★ |
|
可靠性 | —— | —— | 不适用于小型数据库 |
扩展性 | —— | —— | 不适用于小型数据库 |
安全性 | ★ | ★★ | SQLite无用户管理 |
数据库规模 | ★★★ | ★★ | SQLite 2TB,LocalDB 10GB |
服务质量 | —— | —— | 免费,都无服务 |
跨平台 | ★★★ | ★★ | SQLite跨平台,LocalDB限于Windows |
SQL特性 | ★★ | ★★★ |
|
成本 | ★★★ | ★★★ | 都无购买成本,都安装简单、零配置、零管理。 |
可用资源 | —— | —— | 由于都很简单,可视为一样 |
(合计) | 18★ | 17★ |
|
根据上述对比,数据库选型建议如下:
本地数据库和工作组数据库只用于业务数据处理,使用标准的SQL就可以满足。虽然中心数据库与工作组数据库采用的数据库产品不同,但由于它们都支持标准SQL,业务数据处理应用也可部署在中心数据库上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。