大家好,我是执念斩长河。今天讲述的是1988年图灵奖获得者詹姆斯·格雷,图灵奖奖励他为数据库技术和“事务处理”做出贡献。读完本篇博文大家可以收获的是:
- 解决RDBMS问题的技术手段和方法
- 格雷如何开发出微软SQL的
- 格雷认为的IT目标
格雷是第三位数据库类别图灵奖获得者,前两位是:
25、1981年图灵奖–埃德加·科德简介
17、1973年图灵奖–查尔斯·巴赫曼简介
如果有兴趣也可以点开查看。
格雷生于1944年,在著名的美国加州大学伯克利分校计算机科学系获得博士学位。其博士论文你有关优先文法语法分析理论的。学成以后,他先后在贝尔实验室、IBM、Tandem、DEC等公司工作,研究发方向转向数据库领域。格雷主要负责数据库产品的技术开发工作,大公司在数据库管理系统(RDBMS)的实现和开发中,遇到了一系列技术问题,而格雷的深厚学识为数据库产生的难题做出了开拓性工作。目前,各RDBMS解决上述问题的主要技术手段和方法如下(学过数据库的看官应该都能懂得):
- 把对数据库的操作划分成称为“事务”(或“事务元”)的一个个原子单位。事务是事务处理的基本执行单位,即一个事务中的操作要么全部被执行,要么全部都不执行,即实行所谓all or none的原则。一个事务一般以一个“开始”语句开始,先从数据库中取出一些数据,然后进行所需的处理,最后以“提交”语句结束。如事务中发生异常,则用“异常终止”语句或“回退”语句撤销本事务执行过程中对数据库已做的所有更新(即所谓undo),将数据库恢复到事务中开始时的正确状态,以保障数据的完整性、一致性。
- 用户在对数据库发出操作请求时,系统对有关不同粒度的数据元素(字段、记录以及整个文件)“加锁”,加锁的数据将被暂时禁止其他用户访问.操作完成后“解锁”。这一机制用以既保持事务之间的“并发性”又保证数据的“完整性”
- 建立系统日志,在系统损坏可以还原并且也可以备份
- 对数据库更新分两阶段提交,这是基于一个事务可能同时涉及两个不同的数据库系统而必需的,这在分布式中尤为重要。
格雷于1993年在微软的“湾区研究中心”担任主管,领导一个研制小组开发出了MS SQL Server7.0成为微软历史上一个里程碑式的版本,而且也成为当今关系数据库市场上的佼佼者。格雷认为,一个好的IT目标应该具有5个关键性质。
- 可理解性。目标应能简单表述并被人理解
- 有挑战性。如何达到目标不是很明显的。
- 用途广泛。
- 可测试性。以便检查项目进展并知道目标是否已经达到。
- 渐进性。中间有若干里程碑,以检查项目进展并鼓舞研究人员干下去