SQL最大竞争对手的简史

2020 年 10 月 25 日 InfoQ

作者 | Cedric Chin

策划 | Tina

那是 1983 年,Oracle 还是一家小公司。当时,拉里·埃里森正专注于重写满是 bug 的数据库产品,而计算机教授、后来成为数据库传奇人物的 Michael Stonebraker 正在迎头追赶。

在《软件战争》(Softwar)一书中,Matthew Symonds 是这样描述这个故事的:

埃里森没有过多地关注销售,对他来说,要让 Oracle 成功,他现在能做的最重要的事情绝对是专注于改进产品。他只是觉得自己此时没有余力去关心一个 CEO 应该做的事情。对 Oracle 的一些人来说,埃里森的做法是一种开明的放权。他说:“你可以这么说,但它更像是退位,而不是放权”。

1名声鹊起的 Ingres

事实上,埃利森完全有理由专注在产品上。Mike Stonebraker 接手了他在加州大学伯克利分校负责的 Ingres 关系型数据库项目,并围绕该项目成立了一家名为 Relational Technology 的公司。虽然 Ingres 的商业版比 Oracle 晚进入市场,但却比 Oracle 发展得更快。1984 年,Oracle 的销售额翻了一番,达到了 1270 万美元,而名声鹊起的 Ingres 的销售额翻了三倍,达到了 900 万美元。埃利森说:“他们真的赶上来了,而且速度很快,因为我们刚刚重写了我们的数据库产品,还出现了质量问题。这些听起来是不是很熟悉?”

与 Oracle 开发 SQL 相比,Ingres 在伯克利的团队有更多的时间开发他们的语言 QUEL,而且很多关系型数据库专家认为它是一种优秀的语言。埃里森说:“也许 QUEL 比 SQL 更好,也许法语比英语更好?但这些并不重要,英语和 SQL 都将会胜出”。

埃里森最担心的是 Ingres 的人才。“我意识到,我们的开发团队不够好,无法跟上 Ingres 团队的步伐,所以我们不得不重新组建我们的团队。Stonebraker 招了加州大学伯克利分校最好的学生,我们就去招加州理工学院、麻省理工学院和斯坦福大学最好的学生。我们还要招聘硅谷最有经验的编程人才。我们从 Xerox PARC 招来了一个优秀的团队。其中的一位,Derry Kabcenell,是 Oracle 公司有史以来最重要的人物之一。多亏了 Derry 和他领导的团队,帮我们解决了 Oracle 3 的质量问题。他推出了一款优秀的数据库产品——一款我们引以为傲的产品,一款会让 Ingres 完蛋的产品——Oracle 4”。

当然,上面这个故事被简单化了。Oracle 4 是一款好产品——当然比满是 bug 的 Oracle 3 要好,但它并不是因为技术上的优势打败了 Ingres,而是因为 IBM 的强大,也因为 Stonebraker 犯了一个错误。

那一年,经过 IBM 和 Oracle 几个月的劝说,美国国家标准协会 (ANSI) 宣布将 SQL 作为标准关系型数据库语言。Symonds 在书中写道:

面对 Oracle 4 的坚不可摧和 Oracle 日益咄咄逼人的销售团队,Ingres 很难保持其势头,但真正的威胁却来自由 IBM 支持的美国国家标准协会 (ANSI) 决定将 SQL 作为标准关系型数据库语言。Mike Stonebraker 甚至不屑于出席委员会会议,为 QUEL 扳回一局,因为在他的意识里,他反对制定任何技术标准。这是一种傲慢的学者行为,而非一个为保护自己公司利益而谨小慎微的商人的行为。

埃里森说:“Stonebraker 发明了 QUEL,并像一位自豪的父亲一样坚持使用它,而 IBM 和 Oracle 支持 SQL 标准。不支持 SQL 严重损害了 Ingres,但 Ingres 缺乏可移植性和读取一致性也是问题。Ingres 的性能也远远落后。所有这一切合在一起,扼杀了 Ingres 作为数据库市场竞争者的潜质”。

