五年前,也就是2017年7月13日,数据库之父查尔斯巴赫曼(CharlesBachman)逝世。 上学时,我们的很多课本上都提到了三层体系结构、数据库管理系统概念、DDL、DML等等这些概念,但都没提到这些概念背后的创造者查尔斯巴赫曼。 作为网状数据库之父、DBTG(DataBaseTaskGroup)之父,查尔斯巴赫曼的两项重大贡献包括: 1、开发了最早的网状数据库管理系统IDS(IntegratedDataStore)。IDS于1964年推出后,成为最受欢迎的数据库产品之一,它的设计思想和实现技术被后来的许多数据库产品仿效。 2、巴赫曼促成了数据库标准的制定。在美国数据系统语言委员会下属的数据库任务组DBTG期间,他提出了网状数据库模型以及数据定义(DDL)和数据操纵语言(DML)规范说明,并于1971年推出了第一个正式报告DBTG报告,该报告首次提出了数据库三层体系结构,明确了DBA概念,规定了DBA的作用与地位,使其成为了数据库历史上具里程碑意义的文献。巴赫曼还发明了一种描述网状数据库模型的数据结构图,被世人称为巴赫曼图(BachmanDiagram)。 此外,在担任ISOTC97SC16会议主席时,巴赫曼还主持制定了著名的开放系统互连标准,即OSI(OpenSystemInterconection),OSI对计算机、终端设备、人员、进程、网络之间的数据交换提供了标准,对系统之间互相开放有重要意义。 1973年,凭借对数据库技术领域的杰出贡献,巴赫曼被授予计算机领域的最高奖项图灵奖,也是数据库技术领域最早获得图灵奖的先驱。 巴赫曼的网状数据库及其发展 查尔斯巴赫曼研发的网状数据库(NetworkDatabase)是一种采用网状模型的数据库。网状模型用网状结构表示各类实体及其间的联系。在网状结构中:允许一个以上的结点没有双亲;一个结点可以有多于一个的双亲。网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有多种联系(即复合联系)。因此网状数据模型可以更直接地去描述现实世界。 当然,网状数据库也存在一些局限:首先,用户查询和定位在复杂的网状结构中比较难进行;其次,网状数据的操作命令具有过程式的性质;最后,网状数据库的表达并不直接。 紧随网状数据库后出现的是层次数据库,其数据模型是层次数据模型,即使用树形结构来描述实体及其之间关系的数据模型。在这种结构中,每一个记录类型都用节点表示,记录类型之间的联系则用节点之间的有向线段来表示。每一个子节点只能有一个父节点,但是每一个父节点可以有多个子节点。这种结构决定了采用层次数据模型作为数据组织方式的层次数据库系统只能处理一对多的实体联系。1968年,世界上第一个层次数据库信息管理系统IMS(InformationManagementSystem)诞生于IBM,也是世界上第一个大型商用的数据库系统。 再后来,就是一直沿用至今的关系型数据库。1976年,霍尼韦尔公司发布了世界上第一个商用关系型数据库MulticsRelationalDataStore。由于关系数据库具有严格的数学理论基础,抽象级别比较高,简单清晰,便于理解使用,用户能够有逻辑的、抽象的处理数据而不必关心数据在计算机中的物理表示和存储,因此关系型数据库得到了迅速发展并成为主流的数据库模型。紧随其后,1979年诞生了Oracle,1985年IBM发布了DB2,1989年微软发布了SQLServer,关系型数据库的队伍不断壮大。 当今数据库的应用需求和分类 数据库的应用类型分为OLTP(OnlineTransactionProcessing,联机事务处理)和OLAP(OnlineAnalysisProcessing,联机分析处理)两种。 OLTP是传统关系型数据库的主要应用,主要面向基本的、日常的事务处理,例如在线交易。它可以立即将客户端的原始数据传送到计算中心进行处理,并且在短时间内给出处理结果。衡量OLTP系统的一个重要指标是系统性能,具体体现为实时响应时间(ResponseTime),即从用户输入数据到对该请求做出响应的时间。OLAP是数据仓库系统的主要应用,OLAP专门用于支持复杂的分析查询,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观易懂的形式将查询结果提供给决策者。 大数据时代的数据库热潮 随着当今互联网以及物联网等技术的不断发展,各种应用催生大量数据,也促进数据管理工具飞速发展。数据湖、数据仓库、湖仓一体等概念也逐渐产生。在分析型数据库(OLAP)领域,曾先后出现MPP和Hadoop,MPP数据库主要用作数据仓库,Hadoop大数据平台承担起数据湖的职能。 数据仓库是独立于业务数据库之外的一套数据存储体系,与传统数据库需要直接处理线上业务不同,数据仓库侧重于分析决策,提供直观的数据查询结果。 数据湖早期一般托管在Hadoop等大数据平台上,拥有大量非结构化数据的存储空间,非常适合数据科学家和分析师存储原始数据。有时候用户不知道自己用这些数据能做什么,但是随着持续进行数据挖掘,原始数据的存储价值逐渐凸显。 随着用户对湖和仓的要求不断提高,自然会出现湖仓协同的尝试和探索,也就形成了MPPHadoop模式,我们称之为湖仓分体模式。湖仓分体模式下的湖、仓各自独立部署,数据通过ETL的方式打通,但这种模式的最大问题和特点是数据孤岛。 随着公有云和私有云的普及,为了保证存储和计算可以独立的弹性扩展和伸缩,数据平台的设计出现了一个崭新的架构,即存算分离架构。MPP数据库存算耦合,而Hadoop不得不通过计算和存储部署在同一物理集群拉近计算与数据的距离,因此MPP和Hadoop都不再适应云平台的要求。在此阶段,Snowflake和OushuDB突破了传统MPP和Hadoop的局限性,率先实现了存算完全分离,成为湖仓一体实现的关键技术。 以OushuDB为例,实现了存算分离的云原生架构,并通过虚拟计算集群技术在数十万节点的超大规模集群上实现了高并发,保障事务支持,提供实时能力,一份数据再无数据孤岛。