前言

数据库是组织、存储、管理、分析数据的系统,是IT行业最重要的基础软件,目前各行各业几乎所有的信息系统都需要使用数据库系统来管理业务数据。数据库在硬件和应用之间起到了承上启下的重要作用,是IT行业不可或缺的软件,被誉为“软件行业皇冠上的明珠”。

20世纪50年代,随着计算机的诞生和成熟,计算机开始用于数据管理,然而传统的文件系统难以应对数据增长的挑战,也无法满足多用户共享数据和快速检索数据的需求。因此20世纪60年代,数据库应运而生。经过近60年的发展,数据库发生了翻天覆地的变化,从网状数据库的提出到关系数据库的蓬勃发展,从单机数据库、集群数据库到分布式数据库,从本地部署形态到云数据库部署形态,从交易型行存储引擎到分析型列存储引擎,从SQL到NoSQL再到NewSQL的不同应用形态,从手工运维到AI自运维,数据库技术出现了百家争鸣、百花齐放的大繁荣、大发展。而近年来我国数据库领域不论从学术界到工业界都得到了快速发展。

本书主要介绍数据库的基础知识和核心技术,以及数据库系统的核心架构,帮助读者更深入地了解数据库的历史、数据库基础知识、数据库技术发展背景和动机、数据库技术的优劣对比、数据库架构的设计和选择、数据库核心技术。

本书首先讲述数据库的发展历史,包括网状数据库、关系数据库、并行数据库、图数据库、云数据库、NoSQL数据库、NewSQL数据库、多模数据库,也介绍分析型数据库和交易型数据库,还介绍了数据库未来发展趋势,包括AI原生数据库、端云协同数据库、异构计算数据库等新型数据库。

然后介绍数据库的基础知识,包括SQL语法和规范、SQL的使用、数据库设计模型和规范、数据库设计范式、E-R模型等。

华为公司从开始自研数据库至今已有近20年历史,其中经历了早期内部定制研发、GaussDB数据库的诞生和发展、数据库产业化三个阶段,华为公司预计将在2020年中期推出GaussDB数据库系列产品的开源版本:openGauss(GaussDB以云服务形式提供商业版本)。

最后以openGauss为例介绍数据库的基本架构和核心技术,包括分析型和交易型数据库的架构设计、存储引擎的基础知识、数据库事务机制、并发机制、多版本技术、分布式事务机制、执行引擎技术、优化器和SQL引擎技术、数据库安全技术。

本书从理论到系统再到实践,全方位地介绍数据库的核心技术,可使读者从中了解数据库设计与实现的核心思想和方法。

通过本书,读者可以深入了解数据库的发展历史、未来趋势、系统架构、核心技术,从而在将来既可以开发数据库内核的核心代码,也可以更好地利用数据库开发应用。读者可搜索微信公众号openGauss或访问openGauss开源社区网站,以获取更多关于openGauss的产品及技术信息。

本书主要由李国良、周敏奇编著。此外,参与本书编写的还包括华为公司多位数据库专家。感谢清华大学出版社盛东亮老师和钟志芳老师在本书审校工作中所做出的贡献。

编者

2020年5月