网易首页 > 网易号 > 正文 申请入驻

SQL 已死,但 SQL 将永存!

0
分享至

点击关注上方“逆锋起笔”,

设为“置顶或星标”,第一时间送达干货

在 SQL 被引入的 48 年中,它经历了许多数据库的诞生和消亡,也经历了许多数据处理方式的诞生和消亡。

以下为译文:

四十八年前,两位年轻的IBM研究人员在数据库上提出了一种新的语言,这是一种关系型语言,它奉行一切数据可以被声明性地操作和容易操作的思想。自Don Chamberlin和Ramond Boyce出版《SEQUEL:结构化英语查询语言》一书后的几年里,关系模型和SQL已经扩展并被大量的技术所采纳,如OLTP、OLAP、对象数据库、对象关系数据库,甚至NoSQL等等。SQL同时也启发了非关系数据库的查询语言设计:如SQL for Object-Database(用于对象数据库的SQL),SQL for Object-Relational(用于对象关系型数据库的SQL),SQL for XML、SQL for Spatial、SQL for Search、SQL for JSON、SQL for Timeseries、SQL for Streams等等。每个BI工具都使用各种各样的SQL与数据交互。实际上,SQL是最成功的第四代语言。

“SQL是一种只有它自己的力量才能超越它的神秘手段。”——Lukas Eder

正如Don最近所说的,SQL是基于关系代数的基础,目的是通过提供一个类似于英语的查询语言来更简单地实现以下目标:

  • 声明性的语言和流程(而不是程序性的)

  • 使语言可组合以帮助轻松编写复杂的查询

  • 和Edger F Codd开发的关系模型共同工作

虽然大数据试图为数据仓库扩展和替换关系型系统,但它们试图使用相同的SQL语言。Hive, Impala、Drill、BigSQL使用的语言都深受SQL启发,优化器和执行类似于SQL的MPP执行。他们还定期添加新的SQL功能。所有这些都发生在你能想到的每种类型的数据存储和模型上。SQL中数据存储格式、数据模型和查询处理的分离带来了显著的好处。

在SQL被引入的48年中,它经历了许多数据库的诞生和消亡,也经历了许多数据处理方式的诞生和消亡。支持NoSQL运动的一些人暗示SQL和SQL数据库不能将会消亡,即使是无意的。但SQL阵营已经迈步前进,Don Chamberlin最近说道:“当一种语言得到了普遍认可,以至于其他语言开始将自己定义为不是那种语言时,它必须做得非常好。”

另一方面,数据库只是转向了No-SQL。虽然目前对No-SQL的定义是“Not Only SQL”,但最初的想法是不使用SQL,而代之以其他语言和框架,如map-reduce。然而十年后,每个流行的NoSQL数据库都有了一个SQL变体:如Couchbase的N1QL,Cassandra的CQL,Elastic的ElasticSearch。你会说,“MongoDB没有SQL”。我会说,“眯眼想一想!你会看到一个非常简单的SQL实现。” 通过在MongoDB中使用一个简单的,有些程序化的,特别的设计,一些松散组合性的查询,优化以及许多创新都可以使用SQL完成。

虽然关系模型非常成功,但是数据库支持各种数据模型:如JSON, Graph, XML, Timeseries, Spatial, Wide-column, Columnar, Document等等。大多数(如果不是全部)数据库都有自己的SQL版本。如N1Q1(SQL for Jason)、SQL/XML、SQL from InfluxDB、SQL/Spatial、CQL in Cassandra等等,甚至NoSQL数据库也实现了SQL和SQL启发的查询语言。即使在新的酷炫的“数据科学”世界中,SQL技能也是强烈推荐的。Lukas Eder在他的“must-see”谈话中阐述了这一点。有关他的谈话,请参见相关链接。

现在,NoSQL数据库相关的SQL项目要比SQL数据库的项目多。

