50年长盛不衰,SQL为什么如此成功?早期数据库管理的历史—IDS 和 CODASYL网络数据模型——比如今的关系模型更好?关系模型的到来关系数据模型 vs 网络数据模型SQL 崛起SQL 的竞争者S

原标题:50年长盛不衰 , SQL为什么如此成功?
关系数据模型于1970年推出 , 并已占据主导地位50年 。 它为什么如此成功?这要归功第一性原理和布什内尔定律 。
1971年3月 , 英特尔推出世界上第一款通用微处理器——英特尔4004 。 它有约2300个晶体管 , 售价60美元 。
时间快进到50年后 , 最新的iPhone有将近120亿个晶体管(但价格仅为60美元多一点) 。
我们今天使用的许多编程语言直到90年代才推出(Java是在1996年推出的) 。 不过 , 有一种编程语言现在仍然像近50年前推出时一样流行:SQL 。 本文将讨论关系型数据库产生的背景、SQL为什么越来越流行 , 以及我们可以从它的成功中学到什么 。
早期数据库管理的历史—IDS和CODASYL
50年长盛不衰,SQL为什么如此成功?早期数据库管理的历史—IDS 和 CODASYL网络数据模型——比如今的关系模型更好?关系模型的到来关系数据模型 vs 网络数据模型SQL 崛起SQL 的竞争者S
文章图片
1962年 , 查尔斯·w·巴赫曼(与埃利希·巴赫曼没有关系)是通用电气一个小团队的一员 。 一年后 , 巴赫曼团队推出了后来被公认为第一个数据库管理系统的集成数据存储系统(IDS) 。
10年后 , 巴赫曼获得图灵奖(通常被称为计算机科学领域的诺贝尔奖) , 以表彰他对IDS计算的贡献 。
IDS是什么?
在20世纪60年代早期 , 计算机科学刚开始成为一个学术领域 。 ASCII直到1963年才推出 。
要理解IDS , 我们必须首先理解促成其发展的两大驱动力:
磁盘存储的推出向高级编程语言的迁移磁盘存储

50年长盛不衰,SQL为什么如此成功?早期数据库管理的历史—IDS 和 CODASYL网络数据模型——比如今的关系模型更好?关系模型的到来关系数据模型 vs 网络数据模型SQL 崛起SQL 的竞争者S
文章图片
1956年 , IBM推出第一款商用硬盘驱动器——RAMAC305 。 磁盘驱动器的引入使得程序员可以直接跳转到磁盘上的某个位置进行数据检索和更新 。 与其前身磁带驱动器相比 , 这是一个巨大的改进 , 后者需要在磁带上顺序移动来检索特定的数据片段 。
但是现在 , 开发人员必须找出记录在磁盘上存储的位置 。 由于早期操作系统中文件管理系统的局限性 , 这是一项只有有经验的程序员才能完成的高级任务 。 开发人员需要一种解决方案来简化磁盘驱动器的使用 。
高级编程
与此同时 , 在采用曲线上 , 计算机科学开始从创新者转变为早期采用者 。 像汇编这样的低级编程语言早期在学术界很流行 , 但是出于易用性考虑 , 普通程序员开始转向高级编程语言 , 比如COBOL 。
那么什么是IDS呢?IDS解决了磁盘存储和高级编程问题 。 IDS允许开发人员使用高级编程语言(如COBOL)来构建从磁盘存储输入和检索数据的应用程序 。 由于这个功能 , IDS获得了第一个数据库管理系统的殊荣 。
CODASYL:一个数据库管理系统的新标准
【50年长盛不衰,SQL为什么如此成功?早期数据库管理的历史—IDS 和 CODASYL网络数据模型——比如今的关系模型更好?关系模型的到来关系数据模型 vs 网络数据模型SQL 崛起SQL 的竞争者S】1969年 , 数据系统语言委员会(CODASYL)发布了一份报告 , 提出一个数据库管理标准 。 巴赫曼是委员会的一员 , 该报告主要参照了IDS 。
CODASYL数据模型引入了许多我们今天使用的数据库管理系统的核心特性:
模式数据定义语言(DDL)数据操作语言(DML)最重要的是 , IDS和CODASYL引入了一种新的数据建模方法 , 这种方法影响了SQL的最终开发——网络数据模型 。
网络数据模型——比如今的关系模型更好?
50年长盛不衰,SQL为什么如此成功?早期数据库管理的历史—IDS 和 CODASYL网络数据模型——比如今的关系模型更好?关系模型的到来关系数据模型 vs 网络数据模型SQL 崛起SQL 的竞争者S
文章图片
数据模型是一种描述(模型)世界(数据)的标准化方法 。
前面的层次数据模型使用树型结构来描述数据 , 但是这些树型结构仅限于一对多的关系 。 新的网络模型允许记录有多条父记录 , 从而创建一个图结构 。 通过支持多个父节点 , 网络模型能够对多对一和多对多关系进行建模 。
在网络模型中 , 表之间的关系存储在集合中 。 每个集合都有一个所有者(即教师)和一个或多个成员(即班级和学生) 。
网络模型的其中一个主要好处是 , 集合中的相关记录是通过指针直接连接的 。 集合是使用next、prior和owner指针实现的 , 这样就可以像链表一样轻松遍历 。
网络数据模型的低级特性提供了性能优势 , 但也付出了代价 。 网络数据模型增加了存储成本 , 因为每个记录都必须额外存储指向前一条记录和父记录的指针 。
关系模型的到来
50年长盛不衰,SQL为什么如此成功?早期数据库管理的历史—IDS 和 CODASYL网络数据模型——比如今的关系模型更好?关系模型的到来关系数据模型 vs 网络数据模型SQL 崛起SQL 的竞争者S
文章图片
1970年 , 在IDS诞生8年后 , EdgarF.Codd在他的开创性论文《ArelationalmodelofDataforLargeSharedDataBanks》中引入关系模型(这也为他赢得了图灵奖) 。