博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纪念关系数据库之父:Edgar F. Codd
阅读量:4109 次
发布时间:2019-05-25

本文共 1544 字,大约阅读时间需要 5 分钟。

[size=x-large][b]纪念关系数据库之父[/b][/size]
大家都说,Edgar F. Codd(通常被称为Ted)是一个才华横溢的人。他的成就之一,是在二十世纪七十年代初开发了一个关系型数据管理模型--存储和操作大量业务数据的一个复杂、完整的理论。根据Codd的设计构建的关系数据库成为了当今企业的基础;银行依赖关系数据库来跟踪资金流动;零售商使用它们来监控库存水平;人力资源部门使用它们来管理员工账户;图书馆、医院和政府机构在其中存储数百万条记录;事实上,世界上几乎所有的企业都在使用某种容量的关系数据库。自从Codd公布其理论以来的30年中,关系数据库已经成为一个年收入近130亿美元的行业。
早期生活
Ted Codd于1923年出生在英格兰多塞特郡波特兰市的一个大家庭中。他曾经就读于牛津大学,主修数学和化学专业,第二次世界大战期间曾在皇家空军服役。第二次世界大战后,Codd动身前往纽约并成为IBM的一名数学编程员。Codd所做的第一个项目是帮助构建一个称为可选顺序电子计算器(Selective Sequence Electronic Calculator,SSEC)的早期计算机,据说该计算机占据了一栋市区办公楼中的两层。
在二十世纪六十年代中期,Codd获得了密歇根大学计算机科学专业的博士学位。之后,他调到了IBM位于加利福尼亚州圣何塞市的开发实验室,在那里,他开始从事关系型数据管理模型(这是一个在很大程度上依赖于数学的模型)的开发。
改进数据库
早期的计算机太大、太昂对了,以至于不能广泛地应用于企业。在二十世纪六十年代,计算机开始变得经济有效,并逐渐被私营机构所采用,同时专门针对企业应用开发了许多标准和语言。其中有两个用于处理数据的模型:层次模型和关系网络模型。
在层次模型中,数据记录以层次方式相互关联;主要记录位于上层,后续的各个记录类型在下层分支。在网络模型中,一层中的记录集可能属于邻近的上层中的两个不同的包含层次中。对于这两种模型,编写查询语句来检索信息要求深入了解数据本身的导航结构,因而这是一个复杂的任务,一般都是由专门的编程人员来完成的。
Codd提出了一个新的解决方案。在最终收集到1970年具有创新性的技术论文--A Relational Model of Data for Large Shared Data Banks(大型共享数据库的关系数据模型)中的一系列报告中,Codd建议将数据独立于硬件来存储,程序员使用一个非过程语言来访问数据。Codd的解决方案的关键,是将数据保存在由行和列组成的简单表中(在这种表中,相似数据的列将各个表相互联系起来),而不是将数据保存在一个层次结构中。按照Codd的想法,数据库用户或应用程序不需要知道数据结构来查询该数据。发表了该论文之后不久,Codd又发布了更为详细的指导原则,提出了其指导创建关系数据库的12项原则。
在Codd的理论公开之后,并没有立即被IBM所采纳。IBM已经对一个称为IMS的层次型数据库进行了大量投资,因而它让其他公司和企业家去考虑如何进一步发展Codd的理论。其中的领袖人物是拉里o埃利森,他在1977年与Ed Oates和Bob Miner一起研制了世界上第一个商用关系型数据库管理系统,在此过程中,创办了一个公司,后来成为Oracle公司。其余要说的就是数据库的历史了。
但是对Ted Codd来说,历史并没有停留在那儿。虽然直至二十世纪八十年代初,Codd一直就职于IBM,但他也与长期的合作者Chris Date共同创建了一家咨询服务公司,而且,直到其今年的早些时候去世,Codd还一直继续研究和发表关于数据的规范化、分析和数据建模等主体的文章。

转载地址:http://bbasi.baihongyu.com/

你可能感兴趣的文章
2017——新的开始,加油!
查看>>
【Python】学习笔记——-6.2、使用第三方模块
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.1、类和实例
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.4、获取对象信息
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
Linux设备模型(总线、设备、驱动程序和类)之四:class_register
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
弱类型、强类型、动态类型、静态类型语言的区别是什么?
查看>>
Struts2技术内幕图书 转载
查看>>
Java异常分类
查看>>
项目中的jackson与json-lib使用比较
查看>>
Jackson Tree Model Example
查看>>
j2ee-验证码
查看>>
日志框架logj的使用
查看>>
js-高德地图规划路线
查看>>
常用js收集
查看>>