2QUEL 究竟有多好?

Symonds 提到,“很多关系型数据库专家认为它是一种优越的语言”,但即使是这样,仍然低估了 QUEL 在现代关系型数据库先驱们心中的地位。

例如,在 1985 年,也就是 QUEL 和 Ingres 被打败的那一年,数据库传奇人物 C.J.Date——他在 IBM 与 Edgar Codd (关系模型的发明者) 一起研究关系模型——写了一篇论文,他在论文中提到 QUEL 是这两种语言中最好的。

为什么?关键点在于 QUEL 与 Codd 提出的关系演算模型非常接近,而 SQL 不是。QUEL 也是一种精心设计的语言,而 SQL 是由工程师开发的,他们在巨大的压力下匆忙将一个名为 System R 的 IBM 数据库推向市场,以此来证明关系型数据库模型可以成为数据存储系统的可行架构。这在今天看起来有点可笑,但在当时,主流观点认为关系型数据库只不过是一个小玩具。

几年后,System R 工程师和 Oracle 的拉里·埃里森证明了关系型数据库就是未来。因此,创建 SQL 的工程师们关注的是数据库性能,而不是语言设计,而且他们从未期望自己发明的接口能够成功并成为标准。

那么 SQL 有什么问题呢?不符合 Codd 提出的关系模型有什么问题吗?

去年年底,我曾与 Holistics 首席工程师 Thanh 进行过一次讨论。他问我:“你对 SQL 有什么看法?”我回答说——就像大多数受过正规训练的程序员一样——“我觉得没问题。你为什么这么问?”

“我认为 SQL 有缺陷”。

“但是 Codd 的关系模型……”

“Codd 的关系模型很棒,但作为该模型的表达式,SQL 是有缺陷的。”

Thanh 在 Slack 的一个评论中解释说:

SQL 不具有可组合性,这是大多数 SQL 用户都不知道的事实。SQL 所基于的关系模型是绝对可组合的,但 SQL 不是,因为它在语言方面存在一些固有的限制 (它的设计类似自然语言)。当你写"select x from a where z"时,实际上是在沿着"from a" => “where z” => "select x"这样的路径构建语句,而且每个部分都可以单独写出来。如果你熟悉 dplyr、Spark 或 Pandas,就会明白这个。

就我所知,QUEL——它更接近 Codd 的关系演算模型——具备离谱的可组合性。我们可能曾经生活在一个 QUEL 和 SQL 相互竞争的世界里,在这个世界里,它们都说自己是“最好的”语言,并找到了自己的利基市场。

但是,世界不是这样运作的。如果世界以另一种方式运作,我们就不会用 QWERTY 键盘打字,也不会说英语了,取而代之的是 Dvorak 键盘和世界语。从那时起,世界已经对 SQL 进行了标准化,而对另一种历史的遐想只存在于那些参与过早期数据库战争的人的头脑中。System R 是由当时计算机行业最强大的公司 IBM 开发的,开发 System R 的工程师们后来又想出了一种复杂的语言接口,IBM 随后采用了这种语言,并推动其成为标准,一直延续到今天。

当然,整个故事还没有结束。Stonebraker 在 1982 年 fork 了 Ingres 代码库创办了自己的公司,在 80 年代惨烈的数据库战争中失败后,他于 1985 年回到伯克利,开始了一个后 Ingres 数据库项目。很自然地,他将这个数据库命名为 Postgres——在 Ingres 之后的意思。

就这样,PostgreSQL 诞生了。

原文链接:

https://www.holistics.io/blog/quel-vs-sql/


InfoQ 写作平台欢迎所有热爱技术、热爱创作、热爱分享的内容创作者入驻!

还有更多超值活动等你来!

扫描下方二维码

填写申请,成为作者

开启你的创作之路吧~

点个在看少个 bug 👇

