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

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-02-24 14:12:41
香港女警员警署内中枪重伤

香港女警员警署内中枪重伤

看看新闻Knews
2026-02-25 10:00:02
头号怨种出现了!仅仅晚5秒过出口,一浙C牌车缴纳1384.9元高速费

头号怨种出现了!仅仅晚5秒过出口,一浙C牌车缴纳1384.9元高速费

火山詩话
2026-02-25 10:53:39
剑斩楼兰:乌军南线收复400平方公里,第聂伯罗全州解放

剑斩楼兰:乌军南线收复400平方公里,第聂伯罗全州解放

史政先锋
2026-02-24 15:00:08
骑士大胜尼克斯!米切尔打铁,4首发齐发挥,2替补攻守兼备太好使

骑士大胜尼克斯!米切尔打铁,4首发齐发挥,2替补攻守兼备太好使

篮球资讯达人
2026-02-25 11:17:00
广东大外援终于要来了?朱芳雨深夜爆猛料:冲击12冠真的稳了?

广东大外援终于要来了?朱芳雨深夜爆猛料:冲击12冠真的稳了?

篮球快餐车
2026-02-25 07:44:50
“京圈恶少”王烁:睡遍娱乐圈女星,殴打继母王艳,枪指刘涛老公

“京圈恶少”王烁:睡遍娱乐圈女星,殴打继母王艳,枪指刘涛老公

翰飞观事
2026-02-19 21:59:48
乔布斯诞辰日,苹果公司召开股东大会:库克并未接任董事长,也未释放首款苹果折叠屏手机相关信息

乔布斯诞辰日,苹果公司召开股东大会:库克并未接任董事长,也未释放首款苹果折叠屏手机相关信息

极目新闻
2026-02-25 08:38:15
俺们村里的娜娜

俺们村里的娜娜

细雨中的呼喊
2026-02-24 07:05:54
春节旅行,看完三亚账单我沉默了:一家三口10天,烧掉一年血汗钱

春节旅行,看完三亚账单我沉默了:一家三口10天,烧掉一年血汗钱

夜深爱杂谈
2026-02-24 22:41:54
开源作者拒绝了AI的代码,愤怒的AI竟然写了小作文诋毁他

开源作者拒绝了AI的代码,愤怒的AI竟然写了小作文诋毁他

码农翻身
2026-02-24 09:09:06
德国总理默茨抵达北京开始访华,高规格经贸代表团随行

德国总理默茨抵达北京开始访华,高规格经贸代表团随行

扬子晚报
2026-02-25 11:18:35
一条手链涨24000元!周大福启动新一轮涨价,老铺黄金部分门店被抢购一空,只剩下柜台和柜姐……

一条手链涨24000元!周大福启动新一轮涨价,老铺黄金部分门店被抢购一空,只剩下柜台和柜姐……

极目新闻
2026-02-25 08:50:07
彻底撕破脸,巴拿马强闯港口办公区,驱逐中企员工,一点后路不留

彻底撕破脸,巴拿马强闯港口办公区,驱逐中企员工,一点后路不留

石江月
2026-02-24 17:14:46
奥运冠军“拉拉链露胸”,让耐克绷不住了!

奥运冠军“拉拉链露胸”,让耐克绷不住了!

品牌营销报
2026-02-23 11:31:10
高速免费最后60秒收费站上演飞驰人生,有人卡点失败缴费400多元!有人“压哨”通过,两台车省下1000多元

高速免费最后60秒收费站上演飞驰人生,有人卡点失败缴费400多元!有人“压哨”通过,两台车省下1000多元

极目新闻
2026-02-24 00:56:49
女子乘坐动车上厕所时 不慎冲走50g金手链 铁路人员回应

女子乘坐动车上厕所时 不慎冲走50g金手链 铁路人员回应

闪电新闻
2026-02-24 15:53:21
快船选秀时告知科比:如果用7号签选你 我们将成整个洛城的笑话

快船选秀时告知科比:如果用7号签选你 我们将成整个洛城的笑话

仰卧撑FTUer
2026-02-25 10:40:08
关窗!吉林省刚刚预警!

关窗!吉林省刚刚预警!

吉刻新闻
2026-02-25 10:20:18
京东创始人刘强东要造游艇,在广州官宣创立品牌Sea Expandary

京东创始人刘强东要造游艇,在广州官宣创立品牌Sea Expandary

IT之家
2026-02-24 19:22:04
2026-02-25 11:44:49
技术小生
技术小生
互联网技术与技术人的职业发展
957文章数 515关注度
往期回顾 全部

科技要闻

苹果MacBook Pro要加触摸屏了,还带灵动岛

头条要闻

夫妻8年还清百万元债务:在杭州开饭店 几乎全年无休

头条要闻

夫妻8年还清百万元债务:在杭州开饭店 几乎全年无休

体育要闻

曝雄鹿计划今夏追小卡 字母哥渴望与其并肩作战

娱乐要闻

撒贝宁到沈阳跑亲戚 老婆李白模特身材

财经要闻

春节档"开门黑" 电影票少卖了7000万张

汽车要闻

方程豹首款轿车实车图曝光 就等价格了?

态度原创

艺术
亲子
教育
游戏
公开课

艺术要闻

这位艺术家的马赛克画让人惊叹不已!

亲子要闻

上交压岁钱的时候到了

教育要闻

专门听外行的,专门不听内行的:遇到这样的父母,我无语了!

《漫威金刚狼》正式确认9月15日发售 魔形女等经典角色登场

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版