当前位置: 首页 > 科技观察

27岁发明SQL后,上帝带走了他

时间:2023-03-14 21:00:28 科技观察

1974年,图灵奖得主查尔斯·巴赫曼参加数据库会议,结识了埃德加·科德。科德还没有获得图灵奖,但他的关系型数据库就像一轮从东方升起的红日,获得图灵奖是迟早的事。一个是网络数据库的领导者,一个是关系数据库的旗手。两位大师展开了一场星火燎原般的辩论。对于今天的程序员来说,MySQL、Oracle等关系型数据库已经司空见惯。在数据库教材中,关系型数据库几乎贯穿始终,而层次型数据库和网络型数据库只是数据库发展史上的一个小点缀。但在20世纪70年代,新生的关系数据库受到质疑。因为当时大家都认为程序员应该是数据结构的领航员。程序员可以记住网络数据库中每条记录与其他记录的关系,然后通过“指针”对记录进行导航和访问。.Codd有一个完全不同的想法:程序员不应该接触底层的物理结构。应该有一种更高级别的声明性语言来访问数据,与数据库的底层数据存储方法完全隔离。使用声明式语言来描述查询,数据库能否“巧妙地”将其转换为底层的物理查询?要知道,一门高级语言(如Fortran)的编译器是费了一番功夫才开发出来的。1972年,IBM招兵买马,决定攻占这座山头。IBM以科德所在的加州圣何塞研究所为中心,开发了一套原型关系数据库产品。加入这个原型项目的是两名年轻的博士生,他们将共同做出载入史册的伟大贡献。张伯伦和博伊斯都赞同科德的关系模型。我觉得这个想法简单而美好,只有一个缺点:太数学化了!Codd提出的基于关系模型的查询方案更是让人望而生畏。张伯伦和博伊斯决定隐藏数学。他们把关系叫做表,然后用简单的英文SELECTFROMHERE代替复杂的数学符号,让普通人也能看懂。最终,晦涩的关系代数和关系演算变成了非专家也能理解的英语。他们称这种语言为SEQUEL:StructuredEnglishQueryLanguage,这是一种结构化的英文查询语言。后来因为SEQUEL已经是英国公司的商标了,所以两人灵机一动,把名字改成了SQL,这样更简单也好记。在技??术会议上提出。他们两人掷硬币决定谁会读这篇论文,博伊斯赢了。但不幸的是,就在会议结束一个月后,Boyce因脑瘤去世,年仅27岁。Boyce的贡献不仅仅是SQL。他与Codd合作建立了一个数据库教科书中必须讲授的概念:BCNF范式。张伯伦失去了他最好的朋友,继续履行博伊斯的遗产。他被任命为SystemR的技术经理,在SystemR中实现SQL,同时用来证明关系型数据库的能力:能否处理商业交易。同时,出于同样的目的,加州大学伯克利分校也在开发名为Ingres的关系型数据库,但他们提出了一套自己的查询语言:QUEL20世纪80年代,计算机价格持续下降,最终达到临界点要点:大量的任何公司都可以购买电脑和软件来将他们的纸质表格存储在电脑上。对数据库的需求开始激增。由于“表”非常容易理解,因此很容易开发基于关系数据库的程序。SystemR和Ingres都取得了成功,但SQL和QUEL之间谁能一统天下呢?而此时,在德所在的城市圣何塞科学城,一个名叫拉里的年轻人改变了天平的天平。Larry立即与他的两个朋友成立了一家小公司,以开发基于VAX小型机的关系数据库。深受张伯伦和博伊斯论文的影响,自然而然地选择了SQL。1979年,甲骨文正式问世,拉里凭借“关系”成功将数据库卖给了美国几个政府部门。Oracle在美国政府的应用非常成功,以至于美国政府颁布了联邦信息处理标准,规定联邦数据库应该使用SQL而不是其他查询语言!SQL的流行做出了重大贡献。很快,SQL被ANSI、ISO和其他重要组织采纳为正式标准。官方认证的SQL打败了QUEL,成为最后的赢家。在1990年代,连Ingres自己也放弃了QUEL,开始拥抱SQL。关系数据和SQL在80、90年代席卷市场,占据主流。Corder于1983年获得图灵奖。Chamberlain于1988年获得ACM软件系统奖。在1990年代后期,出现了一种新的数据格式:XMLXML非常火,每个人都迫不及待地想与XML相关。这种数据格式与关系型数据库有很大区别,同样面临着如何从中查询的问题。Chamberlain利用他的专业知识为其定义了一种新的查询语言XQuery。但是时间证明,XML并没有成为一种被广泛使用的数据存储格式,所以XQuery并没有像SQL那样被广泛使用。经过多年的发展,SQL产生了广泛的影响,成功占领了广大程序员的心。很多产品为了降低学习成本,虽然底层不是关系型数据库,但还是试图向SQL靠拢,尤其是SELECT、FROM、WHERE、OrderBy、Group等核心概念。SQL已经成为数据查询之王。直到有一天,一个叫NoSQL的家伙带着一帮小弟出现了。NoSQL将于下周与小伙伴们见面,敬请期待!