暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL寻根问祖系列(一)

SQLBABY 2020-07-06
2375

SQL到底是谁发明的?


作为互联网职业入门级的语言,不要说开发人员,我相信就是产品和运营对SQL也不会陌生,甚至连销售都知道select * from ……


可是你知道这简单又好用的SQL是谁发明的吗?今天就带大家来扒一扒SQL的发明史。



1、SQL名称的由来

我们先看下SQL的全称:Structured Query Language,中文翻译:结构化查询语言为什么叫结构化呢?因为它主要操作的操作对象是结构化的数据,那什么是结构化数据呢?这个自己问度娘,这里就不延伸了。查询是什么?顾名思义,就是查找、咨询的意思,通俗一点的就是把数据取出来。语言:这里的语言主要是指开发语言,比如java、python等等,但是SQL应该算是半开发语言,因为无法单独使用开发一个独立的程序,SQL语言可以嵌套在java等语言里面使用,但是我们无法把python嵌套在java里面使用,所以sql并不是一种完全独立体系的语言。


SQL还有一个曾用名叫SEQUEL(Structured English Query Language),对比上面中文自己翻译哈,为什么开始起了这么一个古怪的名字呢?这还要从SQUARE(Specifying Queries As Relational Expressions)说起,这也是提到SQL你就会想到数据库的关系,刚开始SQL就是为关系型数据库服务的。不过这个名字并没有用多久,难道是这个名字不好听?现在看起来还像是的,又长又不好读,实际情况是一家英国的航空公司注册这个名字,所以他们就舍弃这个名字。


说了这么多好像有些跑题了,名字起好了,发明他的人居然还没出来。下面我们就把他们一一请出来。


2、关系数据理论之父Edgar F. Codd

第一位要出场的是Edgar F. Codd,中文名埃德加·科德,这是一位计算机的大牛,作为一名扛过枪(参加过二战)的程序员凭借关系数据模型理论获得了图灵奖。你可能会问这理论是什么啊,居然这么牛逼!核心思想就两个:关系代数和关系演算,后面有这边论文的链接,感兴趣的可以自己研究下。然而要说这位大牛的职场并不顺利,虽然加入了IBM公司,但是并不受重视。在提出关系数据模型后,IBM拒绝为其实现,后面在迫于外界压力的情况下才不得不在其 System R 系统上实现该理论,可是还不让科德参与,找了几个不甚了解关系理论的程序员倒腾出了SEQUEL。既然这么好的东西IBM不重视,那就别怪人家ORACLE不客气了,靠着这套牛逼的理论,ORACLE今天的市值超过了IBM,哎,不知道IBM后悔了没有。


3、写第一句SQL的人:Donald D. Chamberlin 和 Raymond F. Boyce


等等,说了这么多,好像还没有说SQL到底是谁发明的。其实是海尔兄弟,哦不对,是 Donald D. Chamberlin 和 Raymond F. Boyce ,这两位又是谁呢?前者Donald D. Chamberlin(钱博林)也是一位计算机大牛,最有名的成就就是实现了SQL语言和XQuery后者Raymond F. Boyce(博伊斯)必须也是一位计算机大牛,他的名字你可能没听过,但是他的理论名字你一定知道,那就是著名的范式理论:BCNF的奠基者,当然另外意向重要的贡献就是发明了SQL。可惜,这位大牛英年早逝,27岁就留下妻子和孩子而去。他死于动脉瘤,不像我们的程序员大部分是加班猝死。想想别人27岁之前就这么牛逼了,我还是赶紧加班撸代码吧。两位大牛经过近4年的研究终于在1974写出了牛逼的SQL语言。


总结一下SQL的诞生里程,Edgar F. Codd,发表了一篇牛逼的论文A Relational Model of Data for Large Shared Data Banks”,链接地址:https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf,借此一举成名。而他的两个同事Donald D. Chamberlin和Raymond F. Boyce根据这篇牛逼的论文,发明出了简单好用的SQL语言。


下面是SQL三剑客的三角关系图:


本期SQL的发明就介绍到这里,下一期我们扒一扒SQL有多少版本。



文章转载自SQLBABY,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论