数据库发展史

简介: 数据库发展史

1946年,有个叫冯·诺依曼的人发明了计算机,最开始的计算机的主要用途是将程序指令存储器和数据存储器合并在一起,然后进行相应的运算。


这时候的数据管理非常简单。主要是通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理。


然而,随着计算机的诞生和成熟,数据管理技术也迅速发展。传统的文件系统难以应对数据增长的挑战,也无法满足多用户共享数据和快速检索数据的需求。


在这样的背景下,20世纪60年代,数据库应运而生。


1293b7104e1034872cbf079c48be1ec0.png


网状数据库和层次数据库时代

1964年,世界上第一个数据库系统---IDS(Integrated Data Storage,集成数据存储)诞生于通用电气公司。IDS是网状数据库,奠定了数据库发展的基础,在当时得到了广泛的应用。


网状数据库是数据库历史上的第一代产品,它成功地将数据从应用程序中独立出来并进行集中管理。网状数据库基于网状数据模型建立数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达形式。


5 年后,美国数据库系统语言协会(Conference on Data SystemsLanguages,CODASYL)下属的数据库任务组(Database Task Group,DBTG)发布了一份报告,阐述了网状数据库系统的许多概念、方法和技术,成了网状数据库的代表。


在20世纪70年代与80年代初,网状数据库系统十分流行,在数据库系统产品中占据主导地位。例如,配备在富士通公司M 系列机上的AIM(Advanced Information Manager)系统和配备在UNIVAC(UNIVersal Automatic Computer)上的DMS1100 系统都是网状数据库系统。


紧随网状数据库后出现的是层次数据库,其数据模型是层次数据模型,即使用树结构来描述实体及其之间关系的数据模型。在这种结构中,每一个记录类型都用节点表示,记录类型之间的联系则用节点之间的有向线段来表示。每一个子节点只能有一个父节点,但是每一个父节点可以有多个子节点。这种结构决定了采用层次数据模型作为数据组织方式的层次数据库系统只能处理一对多的实体联系。


1968年,世界上第一个层次数据库系统---IMS(Information Management System,信息管理系统)诞生于IBM 公司,这也是世界上第一个大型商用的数据库系统。


cf00a94c0ec0420ec73422cf496ee3cd.png


如上所述,网状数据库系统和层次数据库系统在数据库发展的早期比较流行。网状数据库模型对于层次和非层次结构的事物都能比较自然地模拟,相比层次数据库应用更广泛,在当时占据着主要地位。


1973年,Charles W.Bachman获得图灵奖,以表彰他在数据库领域,尤其是在网状数据库管理系统方面的杰出贡献。但是,网状数据库也存在一些问题:首先,用户在复杂的网状结构中进行查询和定位操作比较困难;其次,网状数据的操作命令具有过程式的性质;最后,网状数据库对于层次结构的表达并不直接。



39f806933132ed6bc5a905573a359be1.jpg


Charles W.Bachman


关系数据库时代

虽然对于数据的集中存储、管理和共享的问题,网状数据库和层次数据库已经给出较好的解答,但是在数据独立性和抽象级别上仍有较大的欠缺。为了解决这些问题,关系数据库应运而生。


1970年,IBM 的研究员Edgar F.Codd发表了A Relational Model of Data forLarge Shared Data Banks 论文,提出了关系数据模型的概念,奠定了关系数据模型的理论基础,这是数据库发展史上具有划时代意义的里程碑。


e85332ee611668a3d078760d24de0e33.jpg



Edgar F.Codd


随后,Edgar F.Codd又陆续发表了多篇文章,论述了范式理论,用数学理论奠定了关系数据库的基础,为关系数据库建立了一个数据模型---关系数据模型。


关系数据模型的概念非常简单,结构特别灵活,能满足所有布尔逻辑运算和集合运算规则形成的查询要求;可以搜索、比较和组合不同类型的数据;使用关系数据模型进行数据增加和删除操作非常方便,关系数据模型具有较高的数据独立性和更好的安全保密性。然而,当数据库比较大的时候,查找满足特定关系的数据比较耗时,同时也难以描述空间数据关系。


