数据库的历史与未来:一篇文章的深度解析

发表时间: 2019-05-25 17:21

物联网时代即将到来,随着万物互联的实现,数据总量也将呈现爆发式的增长。关于海量数据的存储和处理问题,也成为了一个备受关注的话题。

1946年第一台通用计算机“ENIAC”诞生,从那之后围绕着计算机的软硬件的迭代就一直在进行着。计算机硬件的核心逻辑元件从最初的电子管经历了晶体管、集成电路到现在的大规模集成电路时代,其体积也从庞然大物到现在的人手一台的手机甚至更小的嵌入式设备。

硬件能力提升,软件也要跟上节奏。计算机软件工程领域当中,操作系统、编译器和数据库被认为是难度最大的三大系统,其中数据库又是承载数据的基础和载体,因此来说占据着非常重要的位置。

通常数据库是指在计算机中有组织的进行数据存储和获取的系统。今天大家往往将数据库、DBMS等软件统称为数据库或数据库系统。自1960s数据库的概念被提出来,数据库的发展本身也经历多个阶段:

1960s,最早提出的navigational数据库基于树或链表的结构来对数据进行组织,最早的代表有CODASYL和IBM的IMS(Information Management System)等。

1970s,IBM的Edgar Codd第一次提出关系型数据库的概念,以表结构的形式进行数据的组织和存取,用以解决navigational 数据库的搜索困难问题,也就在这个时期IBM开始研发了目前的核心产品IBM DB2的原型。

到了80年代,传统的关系型数据库已经能满足大部分的日常数据存储的需求,Oracle、IBM等商业化数据库也得到了蓬勃的发展。到了2000s,大家对数据的实时性要求更高,数据量也呈现出爆发式增长。而技术的发展也往往由需求驱动,由此诞生了一系列非关系型NoSQL数据库(SQL是指针对关系型数据库的结构化查询语言),甚至还诞生了结合关系型数据库的SQL模型和NoSQL数据库高性能的NewSQL数据库,数据库的类型根据不同的业务需求呈现百花齐放的生态。

数据库按存储结构划分,可分为关系型、非关系型和多模数据库。

其中关系型数据库是大家最熟悉的数据库之一,包含如Oracle、MySQL、IBM DB2、SQL Server等传统关系型数据库,也包含通常用于做数据分析的MPP数据库(Massively Parallel Processing,大规模并行处理)如Greenplum、Vertica、Teradata等,当然这些MPP数据库也往往被大家称之为数据仓库。另外一些NewSQL数据也依然保持了关系型数据库的这一特点。

近年来发展迅速的非关系型数据也越来越多样,如几乎每一家互联网公司都会用到的Key-Value(键值对)数据库Redis,用于高并发情形下进行缓存处理;擅长于存储树形结构的文档数据库MongoDB;近年来AI发展带来的用于处理和存储知识图谱的图数据库Neo4j、GraphDB;用于大数据批量数据处理和即时查询的列式存储;针对物联网时序场景的时间序列数据库InfluxDB等。

由于数据本身形态多样,兼容不同数据格式的多模数据库逐渐受到了越来越多的欢迎。一些传统的关系型数据库或者NoSQL数据也开始支持多种数据结构的存储。