SQL和NoSQL数据库设计之争

日期: 2016-05-12 作者:David A. Teich翻译:张亮亮 来源:TechTarget中国 英文

企业收集了很多大规模增长的松散结构化数据,Hadoop,Spark以及其他新技术处理这些数据非常有助于改善商业智能分析效率。有些人认为使用NoSQL方法设计数据库更好,但这样的观点依然存在一些争论。这些争论来自于某些并不真正理解关键技术和业务概念的NoSQL支持者,这或许就是SQL与NoSQL争论的本质。 为什么会出现这种情况呢?即便是技术人群也已经习惯了自己所处环境的某些事情。

就像一句老话所说的那样,鱼不会去思考关于水的问题。而数据库中该情形下的问题是两类不同的事物,但是人们通常会忽略它们的不同。我所说的是关系型数据库管理系统(RDBMS)和结构化查询语言(SQL)。 RDBMS是存储和管理……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

企业收集了很多大规模增长的松散结构化数据,Hadoop,Spark以及其他新技术处理这些数据非常有助于改善商业智能分析效率。有些人认为使用NoSQL方法设计数据库更好,但这样的观点依然存在一些争论。这些争论来自于某些并不真正理解关键技术和业务概念的NoSQL支持者,这或许就是SQL与NoSQL争论的本质。

为什么会出现这种情况呢?即便是技术人群也已经习惯了自己所处环境的某些事情。就像一句老话所说的那样,鱼不会去思考关于水的问题。而数据库中该情形下的问题是两类不同的事物,但是人们通常会忽略它们的不同。我所说的是关系型数据库管理系统(RDBMS)和结构化查询语言(SQL)。

RDBMS是存储和管理信息的机制。正如Dimplies一样,它是数据库,是可以被操作的信息集合。虽然它是主流的数据库技术,但是RDBMS也只是数据库结构的一种类型而已。对于很多老手来说,还记得IMS么?它仍然由IBM售卖,它是一款分层数据库。如今,我们有了柱状数据库,对象数据库,图形数据库,文档数据库以及其他更多类型的数据库,其中有些是NoSQL的一类。

另一方面,SQL是通过语法和语义的混合来访问数据库信息的一种方式。正如其名字最后一个单词所表现的那样,它是一门语言。它与RDBMS有着很大的不同,而且这也是为什么更新的数据库结构和SQL学习如何共存的原因。

SQL似乎尽人皆知

事实上,关系型数据库和SQL是共同成长起来的,而且它们已经成功携手走过了35年的光景,这意味着对于那些需要在数据库中访问和查询信息的人来说,SQL已经广泛为人所熟知。对于IT人员,业务分析人员甚至是作为部门IT大咖的业务高级用户来说,SQL都是最先考虑的语言。更多人对于在讨论中指出,SQL并没有局限于关系型软件已经有数十年之久了。

1980年代中期,大量数据库在当时意味着有大量的访问途径,而且人们开始寻找解决方案。开放数据库连接(ODBC)的1.0版本接口在1992年发布;最初,它是设计用来在标准SQL和每个关系型数据库供应商自定义SQL实现之间进行翻译的API。然而,它很快在RDBMS访问上得到传播,可以让用户获取平面文件和其他数据源。而ODBC便不再像过去那样需求广泛,但是扩展SQL的概念仍然存在。

而且供应商提供新的数据库类型能够帮助用户从BI和分析应用程序中获得更多的商业价值,这些供应商应该明白的是如果他们想要获得更为广阔的市场应用,那么他们就需要将SQL利用起来。许多其他供应商已经对SQL进行了扩展使其能够与NoSQL系统以及基于文件的Hadoop系统进行交互。

Mark Milani是分析型数据库供应商Actian产品工程部的高级副总裁,他认为,SQL对于大数据用户潜在的好处是“巨大而无法忽视的” 。就拿使用SQL-on-Hadoop查询引擎来说,他指出企业可以依赖那些已有的接受过SQL培训的员工,而不是试图从外面寻找“不明底细且昂贵的”Hadoop专家。

SQL支持普世的数据拓展

在他们的网站上,人们是在称为Spark SQL的Apache Spark开源项目上开展工作的,它是作为一个“处理结构化数据模块”而存在的。这个模块应该看作是Spark编码人员将SQL调用运用于任何所需数据结构的一种途径,无论这些数据结构是关系型,平面文件,柱状的还是有着SQL接口的任何其他数据源。SQL会将异构混合信息带入Spark进行处理。

语言对自身进行扩展并在这一进程中演化。这就告诉那些负担沉重的IT企业,他们必须学习完整的新编程语言或方法以便在新的大数据世界获得成功,而与那些能提供可验证功能的竞争对手相比,这并不会让他们在看似合理的成本上赢得数据库供应商的业务。所有权的总成本以及使用SQL能否降低TCO都是IT管理者和企业高管所关心的问题。

虽然有多理由支持使用非关系型数据库,并且还有一些单独的工具仍能直接对它们三进行处理,但是SQL还将会是访问那些存储在专门数据库和Hadoop集群(大数据环境的中心)中信息最为重要的方法。最后需要说明,SQL和NoSQL之争完全没有必要。

作者

David A. Teich
David A. Teich

资深IT技术顾问

翻译

张亮亮
张亮亮

TechTarget特邀编辑。毕业于北京邮电大学网络技术研究院。熟悉软件开发测试的各个环节和流程,对操作系统,数据库,计算机网络等有较为深入的理解。现就职于中国电子科技集团公司下属研究所,从事软件研发工作。热衷于英文的学习交流,平时喜欢户外运动,音乐,电影。

相关推荐