评估不同类型的DBMS产品

日期: 2020-01-08 作者:Craig S. Mullins翻译:邹铮 来源:TechTarget中国 英文

数据是组织的命脉,而数据库管理系统(DBMS)是大多数运营和分析业务系统的心脏。DBMS主要负责处理、存储和管理数据,并将其提供给应用程序和最终用户。现在市面上有很多不同类型的DBMS产品,每种都有各自的优缺点。

最流行的类型是关系数据库管理系统(RDBMS)。30年前RDBMS成为数据管理的常用系统,当时低成本服务器变得足够强大,使该技术广泛可用且价格相对可承受。关系数据库使用SQL编程语言,它基于的数据模型可支持事务一致性和可靠性,使其非常适合业务应用程序中常见的传统结构化数据。

但是在网络时代,关系模型的缺点(尤其是它的刻板化和成本)开始突出,并且由于大数据技术的出现而变得更加明显。现在,IT部门需要处理非结构化和半结构化数据,或具有可变结构的数据集,他们可能希望使用NoSQL数据库技术替代RDBMS。

而那些需要高速处理和快速响应率的应用程序,或者需要在实时或近实时完成复杂分析的应用程序,都可以从内存数据库中受益。NewSQL数据库融合了关系型数据库和NoSQL方法的元素,以满足基于SQL应用程序对更高可扩展性的需求。结合多种数据库技术来满足某些处理需求可能也很有意义,如果你使用多模型DBMS,则可以在单个平台完成。

在DBMS评估和选择过程中有很多风险,数据库技术选择可能会影响你的IT系统和应用程序的成败。由于数据库环境非常复杂且难以应对,因此这里重要的是,全面了解不同类型的DBMS,何时以及为何使用它们。为了解决这些问题,下面让我们仔细看看可用的选项。

DBMS类别和技术

RDBMS直到最近,对于大多数应用程序而言,RDBMS仍然是唯一值得考虑的产品类别。大数据趋势以及物联网和实时数据流等技术的增长,推动着新的数据库管理产品的开发,在某些用例中,这些新产品可与关系软件很好地竞争。但是,从收入和安装量而言,RDBMS仍然是无可争议的市场领导者。

关系数据库是基于集合论的数学原理,并于1970年代末首次开发用于商业发行,它为大多数应用程序提供了合理的性能进行数据管理、访问和保护,无论是操作还是分析应用程序。

自1990年代中期以来,关系软件一直是主要的可操作DBMS,主要由以下行业巨头的产品领导:Oracle数据库、Microsoft SQL Server和IBM Db2,以及SAP HANA。随着数据库工作负载越来越多地转移到云端,AWS和Google也已成为RDBMS市场的一部分,他们提供基于云的MySQL、PostgreSQL和MariaDB版本-三种流行的开源DBMS。

关系型系统也是数据仓库中最广泛使用的DBMS平台,企业在1990年代开始部署数据仓库以支持BI和企业报告应用程序。除了甲骨文、微软和IBM外,Teradata和SAP等供应商也提供关系数据库用于数据仓库。在云端,也有RDBMS技术,例如来自AWS的Amazon Redshift、Google BigQuery和Snowflake。

RDBMS适应性强、稳定可靠。大型组织和小型组织多年对RDBMS的使用提高了其成熟度。关系型数据库对ACID属性(原子性、一致性、隔离性和持久性)的支持是其最引人注目的功能之一。ACID可以确保所有事务正确完成,或者如果事务无法通过,则数据库可以返回到其先前的状态-这个关键功能可确保数据始终保持一致。

考虑到RDBMS这么多优点,为什么其他类型的数据库系统会越来越受欢迎呢?大规模的数据处理和大数据需求挑战着关系数据库的功能。尽管它们可以用于这些领域,但在这样的动态环境中,其他类型的数据库系统会更好用,它们可提供更灵活的数据库架构、不太严格的一致性模型和更低的处理需求。此外,RDBMS产品的稳定性和可靠性也要付出代价:它们并不便宜。

NoSQL DBMSNoSQL系统开始出现在2000年代中期。起初从字面上看,NoSQL更普遍地代表“不只是SQL”,因为很多NoSQL供应商都利用了该编程语言的某些方面。基于SQL的RDBMS需要严格定义的架构,而NoSQL数据库则为用户提供了更大的灵活性,它支持这样的架构,即所有不同实体不需要包含相同数据元素。对于可能会随时间变化的松散定义或不同的数据结构,NoSQL DBMS可能比RDBMS更实用。

NoSQL和关系DBMS之间的另一个区别在于提供数据一致性的方式。大多数NoSQL DBMS产品都支持最终的一致性,在分布式数据库的各个节点的数据可能并不总是一致的,但在不进行主动更新时,数据会保持一致。RDBMS平台通常还提供不同水平的锁定、一致性和隔离性,可用于实现最终的一致性,并且有些NoSQL供应商还有添加完全的ACID兼容性。但是,总的来说,NoSQL系统提供更为宽松的一致性形式,可以加快处理速度。

由于这些属性,NoSQL可解决RDBMS技术在处理非结构化数据、多变的数据集和大量的稀疏数据时遇到的一些问题。当并非数据库中的每个元素都被填充,并且在其中的值之间有很多“空白空间”时,数据被归类为稀疏数据。例如,包含大量零和仅几个实际值的矩阵。

