数据库管理系统(DBMS)是当今企业运营分析系统的核心部分。数据对于企业来说就像是血液,而数据库管理系统是数据畅通的枢纽。它负责存储、管理、保护数据,并为业务应用程序和最终用户提供支持。然而,今天的数据库市场已不再是关系型数据库的天下。不同类型的产品各有优缺点。企业CIO在选择模型时需要仔细考虑其利弊。在过去的30年里,关系数据库(RDBMS)产品一直主导着企业系统。随着服务器成本的不断降低和性能的不断提高,关系型数据库也得到了最大限度的普及。但是在互联网时代到来之后,关系型数据库的缺点也越来越明显。如今,IT部门正在努力寻找处理非结构化数据的方法。与结构化数据相比,其格式更加复杂多变,这让很多企业不得不考虑NoSQL数据库技术。此外,对于有大量快速交易的应用,或者那些需要对数据进行实时复杂分析的应用,内存数据库可能是一个不错的选择。鉴于上述场景越来越多地出现在企业中,现在很多CIO都希望通过混合数据库平台来应对上述问题。DBMS是现代应用的核心,选择正确的数据库技术将对IT项目的成败起到决定性的作用。今天的数据库市场比10年前更加复杂,因此有必要了解不同类型DBMS的特点,以及何时何地(场景)使用它们。接下来,我们将做一个详细的介绍,希望能对您的数据库选择有所帮助和指导。数据库管理系统的类型和模型尽管许多新技术不断涌现,但大多数公司在选择模型时会首先考虑关系数据库管理系统(RDBMS)。大数据的浪潮改变了这种局面,也带来了新的DBMS产品。在某些特定场景下,它可以与关系数据库软件竞争。此外,DBMS中的各种产品类型都在不断增加新技术和功能,这使得整个数据库生态系统比以往任何时候都更加复杂。在使用量和市场份额方面,关系数据库仍然是无可争议的领导者。关系数据库基于集合代数等数学概念,提供数据存储、访问和保护能力,同时保证其性能指标适用于大多数事务和分析应用程序。近30年来,企业运营的数据库管理系统基本上都采用了关系技术。在这个领域,甲骨文(Oracle)、IBM(DB2)和微软(SQLServer)是三巨头。对于大多数应用场景,关系型数据库已经表现出了足够的适用性和可靠性。在世界500强企业中,所有企业都在使用关系数据库来支持核心业务系统。当然,稳定的代价是高成本——关系型数据库的价格往往并不便宜。关系数据库系统的另一个优势是全面支持ACID原则,即事务的原子性、一致性、隔离性和持久性。ACID可以确保所有事务都能正确执行。如果事务出错,可以保证关系数据库回滚到执行前的状态。鉴于关系数据库的强大和健壮的特性,为什么市场上还会出现其他类型的数据库产品呢?答案很简单。基于Web的数据处理和大数据分析的需求使关系数据库捉襟见肘。虽然在这些场景中也可以使用关系数据库,但其他产品可以提供更灵活的模式。非强一致性模型和更小的处理消耗更适合快速变化的动态环境,NoSQL因此进入了我们的视野。NoSQL数据库提供了比关系数据库更灵活的数据库模式(schema),其中每个数据元素不需要存在于每个数据实体中。更松散定义的数据结构会随着时间的推移而发展,因此NoSQL数据库在某些场景下可能是更实用的解决方案。NoSQL和关系数据库之间的另一个区别是提供数据一致性的方式。关系型数据库可以确保存储的数据始终保持一致,而大多数NoSQL数据库产品提供了一种较为松散的一致性方法。事实上,关系型数据库产品已经可以提供不同级别的数据库锁、一致性和隔离性,而一些NoSQL则提供了多种一致性模型,可以支持完整的ACID。NoSQL解决了一些关系型数据库无法解决的问题,在处理海量数据时更加得心应手。数据被认为是稀疏的,并非所有元素都被填充,实际值中有很多“空白空间”。例如,像一个有很多0的矩阵。NoSQL虽然在某些数据类型上有一定的优势,但与关系型数据库相比,它的劣势也非常明显。例如,事务完整性、灵活的索引以及缺乏查询易用性。此外,NoSQL还包括四个不同的类别,以支持不同的应用:键值数据库(Key-value)文档数据库(Document)列数据库(Columnstore)图数据库(Graph)每个类别所有的NoSQL数据库都使用不同的数据模型并具有他们自己的长处、短处和使用场景。在选择NoSQL数据库时,需要对不同类型的数据库有深入的了解和了解,同时需要结合数据和应用需求。内存数据库:我们将介绍的最后一类数据库是内存数据库,有时称为主内存数据库。内存数据库主要将数据存储在内存中,而不是基于磁盘的存储。内存数据库的主要应用场景是提高性能。数据存储在存储介质中,I/O延迟会大大降低。因为机械硬盘的转动,寻道时间,转入缓存的动作都在内存中省略了。内存数据库主要针对内存数据访问进行优化,而传统数据库针对磁盘数据访问进行优化。内存数据库产品还可以减少开销,因为它们的内部算法通常更简单并且需要更少的CPU指令。另一个快速增长的领域是多模型数据库管理系统,它支持不止一种类型的存储引擎。许多NoSQL数据库产品支持不止一种数据模型,例如文档和键值。关系数据库产品也逐渐开始支持NoSQL功能,比如在关系数据库引擎之上增加列数据存储。还有其他类型的数据库,但比起以上三种类型,流行度要低得多:XML数据库,主要支持XML数据,类似于NoSQL文档数据库。今天的大多数关系数据库已经提供了XML支持。列式数据库(columnardatabase)是SQL数据库系统的一种,主要针对多行多列读取进行优化,很少针对写入数据进行优化。对象数据库在1990年代变得非常流行,主要是因为对象编程的出现。它类似于NoSQL文档数据库。如IBMIMS分类系统和CAIDMS网络系统,主要运行在大型机上。这两种产品至今仍被许多公司使用。补充提醒在选择数据库管理系统时,仍然需要考虑一些问题。首先是平台支持。目前主流的计算环境包括Linux、Unix、Windows和大型机系统。并不是每个数据库产品都支持以上四种平台。另一个考虑因素是供应商支持。许多数据库产品都是开源的,尤其是NoSQL数据库。开源技术可以提高灵活性并降低成本。但它缺乏商业支持,除非你购买商业版。当管理和支持遇到问题时,很多开源产品的成本就会暴涨。您还可以选择一体式数据库或云数据库。前者预先与硬件集成并针对数据库应用程序的性能进行了优化,并且开箱即用。使用一体机可以减少部署和配置开销,制造商将提供硬件和软件的集成支持。后者更适合缺乏IT技术人员的企业,数据库运维可以由云服务商为你解决。总结如果您在选择数据库,首先需要确定您的具体需求,然后考察不同类型的数据库产品所提供的不同功能,看是否满足您的需求。然后再考虑具体的应用场景,针对这些应用优化了哪些数据库产品。其实,在做决定之前需要考虑的变化因素很多,只有做好充分的准备,才能做出最正确的选择。