在关系数据模型的基础上,IBM 公司从1970年就开始了关系数据库项目SystemR的研究和开发。然而,由于IBM 已有层次数据库产品IMS,System R产品化进程十分缓慢,直到1980年才完成产品化,作为一个产品正式推向市场。后来,IBM 公司在System R的基础上发布了DB2数据库系统。IBM 公司研发进程缓慢,没能在产品上抢占先机。


1973年,加州大学伯克利分校的Michael Stonebraker和Eugene Wong利用IBM 公司已发布的信息,以及关系模型的理论,开始开发自己的关系数据库系统Ingres。1976年,霍尼韦尔公司(Honeywell)开发了世界上第一个商用关系数据库系统---Multics Relational Data Store。


1974年IBM 的Ray Boyce和Don Chamberlin将Edgar F.Codd论述的关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了SQL(Structured Query Language,结构化查询语言)。


SQL是一种操作关系数据库的标准语言,它包括了对数据进行定义、操纵、查询和控制功能的类型分句。用户只需要在高层数据结构上进行数据处理,无须用户指定数据的存取方法,也不需要用户了解具体的数据存储方式,就可以使用SQL对不同关系数据库进行数据操作。SQL有着一体化、使用方式灵活、非过程化和简单易用的特点,几乎所有的关系RDBMS(Database Management System,数据库管理系统)产品都支持SQL,例如Oracle、DB2、Sybase、SQL Server、MS Access、MySQL、PostgreSQL等。


1978年,Larry Ellison在为美国中央情报局做一个数据项目的时候,敏锐地发现关系数据库的商机。几个月后,Oracle 1.0诞生了,它除了完成简单关系查询之外,不能做任何事情。但是经过短短十几年,Oracle公司的数据库产品不断发展成熟,成为了数据库行业的巨头。至此,关系数据模型的理论才通过SQL在商业数据库Oracle中使用。


55abff3adb545ec18b22c36840357557.png


虽然加州大学伯克利分校的Ingres项目结束于20世纪80年代早期,但在Ingres的基础上产生了很多商业数据库软件,包括Sybase、Microsoft SQL Server以及Informix等其他众多的数据库系统。在20世纪80年代中期,加州大学伯克利分校又启动了Ingres的后继项目Postgres,该项目产出了很有影响力的PostgreSQL数据库系统。Ingres作为比较早的数据库系统,对关系数据库的发展产生了重要影响,是数据库发展史上最有影响力的项目之一。


关系数据库系统以关系代数为坚实的理论基础,经过几十年的发展和实际应用,技术越来越成熟和完善,直到今天,关系数据库仍然在数据库领域占据着最重要的地位,应用范围非常广泛。由于Edgar F.Codd在关系数据库理论和实现方面的杰出贡献,他于1981年被授予图灵奖。为了表彰Michael Stonebraker在数据库系统原型和初步商业化方面的巨大贡献,2014 年Michael Stonebraker被授予图灵奖。


虽然关系数据库系统的技术很成熟,但随着市场和信息技术的发展,其局限性也逐渐暴露出来,即它能很好地处理所谓的"表格型数据",却无法处理当前出现的越来越多的复杂类型数据(如文本、图像、视频等)。


分布式数据库时代

在数据库发展早期阶段,使用单机数据库就能满足数据存储和管理的规模,但是随着互联网的不断普及,特别是移动互联网的兴起,数据规模爆炸式增长,单机数据库越来越难以满足用户需求。解决这种问题的一个直观方法就是增加机器的数量,把数据库同时部署在多台机器上,分布式数据库就这样应运而生了。


20世纪70年代中期分布式数据库的研究就已经开始了,这个时期也出现了一些分布式数据库系统。例如,1979 年,美国计算机公司(Computer Corporation of America,CCA)在DEC(Digital Equipment Corporation)计算机上实现了世界上第一个分布式数据库系统SDD-1。随后,在不到十年的时间内,分布式数据库的发展十分迅猛。例如,IBM 公司在System R的基础上研制了分布式数据库R* ,加州大学伯克利分校开发了分布式Ingres等。


e32f175256b3315d2dd8de8a8a9a623b.jpg


1987年,C.J.Date提出了完全的、真正的分布式数据库系统应遵循的原则,该原则被作为分布式数据库系统的理想目标。20世纪90年代以来,分布式数据库系统进入商业化应用阶段,传统的关系数据库产品均发展成以计算机网络及多任务操作系统为核心的分布式数据库产品。