但是,尽管某些类型的数据和用例可以从NoSQL软件中受益,但代价是失去事务完整性、灵活的索引和易于查询。更麻烦的是NoSQL本身包括多种类型的DBMS平台-它是以下四个主要产品类别的广义描述:

  • 键值存储区存储成对的唯一键和关联值,例如Aerospike、Amazon DynamoDB、Berkeley DB和Redis。
  • 文档数据库存储数据在类似文档的结构中,以JSON和XML等格式编码,示例包括Couchbase服务器、CouchDB、MarkLogic服务器和MongoDB。
  • 宽列存储将数据存储在包含大量列的表中,示例包括Accumulo、Cassandra和HBase。
  • 图形数据库以图形形式存储数据,以突出显示不同数据元素之间的连接,示例包括AllegroGraph、Amazon Neptune、Neo4j和TigerGraph。

每种NoSQL DBMS类型都最适合特定的用例,并且要考虑各个方面的优缺点。全面的技术评估需要对不同的NoSQL产品类别有深入的了解,并对所选择的DBMS支持的数据和应用程序需求有深度认识。

内存DBMS。DBMS技术还包括内存DBMS(IMDBMS),有时也称为主内存DBMS。IMDBMS主要依靠内存来存储数据,与基于磁盘的存储相反。这使得最终用户可以更直接地访问数据库中的数据。

内存数据库的主要用例是提高应用程序的性能,这些应用程序需要快速数据吞吐量。由于数据保留在内存中,消除了机械磁盘移动、寻道时间以及数据到缓冲区的传输,从而大大减少了I / O延迟。IMDBMS产品还可以减少处理开销,因为它们运行的​​内部算法通常比基于磁盘的系统更易于执行,并且CPU指令更少。

不过,内存数据库并不是完全不同的产品类别。SAP HANA是内存中的RDBMS,Oracle TimesTen内中数据库、VoltDB和MemSQL等技术也是如此,而Aerospike和Redis是内存中NoSQL DBMS的示例。此外,甲骨文、微软和IBM都在其旗舰RDBMS平台中添加了内存处理功能。

多模型DBMS越来越多的产品类别是多模型DBMS,它支持多种类型的数据模型。很多NoSQL产品都是这样,例如,整合文档存储和键值存储。同样,有些RDBMS平台也已发展为支持NoSQL数据模型,例如将文档和图形存储添加到其核心关系引擎。

NewSQL DBMS NewSQL数据库是某种非正式的DBMS类别。它们是为支持NoSQL系统中常见的分布式数据库而开发的RDBMS平台,具有ACID兼容功能,可进行水平扩展、实时处理和其他大批量数据需求。示例包括ClustrixDB、CockroachDB、Google Cloud Spanner、MemSQL、NuoDB、Splice Machine和VoltDB。

以下DBMS类别没有上述DBMS那么普遍:

  • XML DBMS被设计为支持XML数据。但是,现在大多数RDBMS平台都提供XML支持,NoSQL文档数据库也提供。
  • 柱状DBMS是针对BI和数据仓库量身定制的SQL数据库,因为它经过优化可一次读取多行中的几列,以加快查询速度。
  • 在1990年代流行的面向对象的DBMS,该DBMS将数据表示为对象,并可与面向对象的编程语言一起使用。还开发了混合了这两种方法的混合对象关系数据库。
  • 关系DBMS产品前的产品包括为在大型机上运行而开发的分层和网络数据库系统。这种技术包括IBM信息管理系统(通常称为IMS)和CA IDMS,现在它们仍然可用。

选择DBMS的其他注意事项

当你评估不同类型的数据库技术,以及计划购买特定DBMS产品时,应首先考虑的问题之一是硬件平台支持。当今主要的计算环境是Linux、Windows、Unix和大型机。并非每个平台都支持每个DBMS。

另一个考虑因素是DBMS供应商的技术支持。软件维护和支持是一项至关重要的功能-这可能是一笔巨大的日常费用。很多DBMS技术都是开源的,尤其是NoSQL。开源方法增加了灵活性并降低了初始成本。但是,除非你购买商业订阅,否则开源软件将不提供技术支持。如果考虑相关的管理和支持成本,开源产品的总拥有成本最终可能会更高。

你可能还选择通过使用数据库设备或在云端部署DBMS来减轻部署和管理方面的麻烦。数据库设备包括预安装在硬件的DBMS软件,该硬件对数据库应用程序进行了配置和优化。数据库设备可以显著降低部署和支持成本,因为软件和硬件已设置为可以协同工作。

在云端运行数据库则更进一步。你可以在私有云或公共云中部署自我管理的系统,也可以使用数据库供应商提供的托管云数据库服务,而不是在本地数据中心内部署DBMS。后一种方法又称为数据库即服务或DBaaS,用户不必自行安装、配置和管理DBMS产品。供应商将处理这些任务作为服务的一部分。

如果你的企业正在考虑购买DBMS,则重要的是记录你的特定需求,确定哪个DBMS类别合适,然后评估该类别中的领先产品。这样做将需要获取不同类型的DBMS软件及其适用用例的详细信息。你需要评估很多因素,以确保你在购买数据库管理系统时做出明智的决定。

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Craig S. Mullins
Craig S. Mullins

数据管理策略研究人员,拥有超过30年的数据库系统经验

翻译

邹铮
邹铮

相关推荐

  • Java、JDBC和Postgres

    现在越来越多的企业开始部署PostgreSQL,为什么呢?当你看到这个许可开源数据库所提供的功能,你就不会对此 […]

  • 5个元数据管理最佳实践

    在数据驱动的环境中,元数据不仅仅是数据的副产品;还是综合数据治理战略的关键组成部分。企业需要适当的元数据管理, […]

  • Cockroach Labs增加矢量搜索,更新定价选项

    Cockroach Labs 近日推出矢量搜索功能,旨在使客户能够访问和操作非结构化数据,以训练生成式人工智能 […]

  • 如何使用数据治理成熟度模型

    如果没有强大的数据治理,数据就无法产生有价值的见解以及改善决策。数据治理成熟度模型可帮助企业评估当前的成就水平 […]