热议:SQL是否只针对关系型数据库?新进展揭示更广应用
一直以来,很多人都觉得SQL只是和关系型数据库绑在一起的工具,比如像MySQL、PostgreSQL这种。但现在,这个话题在技术圈里又被重新拿出来讨论了,因为有越来越多其他类型的数据库也开始支持SQL,或者出现了类似SQL的查询语言。这让大家开始思考,SQL是不是已经突破了它原本的领域。
SQL的起源与早期的关联
SQL最早是在上世纪70年代被设计出来的,它的全称是结构化查询语言。它诞生的背景就是为了管理关系型数据库,也就是那种把数据整理成表格形式的数据库。在很长一段时间里,SQL和关系型数据库基本上是划等号的。很多程序员学习数据库,都是从学SQL操作MySQL开始的。这种紧密的联系也让很多人形成了一个固化的印象:SQL就是关系型数据库的专属语言。
新进展:SQL向非关系型数据库的扩展
最近几年,情况发生了很大变化。随着数据类型的多样化,出现了很多非关系型数据库,比如文档数据库、图数据库、时间序列数据库等。有意思的是,这些数据库的很多产品也开始提供SQL或类SQL的接口。根据数据库领域的资讯网站“数据库内参”在2023年的一篇综述文章中提到,像MongoDB这样的文档数据库通过其Atlas查询服务支持了类SQL的查询语法;而像InfluxDB这样的时间序列数据库,其专门开发的InfluxQL语言也大量借鉴了SQL的设计理念。甚至一些分布式大数据处理框架,比如Apache Spark,它的Spark SQL模块也允许用户用SQL来操作非结构化的数据。这些进展都表明,SQL的适用性正在变广。
背后的原因与带来的好处
为什么会出现这种趋势呢?技术社区“开发者前线”在最近的一次线上讨论中分析,最主要的原因是SQL语言本身具有强大的表达能力和广泛的用户基础。对于开发者来说,SQL是一种声明式的语言,用户只需要告诉数据库“想要什么”,而不需要详细描述“怎么去获取”,这大大降低了使用的复杂度。而且,全世界有海量的开发人员已经熟练掌握SQL,让新的数据库系统支持SQL或类似语法,能极大地降低他们的学习成本,促进新技术的普及。一个典型的例子是,根据数据分析公司“数据观”在2022年发布的一份调查报告,超过70%的数据分析师表示,如果一个新的数据存储系统支持SQL查询,他们会更愿意去尝试和使用它。
未来的展望与持续的讨论
尽管SQL在向外扩展,但关于它的争议和讨论也没有停止。一些专家认为,生硬地将SQL套用在非关系型数据模型上,有时并不能完全发挥出那种数据库的优势,比如在图数据库中高效地查找关系路径。而另一些人则认为,SQL作为一种被广泛理解的“通用查询语”,其核心思想是宝贵的,通过适当的扩展和适配,完全可以成为连接不同类型数据库的桥梁。开源项目“Presto”的成功(它允许用单一的SQL查询来联合查询多个异构的数据源)似乎佐证了后一种观点。这场热议还在继续,但它清晰地揭示了一个事实:SQL的应用范围已经远远超出了传统的关系型数据库,正在数据世界的各个角落扮演着越来越重要的角色。