SQL 为何会成功?

  1. 声明性:你只需要声明输出,查询引擎就会找出执行查询的最佳方式。优化器,特别是1979年Pat Selinger等人发明的基于成本的优化器,帮助持续地改进性能。这为每个新进入者提供了一个很高的标准。最近一篇关于Apache Hive的论文就是一个复杂性和完善涉及的例子为什么SQL如此成功?

  2. SQL不仅用于“查询”,还用于更新数据、执行事务。存储过程,UDF通过将过程语言与声明性SQL相结合来扩展访问范围。

  3. SQL具有可塑性。它已经多次标准化,每次都会添加一本功能齐全的书,一个充满语法的商店,以及一个充满关键词的词典。当然,并非所有的SQL都是相同的。即使是RDBMS上的传统SQL实现也不完全兼容,除非您小心地编写SQL使其兼容。通过所有这些,SQL的原始精神得以保留。SQL的一个进化的例子是SQL++。Don Chamberlin和Mike Carey教授讨论了支持复杂数据模型的需求,使用户和开发人员可以轻松访问JSON中的数据。Don写的书《SQL++ for SQL users:A Tutorial》介绍了SQL++的最新发展,SQL++这种语言是为灵活的JSON数据模型上的数据处理而设计的,它保持了与SQL的兼容。

  4. 就像它所借用的英语一样,SQL对新数据类型、访问方法和用例的新思想和扩展持开放态度。

  5. SQL与数据表示的独立性使其可以用于非关系数据:CSV, JSON和所有大数据格式。有些人把关系模型表示的刚性和SQL的刚性混为一谈。实际上,对于任何给定的Schema,SQL允许你对任何数据格式执行select-join-group-aggregate-project操作。

评估SQL支持

既然SQL无处不在,那么你就需要在支持级别上进行尽职调查。

  1. 找出每个工作负载的特征和目标。例如,交互式应用程序,或交互式分析,或批量分析,或BI工作负载等等。

  2. 支持的声明反映了操作能力。

  3. 在表达式(标量、聚合、布尔值)、联接(内联、左联/右联/全联)、子查询、派生表、排序和分页(LIMIT / OFFSET)方面的语言能力。

  4. 索引:没有正确索引的SQL只是一个图灵机器原型。

  5. 优化器:查询重写,选择正确的访问路径,创建最佳执行路径是使得SQL语言成为成功的第4代语言的原因。有些具有基于规则的优化器,有些具有基于成本的优化器,而有些则两者都有。评估优化器的质量至关重要。典型的基准(TPC-C、TPC-DS、YCSB、YCSB-JSON)在这里对你没有帮助。

  6. 正如我们常说:“数据库有三个重要方面:性能、性能和性能”。测量工作负载的性能很重要。YCSB和扩展的YCSB-JSON将使评估更容易。

  7. SDK:丰富的SDK和语言支持,加快你的开发速度。

  8. BI工具支持:对于大型数据分析,通过标准数据库连接驱动程序来支持BI工具通常非常重要。

N1QL的创建者Gerald Sangudi曾经说过,SQL是成功的,因为它代表了数据处理的基本操作。SQL支持一组丰富的操作:select-join-nest-unnest-group-aggregate-having-window-order-paginate-set-ops。这是我们(或机器)在指定数据操作时的想法吗?虽然还有待观察,但像Python和Java这样的语言正在为数据的这些操作添加运算符。也许,其他人也会效仿。SQL已经进入了关系型数据库模型不曾涉足的领域。可以毫不夸张地说:

SQL已死,但SQL将永存!


逆锋起笔是一个专注于程序员圈子的技术平台,你可以收获最新技术动态、最新内测资格、BAT等大厂的经验、精品学习资料、职业路线、副业思维,微信搜索逆锋起笔关注!

记得点「赞」「在看」

爱你们

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
大溃败!中国网贷公司,在印度全军覆没

大溃败!中国网贷公司,在印度全军覆没

首席品牌评论
2026-01-07 18:20:00
有高人预测:中国手握“两套房”的家庭,未来将迎来3个结果!

有高人预测:中国手握“两套房”的家庭,未来将迎来3个结果!

科学发掘
2026-01-10 04:18:55
彻底凉凉!闫学晶迎来终极噩耗,杨议出言嘲讽 赵本山也救不了她

彻底凉凉!闫学晶迎来终极噩耗,杨议出言嘲讽 赵本山也救不了她

楠楠自语
2026-01-10 10:23:06
1950年,师级首长在成都遭活剥?毛主席拍案而起:116万土匪,一个不留!

1950年,师级首长在成都遭活剥?毛主席拍案而起:116万土匪,一个不留!

寄史言志
2026-01-07 20:37:09
阿富汗突发恶性袭击事件:中方矿业公司遇袭致5死多人被绑

阿富汗突发恶性袭击事件:中方矿业公司遇袭致5死多人被绑

老马拉车莫少装
2026-01-10 00:00:42
新华社消息|中央宣传部、公安部联合发布2025年“最美基层民警”

新华社消息|中央宣传部、公安部联合发布2025年“最美基层民警”

