暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第 1 章:数据库系统概述 1.1 数据库系统的发展历史

174

OceanBase 数据库开发者入门教程


文档介绍

开发者入门教程共分为五个章节,从 MiniOB 概述、环境搭建、存储、索引、SQL 引擎、事务几个方面介绍数据库和 MiniOB,各章节内容如下。


本章介绍数据库系统概述、MiniOB 概述及 MiniOB 研发环境搭建。


1.1 数据库系统的发展历史

背景

在 20 世纪 60 年代之前,面对科学计算必须要解决一个问题:怎么来解决应用的需求。这个问题具体体现在以下几个方面:

  • 怎么实现一个持久化,当出现故障的时候,从故障中恢复?

  • 如何实现并发,当有很多并发的时候,怎么去解决?

  • 如何定义数据的格式?

  • 如何定义数据的访问接口?

在数据库还没有出现前,基本上是应用程序直接来操作底层文件。利用文件系统将数据持久化,自己设计并发控制、故障恢复,自己定义文件格式和访问方式来设计数据的逻辑结构、数据物理结构、存储结构、存取方法和输入方法等。

但是这种情况,很容易出现问题,并且在做迁移或者改动时都比较麻烦。因此,20 世纪 60 年代,数据库应运而生。


相关概念

数据库系统:带有数据库的计算机系统,一般由数据库、数据库管理系统、硬件、软件和各类人员组成。

数据库:按照数据结构来组织存储管理数据的仓库。

数据库管理系统:数据库系统的核心组成部分,它是介于用户与操作系统之间的一层数据管理软件,是用户和数据库的接口。

数据模型:描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。


数据库模型

在数据库技术领域中,数据库所使用的典型数据模型主要有层次数据模型(Hierarchical Data Model)、网状数据模型(Network Data Model)和关系数据模型(Relational Data Model)。这三种模型是按照它们的数据结构来命名的,它们之间的根本区别在于数据之间联系的表达方式不同。

层次模型

层次模型是最早用于商用数据库管理系统的数据模型。在数据库定义中满足以下两个条件的记录以及它们之间联系的集合称为层次模型。

  • 有且只有一个结点没有双亲结点,这个结点称为根结点。

  • 根结点以外的其他结点有且只有一个双亲结点。

层次数据模型中最基本的数据关系是基本层次关系,它代表两条记录之间一对多(包括一对一)的联系。层次模型类似于今天的树状模型,非常适用于关联(树状的查询)。但是离开树状查询后,它的应用场景非常局限。

网状模型

网状模型是一种可以灵活地描述事物及其之间关系的数据库模型。最早由美国的查尔斯·巴赫曼发明。

网状模型的数据结构主要有以下两个特征:

  • 允许有一个以上的结点无双亲。

  • 至少有一个结点可以有多于一个的双亲。

网状模型中每个结点表示一个记录型(实体),每个记录型可包含若干个字段(实体的属性),结点间的连线表示记录类型(实体)间的父子关系。

从上述特征中可以看出,层次模型中子结点与双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一。因此,在网状模型中要为每个联系命名,并指出与该联系有关的双亲记录和子记录。

关系模型

关系模式实际就是记录类型,包括:模式名、属性名、值域名及模式的主键。关系模型利用表的集合来表示数据和数据间的联系,在逻辑层和视图层描述数据,使用户不必关注数据存储的底层细节。

关系模型有很多的优点:

  • 建立在严格数学概念的基础上,有理论基础。

  • 数据模型清晰,所有模型都使用关系来表示。

  • 接口非常清晰,逻辑层和物理层非常清晰的剥离。

所以关系模型最后成为真正的数据库的主流模型一直延续到今天。


数据库的发展

接下来将以数据模型和时间为依据,介绍数据库的发展过程。

网状数据库和层次数据库

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

1964 年,通用电气工程师 CharlesW.Bachman 领导开发了全球第一个数据库管理系统——IDS(Integrated Data Storage,集成数据存储),并正式推出。IDS 是网状数据库,奠定了数据库发展的基础,在当时得到了广泛地应用。IDS 具有数据模式和日志的特征,但它只能运行于通用电气的主机上,且数据库只有一个文件,所有的表必须通过手工编码生成,有极大的局限性。5 年后,美国数据库系统语言协会(Conference on Data SystemsLanguages,CODASYL)下属的数据库任务组(Database Task Group,DBTG)发布了一份报告,阐述了网状数据库系统的许多概念、方法和技术,成了网状数据库的代表。

1968 年,IBM 公司 McGee 等人开发的层次式数据库系统的 IMS(Information Management System,信息管理系统)发表,它可以让多个程序共享数据库。IMS 是世界上第一个层次数据库系统,也是世界上第一个大型商用的数据库系统。

1973年,Charles W.Bachman 获得图灵奖,以表彰他在数据库领域,尤其是在网状数据库管理系统方面的杰出贡献。

但网状数据库也存在一些问题。首先,网状模型和层次模型描述世界的方式非常受限,比如层次模型就仅仅适合于树状模型。其次,这两种模型的接口层实际上是非常局限的,没有高级查询语言,用户在复杂的网状结构中进行查询和定位操作比较困难。所以关系数据库应运而生。

关系数据库

1970 年,IBM 的研究员 Edgar F.Codd 发表了 《A Relational Model of Data forLarge Shared Data Banks》 论文,提出了关系数据模型的概念,奠定了关系数据模型的理论基础,这是数据库发展史上具有划时代意义的里程碑。随后,Edgar F.Codd 又陆续发表了多篇文章,论述了范式理论,用数学理论奠定了关系数据库的基础,为关系数据库建立了一个数据模型———关系数据模型。Edgar F.Codd 也于 1981 年获得图灵奖。

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,结构化查询语言)。

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

NoSQL 数据库

20 世纪以来,非关系型数据库(NoSQL)开始盛行,NoSQL 数据库主要包括 4 种类型:文档数据库、列簇式数据库、键值数据库和图数据库。

Google 于 2003 年至 2006 年发布的三篇论文,分别是 《Google File System》、《Google Big table》 和 《Google MapReduce》,奠定了分布式数据系统基础,其中 《Google BigTable》 一篇中介绍了 NoSQL 数据库。

NoSQL 数据库支持分布式存储,数据可以无限地线性扩张,解决了过去传统数据库存储容量不能够线性扩张的问题。并且 NoSQL 底层的结构要求不一定是关系模型。NoSQL 没有预定义的模式。同时 NoSQL 还支持对象存储,同时为了更高效的存储,NoSQL 还提供 API 的一些访问机制。

NewSQL 数据库

NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有 NoSQL 对海量数据的存储管理能力,还保持了传统数据库支持 ACID 和 SQL 等特性。

NewSQL 系统虽然内部结构变化很大,但是它们有两个显著的共同特点:都支持关系数据模型,都使用 SQL 作为其主要的接口。

目前已知的第一个 NewSQL 系统叫做 H-Store,是由美国布朗大学,麻省理工学院,和耶鲁大学联合开发的,为在线事务处理应用而设计的数据库管理系统。它是一个分布式并行内存数据库系统。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论