SQL 五十周年:何去何从?

devtools/2024/10/21 3:06:12/

原文地址 https://www.infoworld.com/article/2337457/sql-at-50-whats-next-for-the-structured-query-language.html

SQL 即使被生成式 AI 隐藏在幕后,也将继续在数据交互和使用方面发挥关键作用。

在这里插入图片描述

CREDIT: PAVEL L PHOTO AND VIDEO / SHUTTERSTOCK

1974 年 5 月,Donald Chamberlin 和 Raymond Boyce 发表了一篇关于 SEQUEL 的论文,这是一种可用于管理和分类数据的结构化查询语言。由于另一家公司拥有 SEQUEL 一词的版权,「结构化查询语言」更名为 SQL。20 世纪 70 年代晚些时候,SQL 被甲骨文等数据库公司与他们的新式关系型数据库产品一起使用。剩下的,就像人们常说的那样,就是历史了。

SQL 至今已有 50 年历史,是围绕数据库设计和采用的。作为一种管理和交互数据的方式,它一直在不断发展。根据 Stack Overflow 的数据,SQL 是专业程序员经常使用的第三大语言。2023 年,国际电气和电子工程师协会(IEEE)指出,SQL 是开发者找工作时最需要掌握的语言,因为它可以与其他编程语言相结合。

纵观当今其他老式语言,COBOL(1959 年推出)、FORTRAN(1958 年首次编译)等也仍在使用。虽关系着高薪职位,它们仍部署在传统项目而非令人兴奋的新项目中。另一方面,SQL 仍被用作人工智能、分析和软件开发工作的一部分,是我们日常与数据交互的标准。

(一)为什么 SQL 仍如此重要?

你可能会问,为什么 SQL 能存活这么久,甚至活得挺好。

它语法非常奇特,与时代格格不入,新手不容易学习。此外,每个数据库供应商都必须支持 SQL,但都有具体差别,因此一个数据库中的操作可能无法轻松转换到另一个数据库,增加了工作和支持需求。

更糟的是,在 SQL 中很容易犯错误,而这些错误可能会带来真正的灾难性后果。例如,如果在指令中缺少 WHERE 子句,可能导致删除整个表而不是执行所需的操作,从而需要大量恢复丢失的数据。这就要求写代码时检查语法逻辑、预先推演代码的实际运行结果,保证准确无误。

那么,为什么在 SQL 首次设计和发布 50 年后的今天,它仍然是处理数据的主要方法呢?

SQL 以强大的数学理论为基础,因此还能有效执行和支持其设计初衷。事实上,当你将 SQL 与关系型数据库相结合时,你就可以将创建的数据以及管理数据的方式映射到许多业务实践中,且这种方式是可靠、有效、可扩展的。简言之,SQL 行之有效、无以替代。

例如,SQL 是第一种可在单次请求中返回多行的编程语言。这样能更容易地获取一组数据(进而项目及其应用)中正在发生的变更,并将其转化供项目使用。SQL 也能将信息分割到不同的表中,用于特定的任务。比如将客户数据放到一个表中,将生产数据放到另一个表中。执行变更的能力是当今大多数流程的支柱,而 SQL 使大规模变更成为可能。

SQL 取得成功的另一个重要原因是,它始终与时俱进。多年来,SQL 从关系型语言的根基出发,增加了对地理信息系统 (GIS) 数据、JSON 文档以及 XML 和 YAML 的支持。这使 SQL 与开发人员理想的数据交互方式保持同步。现在,SQL 可以与矢量数据相结合,使开发者能够使用 SQL 与数据交互,同时为生成式 AI 应用进行矢量搜索。

(二)SQL 的未来如何?

过去曾有人试图取代 SQL。NoSQL(不仅是 SQL)数据库的开发是为了取代关系型数据库,摆脱大规模处理和管理数据的传统模式。然而,这些数据库并没有取代 SQL,而是添加了自己的类 SQL 语言,复制了 SQL 在开发者工作方式中根深蒂固的一些方法和途径。

过去,自然语言处理的倡导者曾呼吁采用新方法来摒弃 SQL 笨拙的标准化方法。然而,这些尝试最终产生的方法与它们试图取代的方法一样笨拙,最终还是被边缘化、被忽视。生成式 AI 可能会为开发者承担更多编写 SQL 的任务,因为作为训练的一部分,大型语言模型已经接触了大量的 SQL 代码。不过,虽然这种方法可能会逐渐发展并变得更流行,但它仍然依赖于 SQL 来与这些数据集进行实际交互,并将结果反馈给用户。如果说有什么变化的话,这可能会使 SQL 在未来变得更加重要,而不是更加不重要,尽管开发者对它的可见度会降低。

即使 SQL 最终会退居幕后,它也将继续在我们与数据交互和使用数据的过程中发挥关键作用。在我们所有的 IT 系统中,有很大一部分都依赖于数据来运行,因此 SQL 不会在短期内消失。因此,让我们庆祝 SQL 50 周年,并考虑未来如何继续开发和使用它。


💡 更多资讯,请关注 Bytebase 公号:Bytebase


http://www.ppmy.cn/devtools/105315.html

相关文章

机器学习怎样将SVM、神经网络、决策树等多种模型组合,通过加权投票、堆叠(stacking)等方法生成最终预测结果,提高预测的准确性。

目录 1. 加权投票(Weighted Voting) 步骤: 优点: 缺点: 2. 堆叠(Stacking) 步骤: 优点: 缺点: 3. 实例:结合SVM、神经网络和决策树 &…

【摸鱼笔记】python 提取和采集 finereport 未绑定目录的报表模板

背景 在企业应用过程中,报表一般会按照数据分析的主题、项目将多个报表放在一处,一些图表类报表会有通过超链接等方式,跳转到对应的明细报表中。 并且在正式的使用中,这些报表不会绑定到目录。 在梳理数据分析项目使用情况时这…

DELTATAU泰道602428-100

DELTATAU泰道602428-100是一款由DELTATAU(泰道)品牌生产的具体型号产品,但由于不同领域的产品种类繁多,且具体产品信息可能随时间更新,以下是根据现有信息进行的综合介绍: 基本信息 产品型号:…

政治哲学(Political Philosophy)

GPT-4o (OpenAI) 政治哲学是研究政治、政府、法律、权利和义务等基本问题的哲学分支。下面是一些政治哲学中涉及的关键概念和层面: 1. 国家和政府的性质: - 国家的定义和目的:探讨什么是国家,以及国家存在的目的和正当性&…

2024前端面试题分享

前言 最近忙着面试很久没有更新文章了,分享一下我收集的前端面经,当然题目仅供参考(乞求秋招offer) 面试题 响应式布局 ---根据用户的的窗口变化而变化的布局方式 react 的hooks ---官方提供的钩子和自定义的钩子&#xf…

Linux下Docker基础命令(使用腾讯云镜像源)

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口&…

Flask中的g的作用

Flask中的g对象是一个非常重要的概念,它在Flask应用程序的上下文中扮演着关键角色。下面我将详细阐述g对象的作用,但由于篇幅限制,无法达到5000字,但会尽量全面而精炼地介绍其关键特性和用途。 Flask中的g是什么? 在…

信息打点-系统篇端口扫描CDN服务负载均衡WAF防火墙

知识点: 1、获取网络信息-服务厂商&网络架构 2、获取服务信息-应用协议&内网资产 3、获取阻碍信息-CDN&WAF&负载均衡&防火墙 演示案例: 1、网络信息获取-服务厂商&网络架构 访问外网80端口,转发到内网80端口 2…