登录查看更多
0

相关内容

甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。
【腾讯IDC】数实共生:未来经济白皮书2021,81页pdf
专知会员服务
74+阅读 · 2021年1月24日
【2021新书】编码艺术,Coding Art,284页pdf
专知会员服务
74+阅读 · 2021年1月10日
【斯坦福经典书最新版】语音语言处理,653页pdf
专知会员服务
51+阅读 · 2021年1月1日
【2020新书】Python文本分析,104页pdf
专知会员服务
98+阅读 · 2020年12月23日
【干货书-IBM推荐】机器学习傻瓜式入门,75页pdf
专知会员服务
49+阅读 · 2020年9月29日
德勤:2020技术趋势报告,120页pdf
专知会员服务
190+阅读 · 2020年3月31日
Gartner:2020年十大战略性技术趋势, 47页pdf
专知会员服务
77+阅读 · 2020年3月10日
电力人工智能发展报告,33页ppt
专知会员服务
128+阅读 · 2019年12月25日
图数据库竞争日趋激烈,淘汰正在进行
InfoQ
7+阅读 · 2020年2月13日
阿里技术专家:优秀工程师是怎样炼成的?
51CTO博客
8+阅读 · 2019年6月15日
移动开发的下半场,iOS开发者应该学什么?
前端之巅
3+阅读 · 2019年4月17日
最好的激励,是激发员工的自驱力
华章管理
10+阅读 · 2019年4月14日
你了解 Julia 吗?
开源中国
3+阅读 · 2018年8月20日
那么多SQL书,为什么这本成为了经典?
图灵教育
4+阅读 · 2018年7月20日
2018 怎样让自己更值钱?
Python开发者
3+阅读 · 2018年3月20日
2018,怎样成为抢手的机器学习人才
Python开发者
6+阅读 · 2018年3月1日
Arxiv
0+阅读 · 2021年1月22日
Bidirectional Attention for SQL Generation
Arxiv
4+阅读 · 2018年6月21日
Arxiv
5+阅读 · 2017年11月30日
VIP会员
相关VIP内容
【腾讯IDC】数实共生:未来经济白皮书2021,81页pdf
专知会员服务
74+阅读 · 2021年1月24日
【2021新书】编码艺术,Coding Art,284页pdf
专知会员服务
74+阅读 · 2021年1月10日
【斯坦福经典书最新版】语音语言处理,653页pdf
专知会员服务
51+阅读 · 2021年1月1日
【2020新书】Python文本分析,104页pdf
专知会员服务
98+阅读 · 2020年12月23日
【干货书-IBM推荐】机器学习傻瓜式入门,75页pdf
专知会员服务
49+阅读 · 2020年9月29日
德勤:2020技术趋势报告,120页pdf
专知会员服务
190+阅读 · 2020年3月31日
Gartner:2020年十大战略性技术趋势, 47页pdf
专知会员服务
77+阅读 · 2020年3月10日
电力人工智能发展报告,33页ppt
专知会员服务
128+阅读 · 2019年12月25日
相关资讯
图数据库竞争日趋激烈,淘汰正在进行
InfoQ
7+阅读 · 2020年2月13日
阿里技术专家:优秀工程师是怎样炼成的?
51CTO博客
8+阅读 · 2019年6月15日
移动开发的下半场,iOS开发者应该学什么?
前端之巅
3+阅读 · 2019年4月17日
最好的激励,是激发员工的自驱力
华章管理
10+阅读 · 2019年4月14日
你了解 Julia 吗?
开源中国
3+阅读 · 2018年8月20日
那么多SQL书,为什么这本成为了经典?
图灵教育
4+阅读 · 2018年7月20日
2018 怎样让自己更值钱?
Python开发者
3+阅读 · 2018年3月20日
2018,怎样成为抢手的机器学习人才
Python开发者
6+阅读 · 2018年3月1日
Top
微信扫码咨询专知VIP会员