您的位置: 网界网 > 软件 > 正文

关系型数据库选型:关键指标

2015年08月16日 14:49:50 | 作者:Craig S. Mullins | 来源:TechTarget中国

摘要:在评估了不同类型的数据库管理系统产品之后,下一步就是决定哪一个产品最符合需求:关系数据库管理系统(RDBMS)、NoSQL或是内存数据库。接下来,我们来看看仍然处于主流的关系型数据库,在进行选型时你需要考虑哪些关键指标。

标签
数据库选型
关系型数据库
数据库标准

在评估了不同类型的数据库管理系统产品之后,下一步就是决定哪一个产品最符合需求:关系数据库管理系统(RDBMS)、NoSQL或是内存数据库。接下来,我们来看看仍然处于主流的关系型数据库,在进行选型时你需要考虑哪些关键指标。

关系型数据库的强项

在采购一个数据库时,明智的做法是先评估关系型数据库,因为它们适用于各种不同的应用场景。它们可靠的理论基础有助于保护和保证多种应用程序的持续数据访问。关系理论是IBM TedCodd在上世纪70年代初提出来的,它基于集合理论的数据原理,而集合理论能够实现严格且精确的数据访问和操作。关系技术的数学原理和基础理论在数据库系统领域是独一无二的。

大多数中间件、软件集成产品和管理工具都支持关系型数据库;然而,其他新兴的数据库产品形态则不一定。

此外,有大量的SQL程序员能够支持关系型数据库开发。即使不是硬性要求,但是大多数关系型数据库都使用SQL语言作为标准的数据访问语言。尽管各种数据库产品实现SQL语言的方式各不相同,但是无论是哪一种关系型数据库,它们的大部分语言元素都是相同。

或许关系型数据库的最强大功能就是它实现可靠的事务原子性、一致性、隔离性和持久性(ACID)。ACID属性保证数据库事务能够可靠地完成处理。因此,在一个关系数据库上执行的事务要么完成并产生正确且最新的结果,要么中止且不产生任何结果。无论是哪一种情况,数据库的最终都处于一种一致状态。

实现ACID支持会增加处理负载,并且可能降低数据的可用性,因为后续事务必须等待已修改的数据提交到数据库。在处理一些关键业务数据(如金融数据)时,这是一个最佳的折衷方案。银行数据总是必须保持最新和准确,其他类型的关键生产数据也一样,如特定类型的医疗、股票交易、保险及其他法律控制的数据。

诚然,即使关系型数据库产品默认都支持严格一致性,但是大多数产品都允许DBA使用参数和代码去调整隔离级别和锁级别,从而控制一致性的级别。

关系型DBMS的潜在问题

随着种类越来越多的应用出现,它们要求使用不同类型和数量的数据,因此关系型数据库变得很难支持这些需求。社交媒体数据、流式音频与视频和来自物联网(IoT)的信息包含不同的数据内容,它们要求的灵活性超过了传统关系型数据库通常能够支持的水平。

当然,在评估是否采购关系型数据库时还需要考虑其他一些问题。其中一个最大的障碍是高昂的价格。一个关系型数据库的价格可能高达几万元甚至上百万元,而实际价格取决于你的数据量或用于运行数据库的硬件规模。

功能臃肿是关系数据库产品的另一个问题。虽然由于出现时间较长而实现了可靠且经过时间检验的功能,但是关系型数据库仍然有一些可能没有必要的内置特性。特性过多的软件可能会增加学习和维护的难度。这些额外特性还可能会影响性能。

最后一个弱点有时候也可以视为一种强项,这取决于特定的用例,即关系数据库所要求的严格模式。所有字段都必须预先指定一种具体的数据类型和长度,然后才能在关系数据库中使用一个表。这改进了数据完整性,因为只有定义了正确类型和长度的数据才允许存储到数据库中。但是,NoSQL数据库系统则没有这个要求,它们允许开发者根据数据修改需要而调整模式。因此它更为灵活,但有可能会导致数据完整性问题。

应用支持问题

在评估一个数据库产品时,一定要考虑数据库支持应用的方式。是否有许多应用在执行传统的事务,还是它们在执行许多的批处理?又或者,是否在开发Web 2.0应用程序和支持IoT应用?

大多数传统数据管理和分析应用都可以使用关系型数据库,其中包括在线事务处理(OLTP)、批处理、混合工作负载和商业智能。其他倾向使用关系型数据模式的条件有:当有一致数据结构和定义时;当需要严格数据完整性和准确性时;以及当需要处理传统数据类型时,如数字、日期和字母数字混合值。

明智的做法是将关系型数据库指定为默认的标准数据库类型,然后只有在不适合使用当前关系功能的项目时使用非关系型数据库,如支持Web 2.0项目、流媒体数据和有不同模式要求的大数据[注]分析。

关系型数据库选型标准

在采购任何类型的数据库时,征询方案(RFP))评估阶段可以考虑一些标准条件。

首先是数据库的架构及其与项目的吻合度。关系型数据库的架构适合大多数的数据管理需求,但是在一些要求灵活模式或数据元素有复杂内在关系的项目则可能不适合。

另外,还要考虑数据管理需求和工具的可用性和可靠性。备份与恢复、变更管理及性能管理都属于最重要的管理功能。关系型数据库产品都提供了良好的内置管理功能;而且还有许多插件产品可以使用。

部署也一个要考虑的方面——其中包括安装需求、软硬件要求和虚拟化功能。在这些方面(+微信关注网络世界),大多数关系型数据库都提供强大的特性和功能。

此外,一定要在数据库选型过程中考虑是否有足够好的技术人员。要判断DBA和应用开发人员的数量与技术水平。在判断技术水平时要考虑做从业经验时间和技术认证水平。比起其他新数据库技术,关系型数据库技术人员更容易招聘。

判定一个数据库是否符合要求的最重要因素之一可能是性能基准测试。然而,想要准确界定具体性能指标也是非常困难的。事务处理性能理事会(TPC)提供了一些标准的基准,但是这些指标很快会过时,并且一个基准往往无法准确反映一个最终用户实现的实际性能。而且,有一些供应商(尤其是Oracle)在签订合同时都禁止客户公开自己数据库应用的性能明细。因此,最好的做法是检查公布的基准,然后请供应商提供一些参考客户。此外,也可以创建一个试用的关系型数据库,然后开发一些测试应用程序,从中测定的数据查询性能,但是这种方法极其耗费时间。

由于数据库是一项长期投资,因此它在数据、用户或流程的管理增长可扩展性是另一个重要的考虑因素。保证一个数据库的管理增长通常要求能够将数据分割到一个分布式系统的多个节点上。可扩展性的其他方面包括要理解产品将如何适应硬件升级及了解其架构限制。关系型数据库产品具有良好的可扩展性,但是对于超大容量的数据而言,可能更适合使用其他的数据库产品。

最后,一定要检查每一个数据库选型的容错性。它应该能够容忍代码和逻辑错误而保持正常运行。而且,数据库必须用多个组件去交付处理服务。一个具有容错能力的数据库产品应该能够持续运行,在有一个组件出现故障时,即使性能可能会打折,也绝不能完全崩溃。

参考资料

1.大数据:(Big Data),研究机构Gartner给出了这样的定义。“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 ...详情>>

[责任编辑:软件频道 yu_xiang@cnw.com.cn]

我也说几句