新华社
2026-01-09 20:09:29
何炅2分钟录音曝光,全网听完破防:终于知道撒贝宁为啥怕他了!

何炅2分钟录音曝光,全网听完破防:终于知道撒贝宁为啥怕他了!

川川八卦说
2026-01-10 12:17:24
一位忠诚的“白骨武士”,以跪坐姿势手持长戈,守护王陵3000多年

一位忠诚的“白骨武士”,以跪坐姿势手持长戈,守护王陵3000多年

收藏大视界
2026-01-09 21:36:11
谁说中型旅是“薄皮大馅”?19式轮战:我摊牌,我是全能型战士

谁说中型旅是“薄皮大馅”?19式轮战:我摊牌,我是全能型战士

子桑说
2026-01-10 20:26:29
冲上热搜!取消中小学期末统考,包括高一高二,多地发出通知

冲上热搜!取消中小学期末统考,包括高一高二,多地发出通知

环球网资讯
2026-01-10 17:51:08
画火吴营村日入800万,却喂不饱村民贪婪!他要逃离,太寒心

画火吴营村日入800万,却喂不饱村民贪婪!他要逃离,太寒心

鋭娱之乐
2026-01-04 21:37:14
赖清德没料到,对国民党挥出的致命一击,反而帮了郑丽文大忙

赖清德没料到,对国民党挥出的致命一击,反而帮了郑丽文大忙

文史旺旺旺
2026-01-09 17:42:11
胡宗南明知熊向晖是中共卧底却不抓他,沈醉晚年回忆说出背后原因

胡宗南明知熊向晖是中共卧底却不抓他,沈醉晚年回忆说出背后原因

饭小妹说历史
2026-01-07 09:30:45
周生生“黄金四叶草”项链一夜涨了1.5万元,国内金饰品牌价格新年第一涨

周生生“黄金四叶草”项链一夜涨了1.5万元,国内金饰品牌价格新年第一涨

界面新闻
2026-01-09 23:59:03
邀约偷铁皮遭拒,云南61岁老妇杀害13岁男孩,法院出具的判决书显示:犯故意杀人罪,判处死刑

邀约偷铁皮遭拒,云南61岁老妇杀害13岁男孩,法院出具的判决书显示:犯故意杀人罪,判处死刑

观威海
2026-01-10 14:46:04
四大电诈头目被押解回国,舱内特写首曝光

四大电诈头目被押解回国,舱内特写首曝光

澎湃新闻
2026-01-10 14:59:06
绿军躺回东部第二!布克31+8太阳险胜尼克斯 狄龙27分布伦森27分

绿军躺回东部第二!布克31+8太阳险胜尼克斯 狄龙27分布伦森27分

醉卧浮生
2026-01-10 12:39:19
波兰外交部召见匈牙利驻波兰大使

波兰外交部召见匈牙利驻波兰大使

界面新闻
2026-01-10 08:28:02
52:47!美国投票结果公布,特朗普惨遭背叛,总统权力被没收

52:47!美国投票结果公布,特朗普惨遭背叛,总统权力被没收

博览历史
2026-01-09 17:57:04
因说出“把赖清德狗头斩下来”,台网红“馆长”被提起公诉

因说出“把赖清德狗头斩下来”,台网红“馆长”被提起公诉

参考消息
2026-01-09 19:16:00
2026-01-10 21:24:49
技术小生
技术小生
互联网技术与技术人的职业发展
957文章数 515关注度
往期回顾 全部

科技要闻

传DeepSeek准备第二次震惊全世界

头条要闻

特朗普宣称“不需要国际法” 联合国秘书长表态

头条要闻

特朗普宣称“不需要国际法” 联合国秘书长表态

体育要闻

怒摔水瓶!杜兰特30+12 难阻火箭遭双杀

娱乐要闻

吴速玲曝儿子Joe是恋爱脑

财经要闻

这不算诈骗吗?水滴保诱导扣款惹众怒

汽车要闻

宝马25年全球销量246.3万台 中国仍是第一大市场

态度原创

游戏
艺术
亲子
健康
教育

马斯克女儿叫“彗星亚兹勒”!你会学他这样取名吗?

艺术要闻

王耀中油画作品集

亲子要闻

阿钟的小毛驴糖果小故事

这些新疗法,让化疗不再那么痛苦

教育要闻

CAA E-Newsletter英文电子简报 | Vol.11 中国(杭州)艺术与科技国际双年展特刊

无障碍浏览 进入关怀版