SQL同时也启发了非关系数据库的查询语言设计

在 SQL 被引进的 45 年中,它经历了过相当多据库的诞生和消灭,也经历了好相当多量管理情势的诞生和衰亡。

图片 1

作者 | Jennifer Ouellette

译者 | 弯月

责编 | 屠敏

以下为译文:

四十两年前,两位年轻的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是遵照关系代数的功底,指标是透过提供二个好像于朝鲜语的查询语言来更简短地贯彻以下目的:

固然如此大数目盘算为数据仓库扩大和替换关系型系统,但它们计划利用同一的SQL语言。Hive, Impala、Drill、BigSQL使用的言语都十分受SQL启发,优化器和实践类似于SQL的MPP施行。他们还定期增加新的SQL功用。所有那些都发出在您能体会理解的每体系型的数据存款和储蓄和模型上。SQL中数量存款和储蓄格式、数据模型和询问管理的分别带来了由此可见的裨益。在SQL被引进的45年中,它经历了过很多据库的诞生和消失,也经历了成百上千数目管理方式的降生和衰亡。帮忙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 杰森)、SQL/XML、SQL from InfluxDB、SQL/Spatial、CQL in Cassandra等等,乃至NoSQL数据库也实现了SQL和SQL启发的询问语言。纵然在新的炫人眼目的“数据精确”世界中,SQL手艺也是猛烈推荐的。Lukas Eder在她的“must-see”谈话中解说了这点。有关她的说道,请参见相关链接。

当今,NoSQL数据库相关的SQL项目要比SQL数据库的门类多。

图片 2

SQL 为什么会中标?

评估SQL支持

既然SQL无处不在,那么您就必要在协理等级上开展尽责考察。

N1QL的创始人Gerald Sangudi曾经说过,SQL是马到功成的,因为它意味着了数据管理的基本操作。SQL援助一组丰裕的操作:select-join-nest-unnest-group-aggregate-having-window-order-paginate-set-ops。那是大家在钦点数量操作时的主见呢?即便还会有待观看,但像Python和Java那样的言语正在为多少的这一个操作加多运算符。只怕,其余人也会效仿。SQL已经跻身了关系型数据库模型未有涉足的圈子。能够不用夸张地说:

SQL已死,但SQL将永存!