关系型数据库已死?

斯科特·斯通(scott stone)2018年5月2日 相隔译
如果你认为我是标题党,那么你是对的。但是不管怎样,请允许我回顾一下关系数据库市场的发展历程——它从哪里来,将到哪里去?
什么是关系型数据库
任何阅读本文的人肯定已经知道这个定义,但是与其他数据管理系统相比,关系数据管理系统到底意味着什么?
关系数据库指的是将数据集组织成离散的表,这些表通过公共数据字段相互关联。它从早期搜索效率很低的一般数据管理系统发展而来。在acid(原子性、一致性、隔离性、持久性)成为它的开发原则之后,现代关系型数据库开始真正起飞。acid这个缩写是1983年andreas reuter和theo harder创造的。oracle、sybase和informix都是早期关系数据库市场领导者。
acid标准是关键,因为它支持可靠的数据事务,这可能是应用程序的基础,需要速度、数据可靠性和完整性。持久事务是支持在企业级数据库上构建erp(企业资源计划,enterprise resource planning)应用程序的关键要素。
那么,既然成功了,为什么还要考虑关系数据库管理系统是否已经死亡呢?
炒作和现实……以及炒作的现实
几年前,我开始思考这个问题,当时我的一个同事在一个小组会议上漫不经心地宣称,应用程序开发领域的时髦声音都不再讨论数据库(至少不是传统的数据库)。取而代之的是,新的热情都围绕着nosql、大规模的扩展架构、以及不用对数据存储施加烦人的限制。随着人们不断试验并推出不同类型的应用,人们对这一技术的兴趣越来越浓厚。
人们很难反驳这种乐观情绪,因为在所有领导者中,科技的普及程度显然越来越高。这些观点来自于那些渴望成为下一个技术爆炸前沿的开发者们的喋喋不休。这里肯定有点什么,但它将如何和何时发生?
gartner公司提出了技术炒作周期的概念,技术炒作周期是产生革命性技术的一般模式。其中心思想是对新概念的大肆宣传总是领先于技术的有效使用。这种热潮通常会在科技热潮中催生大量初创企业,以便成为第一批将这种承诺货币化、并利用第一波人气致富的企业。
当然,炒作循环的周期部分意味着,尽管这种兴奋可能会持续下去,但将新产品货币化的努力可能无法满足膨胀的预期。幻灭的低谷来自于未能尽快实现革命。由于市场增长速度不够快,不足以维持最初的热情,通常会有一些初创企业必须重组。
如果所讨论的技术没有被更好的替代技术所取代,如果投资者能够经受住这个低谷,那么我们就会逐渐学习有效的技术方法。只有这样,这项技术才会触及生产率的停滞期,这意味着它将会扩散并产生持久的影响。
从nosql到newsql到混合体到“非传统”
尽管nosql这个术语最初是carlos strozzi在1998年为他的开源关系数据库创造的,但是2009年之后流行起来的nosql数据库却不同。在strozzi nosql仅仅排除结构化查询语言接口的地方,2009年大多数被称为nosql的数据库现在完全背离了关系模型。(strozzi建议,更合适的称呼是norel,表示“没有关系”,但nosql名称已经很常用了。)
他对这些nosql数据库感到兴奋,因为它们克服了传统rdbms的范围限制,使应用程序能够在不受固定模式限制的情况下进行扩展。它允许对数据库的频繁更改能够适应应用程序的修改。缺点是事务完整性不那么可靠,应用程序必须在没有标准接口或语言的情况下依托特定的数据库编写。
为了获得nosql的可伸缩性能而维护传统rdbms的acid事务标准和sql接口,rdbms创建了newsql。不久,在与纵列数据库(columnar database)和内存数据库(in-memory databases)的市场讨论中,newsql和nosql被合并在一起,并被称为混合数据库或当前的“非传统数据库”。这个术语涵盖了各种特定目的的数据存储,这些数据存储非常适合解决传统rdbms不适用的各种问题。
因此,尽管传统rdbms新选项的炒作和轰动是不可否认的,但要识别与传统rdbms类似的统一和优越的方面变得越来越困难。
熟悉的模式
我不确定最初的来源,但我曾经读到一个说法,随着不断成长,人们对从事的领域会变得越来越熟悉。并且如果你已经在特定的市场中扎根足够长时间,那么你将开始认识到其他熟悉的模式。
历史不会重演,但总是惊人的相似。
回想一下,在rdbms世界中“三巨头”指的是oracle、sybase和informix时,有一段时间,oodbms(面向对象的数据库管理系统)是讨论组的新热点。大型数据库管理系统(dbms)和微软(microsoft)是sybase sql新贵公司,而ibm一直占据着传统地位。idc和gartner都将oodbms作为一个新类别进行了介绍,具有其在面向对象应用程序开发方面的优势,有些讨论的主题是oodbms是否会完全取代传统的rdbms。
这张图表概述了过去以十年为单位的数据库系统发展历程。但这并不包括单个供应商在此期间的成败。
数据库管理系统(dbms)的年度主要分析师报告追踪了微软sql server的快速增长,因为它将sql server重新塑造成一个以微软为中心的it后台。sybase和informix的营销失败和失误最终使它们脱离了oracle团队。之后,三大巨头成为了甲骨文、微软和ibm,这些公司都拥有庞大的基础和垂直市场,但增长缓慢。
随着这些数据库市场的变化,由于更多的是营销的成功或失败,而不是技术上的优势,领导者在传统的rdbms产品中采用了oodbms特性,因此他们可以很容易地适应对数据类型的新需求。纯oodbms产品又回到了一些特殊应用的小众产品。
从那时起,ibm收购了informix以进一步整合,而sap收购了sybase,主要是为了保护oracle积极追求sap erp客户。作为sap应用程序的后端,sap ase仍然是一个可靠的技术产品,但不太可能再次获得领先的独立rdbms市场地位。
与此同时,重复战场
让我们试着从定量的角度来看待我前面提到的关于新数据存储产品(如nosql)的流行“新热点”。很难衡量“炒作”,但是db-engine站点做的工作和我寻找的一样好。
db-engine站点(https://db-engines/en/ranking)最近的图表显示了各种数据存储产品的趋势。它不是试图衡量收入结果或分析师意见,而是依赖于公开信息、搜索、工作机会、网站提及率等方面的评分。它不衡量具体的因素,如安装或收入,只把排名作为未来成功的早期指标。(关于如何计算和校正分数的更多细节参见db-engine网)
当前的数据库市场格局
解读这个图表和“流行”的趋势是很有启发性的。三个传统的rdbms引擎是扁平的、不变的和无趣的。在过去的几年里,oracle、microsoft sql server和mysql的受欢迎程度并没有太大的变化。但它们都是聚集在一起的,远远超过其他所有条目。我怀疑,如果我们找到了合并收入或实际it设施的方法,这种分离将会更加明显。
但是增长趋势确实来自nosql产品如mongodb,cassandra等...
与此同时,重复战场第二季
那么,传统市场分析师对rdbms供应商的未来有何看法呢?我必须承认,我并没有像微软和甲骨文那样紧密地跟踪它们,因为它们在数据库市场上的地位是显而易见的。他们利用这种领导地位,在应用程序和基础设施中调查邻近的市场。
几年前,gartner甚至停止了对“rdbms市场”的报告,转而采用了“操作性数据库管理系统”这一类别。这个新的市场类别包括传统的rdbms产品和在技术讨论中越来越流行的所有非传统的dbms。
gartner magic quarter展示了gartner如何根据短期结果以及远景和策略对所有这些供应商进行排名。
在这个magic quadrant排名中,首先突出的一点是旧的rdbms市场领导者也是操作数据库市场领导者。正如预期的那样,在执行能力方面,它们比许多较新的产品要高。但引人注目的是,这两家公司在愿景的完整性方面也远远领先于新的竞争者。现在,这只代表了一家分析公司的一致意见,但他们显然不认为挑战者集团中的任何成员会对大型rdbms供应商构成直接威胁。为什么?
总结和预测
问题的答案只是我自己的观点,但我的猜测与oodbms和rdbms的情况类似。大型供应商逐渐找到了将oodbms的最佳部分合并在一起的方法,同时为企业维护rdbms的稳定性。尽管小众应用程序是出于特殊目的而存在的,但很少有应用程序不能被大型rdbms支持。
预计微软和oracle将继续通过增加nosql和newsql优点来减轻rdbms的局限性,这足以使传统rdbms的其他事务优势保持大部分市场收入。收购和整合是不可避免的,这两家最有可能通过这种方式巩固市场领导地位。
虽然不同的dbms产品之间的区别是模糊的,但直到他们犯下重大错误,旧的市场领导者会一直保持这种地位。
操作数据库万岁
请解除任何对nosql (norel)、newsql等新开发项目的怀疑,我并不认为它们是重要的开发,使我们能够超越现有的能力。但我怀疑我们是否会看到新的dbms市场领导者纯粹来自技术优势。rdbms市场引领者就是操作数据库市场的引领者。没有看到任何迹象表明这种情况会很快改变。
rdbms与其说是死了,不如说是重新命名了。
融合已经开始了