数据库界的四位图灵奖得主(一):时势造英雄
作者:波罗
前言
2015年3月25日,美国计算机协会(ACM)宣布,来自麻省理工学院的教授Michael Stonebraker获得2014年度“图灵奖”(第N年宣布N-1年得主),投石冲破水中天,一些与数据处理相关的微信群中喷发一股图灵奖议论热,有位教授在微信中赞叹“说数据库界一共四位传奇大师,太伟大了“,接着有几位教授提议在今年的教学PPT中,加上相关科普,激励年轻的数据库人。朋友们鼓励我来一篇非传记的、活泼一点的人物故事。
阿兰.图灵
没有诺贝尔, 我们有图灵. 诺贝尔没有机会登上时间机器向前穿越,未能预见到计算机科学对人类之重,于是计算机界没有诺奖。
没有诺奖,计算机科学也要发展,计算机人也要过日子,计算机界的Top贡献也需要Top奖,在需要一个能与诺贝尔相比较的人物作图腾的时候,天公抖擞,不拘一格,降下了图灵。
图灵多才多艺、也多故事、多传说。小时的神童,青年时的马拉松健将(有过名次);善于长跑的图灵,在科学上一趟冲刺,跑在了计算机之前,全世界还没人见过计算机的时候 ,他构筑了“理想计算机”,阐明了通用计算机的可行性,其前瞻性和深刻性,至今影响着计算复杂性理论;有人赞他是计算机科学之父、人工智能之父。
在二战胜利70周年之时,人们更怀念他和他的团队在破译情报方面贡献。
看多了穿越小说的图灵迷问:他为什么有那么多超乎常人的见识?莫非他是从先进的平行宇宙中穿越而来?
数据库界的图灵奖得主
由图灵冠名的概念有 “图灵机”和“图灵测试”,最有名的是“图灵奖”。
从1966年到2014年,49届,共62名得主,按国籍分,美国学者最多,欧洲学者偶见之,华人学者目前仅有2000年图灵奖得主姚期智(现在清华大学)。
62名得主分布在几十个小领域,排在前六的领域有:编译原理、程序设计语言,计算复杂性理论,人工智能,密码学,以及数据库(4名)。在某种意义上,可大致认为,前三个领域与计算机科学本身更密切一些,后三个领域与军民应用更密切一些。
一看就知是聪明人. 下图是数据库界的四位得主。本来,以貌取人是根据不足的,但这四位得主,都有一股学者范(“范儿”是一种感觉,很难严格定义),几位学者,虽近髦耋,眉宇中有一股英气,目光坚定自信,相信在年轻时,叫人一看,就知是聪明人。
按获奖时间排序 ,本文先介绍最早的一位。续篇再介绍后面的三位,争取在篇末议论一下得主们给我们的启迪。
实践出真知—网状数据库,时势造英雄-巴赫曼
查尔斯·威廉·“查理”·巴赫曼(Charles William “Charlie” Bachman),数据库之父,2017年7月13日逝世,享年92岁。在49岁时候(1973年)获得了的图灵奖,是数据库界的第一枚图灵奖。
生逢其时,有文无库. 上世纪60年代,计算机系统还是有文(文件系统)无库(数据库)。数据处理比较艰难,那是一个正需要英雄,就出了英雄的时代;当世界正呼唤数据处理新技术时,年富力强(30多岁)的巴赫曼来了。
他从基层干起,曾在穿孔卡片机上开发程序,在第一线获得了丰富经验,后到通用电气公司,作程序设计部门经理,体验过文件系统处理数据的蹉跎、繁琐和低效,催生了他的数据库梦。
一代很爽的数据库. 他主持设计与开发了最早的网状数据库管理系统IDS(Integrated Data Store),在不惑之年(1964年)正式推出IDS。以今天的目光看,IDS是建立在虚拟内存系统上(实际在磁盘上),如果当时有如今的闪存盘SSD,不用改代码,就会爽的发飙 ;不过那时的人要求低,认为IDS已经很爽了。所以,他被称为网状数据库之父。
格式化 VS 非格式化 , 磁盘 VS 磁带。数据库带来的观念是革命性的。此前,计算机以文件为最小处理单位,处理非结构化的、粒度较大的数据;而数据库中是格式化的、粒度较小的数据(记录或字段)。
有格式和无格式数据的在查、插、删、改的速度方面有天渊之别,作为科普,只好用磁盘与磁带的差别来比喻:
非格式化数据中,查询某一数据项,有如在磁带上搜寻某首歌曲,从头搜索到尾,平均每次搜索磁带长度的一半;而在磁盘或光盘上,从目录(索引)找到那首歌曲的开始扇区,磁头在三维空间中跨界运动,磁带是线性带子固定的磁头,磁盘是极坐标的平面,三维的臂,直达目标,快多了。对插、删、改操作,由于数据库缩小了处理粒度,提高处理效率,更是令文件系统望尘莫及。
网状数据库概念不太容易科普,当年。笔者讲网状数据库课程时,在黑板上画若干记录方块,若干指针链接,大方小方大小方,虚线实现虚实线,两个学时讲完;真的不像关系数据库那样容易科普。
记忆大师们说,要想记忆好,检索快,就要设法把知识点连成网状,建立联想,这就是网状数据库的思想,就这样简单,当然,从思想到设计,再到实现,就需要图灵奖得主的水平了。
报告也能占高地
IDS的成功,使巴赫曼有资格成为DBTG的核心人物之一,DBTG即数据库任务组,隶属于CODASYL(美国数据系统语言委员)。
为了数据库之梦,巴赫曼试图占领美国国家标准这一学术和技术高地,积极推动了DBTG报告。由于各种原因,这个报告,最后没有成为美国国家标准,DBTG任务组坚忍不拔,相继推出一系列版本,如1971,1973、1978、1981年和1984年的修改版本。
尽管DBTG不是国家标准,也不是具体的数据库产品,而只是一个方案,但它提出的观念深入人心,所提出的三级模式,以及把数据库语言分成数据定义语言DDL和数据操纵语言DML的思路, 影响了几代数据库人和数据库产品,如IDMS、PRIME DBMS、DMSl70、DMSⅡ和DMS 1100,甚至,如今的关系数据库中,也能隐约见到它的影子。
这些成果确立了数据库的观念,在IT发展历程中,人们常常见到,被新技术“宠坏“了的用户,再也不愿回到旧技术的怀抱,在这个意义上,有人笼统地说,巴赫曼是(没有定语)数据库之父。
一点思考:需要多少论文才能得到图灵奖?下面有个清单,列出了巴赫曼的重要论文16篇,因为他是1973年的的图灵奖,只列出了1962-1983中的一部分,平均每年不到1篇。
也许多年前 ,计算机界对论文级别,杂志级别的观念与现在不同;单从从数量上看,好像我们现在的杰青、优青、千人、百人快赶上或已经超过了巴赫曼,但是,能做出像IDS这样的货真价实、人用人爱的系统吗?能提出像《DBTG报告》这样改变观念、深入人心,能在数据库发展的几十年历程中留下影子的的“报告“吗?
也许,这种观念的不同,是图灵奖得主心中的那份灵犀。
参考文献 巴赫曼1962-1983的部分论文.
- ‘Precedence Diagrams: The Key to Production Planning, Scheduling and Control.’ In: ProCo Features. Supplement No 24, August 24. 1962..
- ‘Integrated Data Store.’ in: DPMA Quarterly, January 1965.
- ‘Software for Random Access Processing.’ in: Datamation April 1965.
- ‘Data Structure Diagrams.’ in: DataBase: A Quarterly Newsletter of SIGBDP. vol. 1, no. 2, Summer 1969.
- ‘Architecture Definition Technique: Its Objectives, Theory, Process, Facilities, and Practice.’ coauthored with J. Bouvard. in: Data Description, Access and Control: Proceedings of the 1972 ACM-SIGFIDET Workshop, November 29-December 1, 1972.
- ‘The Evolution of Storage Structures.’ In: Communications of the ACM vol. 15, no. 7, July 1972.
- ‘Set Concept for Data Structure.’ In: Encyclopedia of Computer Science, 1972-1973.
- ‘The Programmer as Navigator.’ In: Communications of the ACM vol. 16, no. 11, November 1973.
- 1974.’Implementation Techniques for Data Structure Sets.’ In: Data Base Management Systems
- ‘Why Restrict the Modeling Capability of Codasyl Data Structure Sets?’ In: National Computer Conference vol. 46, 1977.
- ‘Commentary on the CODASYL Systems Committee’s Interim Report on Distributed Database Technology.’ National Computer Conference vol. 47, 1978.
- ‘DDP Will Be Infinitely Affected, So Managers Beware!’ in: DM, March 1978.
- ‘The Impact of Structured Data Throughout Computer-Based Information Systems.’ In: Information Processing 80, 1980.
- ‘The Role Data Model Approach to Data Structures.’ In; International Conference on Data Bases, March 24, 1980.
- ‘Toward a More Complete Reference Model of Computer-Based Information Systems.’ Co-authored with Ronald G. Ross. In: Computers and Standards 1, 1982.
- ‘The Structuring Capabilities of the Molecular Data Model.’ In; Entity-Relationship Approach to Software Engineering. C. G. Davis, S. Jajodia, and R. T. Yeh. eds. June 1983.

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
YARN——队列内的优先级调度
【原理介绍】 在hadoop官方文档中,描述了容量调度支持按任务的优先级来调度。 具体来说就是:客户端向yarn提交任务时,可以指定任务的优先级。任务的优先级是一个正整数,值越大意味着任务的优先级越高;在容量调度的队列中,对任务按优先级进行排序,优先级越高的任务,会优先进行资源的分配。 不同类型的任务在提交时,通过不同参数指定优先级,但基本上大同小异,例如: MapReduce "-Dmapreduce.job.priority=xx" Flink "-yD yarn.applicaiton.priority=xx" Spark "spark.yarn.priority=xx" 注意:spark的参数在3.0版本后才引入使用 既然任务提交时,优先级可以通过参数指定,那么如果没有指定优先级,是否会有对应的默认值呢?答案是肯定的。 在yarn中,任务的优先级有两个维度配置:一个是全局最大优先级,一个是队列默认优先级。 队列中任务的默认优先级在配置文件capacity.scheduler.xml中进行配置,例如: <property><name>yarn.schedu...
-
下一篇
如何写出完美的接口:接口规范定义、接口管理工具推荐
无规矩不成方圆,为了开发人员间更好的配合,我特意整理了这么一篇文档供大家参考学习,如有意见、见解,请在评论区留言探讨。 接口规范说起来大,其实也就那么几个部分,接口规范、接口管理工具、接口文档编写、开发文档编写。 接口规范定义 一、协议规范 为了确保不同系统/模块间的数据交互,需要事先约定好通讯协议,如:TCP、HTTP、HTTPS协议。为了确保数据交互安全,建议使用HTTPS协议。 二、接口路径规范 作为接口路径,为了方便清晰的区分来自不同的系统,可以采用不同系统/模块名作为接口路径前缀。 格式规范如下: 支付模块 /pay/xx 订单模块 /order/xx 三、版本控制规范 为了便于后期接口的升级和维护,建议在接口路径中加入版本号,便于管理,实现接口多版本的可维护性。如果你细心留意过的话,你会发现好多框架对外提供的API接口中(如:Eureka),都带有版本号的。如:接口路径中添加类似"v1"、"v2"等版本号。 格式规范如下: /xx/v1/xx 更新版本后可以使用v2、v3等、依次递加。 四、接口命名规范 和Java命名规范一样,好的、统一的接口命名规范,不仅可以增强其可...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- 2048小游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音