2005年左右,研究人员对分布式数据库的探索,推动了NoSQL数据库的发展,这些数据库解决的首要问题是单机上无法保存全部数据,其中以HBase、Cassandra、MongoDB为代表。2012-2013年,业界在谷歌(Google)发表的Spanner和F1系统的论文中看到了关系模型和NoSQL的扩展性在一个大规模生产系统上融合的可能性,这些探索极大地推动了NewSQL数据库的发展。


85b1a1aa083722682a3a71e0b4a0b055.jpg


进入大数据和移动互联时代后,因为数据的特性和应用场景的变化,注定着不论是传统的关系数据库,还是新型的NoSQL和NewSQL数据库都会向着分布式的方向发展,分布式数据库也成了数据库领域的主流方向之一。但是分布式数据库也存在一些问题。例如,众多节点之间通信会花费大量时间;数据的安全性和保密性在众多节点之间会受到威胁;在分布式系统复杂的存取结构中,原本在集中式系统中有效存取数据的技术可能不再适用;分布式的数据划分、负载均衡、分布式事务处理和分布式执行技术缺乏新的突破。


云数据库时代

云计算(Cloud Computing)的迅猛发展使得数据库部署和虚拟化在"云端"成为可能。云数据库即是数据库部署和虚拟化在云计算环境下,通过计算机网络提供数据管理服务的数据库。因为云数据库可以共享基础架构,极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置。


9df099bda1dfe41eafd7dcabe50b4c96.jpg


云数据库将传统的数据库系统配置在"云上",有专门的云服务提供商进行这些"云上"数据库系统的管理和部署工作,用户只需要通过付费的方式就能获取数据库服务。不同于传统数据库,云数据库通过计算存储分离、存储在线扩容、计算弹性伸缩来提升数据库的可用性和可靠性。代表性的云数据库是亚马逊的Aurora,它首先提出了日志即是数据库的理念,减少了网络消耗,提升了系统的可用性。


云数据库也能分成关系数据库和非关系数据库。典型的基于关系数据模型的云数据库就有亚马逊的Aurora、微软的SQL Azure云数据库。常见的基于非关系数据模型的有亚马逊的DynamoDB,该数据库采用键值存储。


03871e03e7ba6b7a572a41195e31cf75.jpg


2019年6月,Gartner发布The Future of the Database Management System(DBMS)Market Is Cloud 报告,明确提出传统的部署数据库的方式已经过时,云是未来,所有组织,无论大小,都将越来越多地使用云数据库。但是,云数据库中存在的问题也不可忽略,云计算中最值得关注的是安全问题,云计算对数据安全带来了极大威胁,数据极易泄露,存在意外丢失的风险。


▉ 常见的数据库管理系统排名(DBMS)


目前互联网上常见的数据库管理软件有Oracle、MySQL、MS SQL Server、DB2、PostgreSQL、Access、Sybase、Informix这几种。以下是2024年1月7日DB-Engines Ranking 对各数据库受欢迎程度进行调查后的统计结果:(查看数据库最新排名:db-engines.com/en/ranking)


dba8b737ac5f86020dbc5d9bd3a9da2d_d953753d98ea0feb914f823360403d72.png

相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
相关文章
|
7月前
|
存储 NoSQL 关系型数据库
数据库的发展史
数据库的发展史
|
存储 分布式计算 Oracle
数据库发展史2--数据仓库
回顾数据仓库的发展历程,大致可以将其分为几个阶段:萌芽探索到全企业集成时代、企业数据集成时代、混乱时代--"数据仓库之父"间的论战、理论模型确认时代以及数据仓库产品百家争鸣时代。
389 0
数据库发展史2--数据仓库
|
存储 缓存 NoSQL
|
存储 SQL 分布式计算
浅谈数据库发展史和 OceanBase 的诞生
本文主要介绍数据库的发展,带大家共同回顾这一历史进程,也将首次揭秘 OceanBase 诞生的故事。
浅谈数据库发展史和 OceanBase 的诞生
|
1天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
10 3
|
1天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
13 3
|
1天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
17 2
|
15天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
98 15
|
8天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
15天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。