50年长盛不衰,SQL为什么如此成功?早期数据库管理的历史—IDS 和 CODASYL网络数据模型——比如今的关系模型更好?关系模型的到来关系数据模型 vs 网络数据模型SQL 崛起SQL 的竞争者S( 三 )


布什内尔定律
仅仅建立在第一性原则上并不能保证其成功 。 汇编是程序员所能做到的最接近输入1和0的程序 , 但它仍然被COBOL(后来是C)所取代 。
它缺少的一个关键要素是可用性 。
从网络模型到关系模型的转换 , 我们看到同样的情况 。 网络模型性能更好 , 但是现在每个公司都在使用关系型数据库 , 因为它很容易(入手) 。
最好的游戏易于学习而难于精通 。 ——Atari创始人诺兰·布什内尔
诺兰·布什内尔知道如何让人们使用新产品 。 但遗憾的是 , 汇编既难学又难精通 。
SQL找到了完美的平衡 。 10个左右的SQL命令 , 任何人都可以学会其中的20% , 并完成80%的工作 。 但是要想精通 , 需要经过长期的积累 , 具备丰富的索引、视图和优化经验 。
倾听和调整
查询语言不是一块永恒的巨石 , 而是一组随时间变化的自适应标准 。 随着时间的推移 , SQL标准一直在不断调整 , 并加入了来自用户的反馈 。
从概念最初提出开始 , 我们看到了10种不同的SQL标准 , 它们都有重要的更新 。 以下是三项比较大的:
SQL:1999:添加了正则表达式匹配、递归查询(例如传递闭包)、触发器、对过程语句和流控制语句的支持、非标量类型(数组)和一些面向对象的特性(例如结构化类型) 。 支持在Java中嵌入SQL(SQL/OLB) , 反之亦然(SQL/JRT) 。 SQL:2003:引入了与XML相关的特性(SQL/XML)、窗口函数、标准化序列和自动生成值的列(包括标识列) 。 SQL:2016:添加行模式匹配、多态表函数、JSON 。SQL语法不是强制性的 , 它只是提供了一个数据库标准 , 每种数据库都可以创建它们自己的实现(T-SQL、MySQL、PSQL等) 。
采用API
SQL成功的最后一个秘密是应用程序编程接口(API)的兴起 。 API通过抽象底层实现 , 只公开开发人员需要的对象或操作 , 简化了编程 。
API让SQL可以使用专门的语法适应新技术的发展 。 2006年 , Hadoop引入分布式文件系统(HDFS) , SQL语法最初是无法访问该系统的 。 然后 , 在2013年 , Apache创建了ApacheImpala , 它允许开发人员使用SQL查询HDFS数据库 。
小结SQL是当今最普遍的编程语言之一 , 但我们经常忘记它的历史有多久了 。 它的旅程开始于现代计算机的黎明 , 由2位图灵奖获得者赋予了它生命 。 对于为什么SQL能够保持其主导地位 , 我已经分享了我的看法:第一性原则、布什内尔定律、调整和API 。 您认为促成SQL成功的主要因素是什么?请给我留言 。
还有一项50年来都没有改变的技术 。
SQL编辑器
随着越来越多的人学习SQL , 数据库使用越来越需要协作 。 如今 , 开发人员可能会与营销团队的成员一起分析用户数据 , 或者与数据科学家一起调试查询 , 市场上也出现了越来越多基于SQL编辑器的各类数据库管理工具 , 如Navicat、DBeaver、DataGrip等 。
而随着云的趋势 , 又有一批新型数据库管理工具登上舞台 , 如CloudQuery 。 CloudQuery作为一体化数据管控云平台 , 不仅仅作为一款SQL编辑器使用 , 更集成了开发者和DBA日常所需各种数据工具 , 致力于将SQL数据操作体验做到极致 。
官网地址:https://cloudquery.club/