编辑推荐
华为公司官方出品,曝光华为分布式数据库openGauss的系统架构,掌握软件与硬件结合的核心技术!中国人民大学教授王珊,中国工商银行软件开发中心总经理杨龙如,中国邮政储蓄银行CIO牛新庄联袂作序!
 ;
内容简介
本书系统论述了openGauss数据库理论、技术及应用。本书共11章,首先介绍数据库发展历史,包括传统的 网状数据库、层次数据库、关系数据库、NoSQL数据库、NewSQL数据库、云数据库、多模数据库、分布式数据库 等。其次介绍结构化查询语言(SQL)、SQL语法、存储过程、触发器、游标、数据库设计规范和E-R 模型等数据库 基础知识。再次介绍数据库未来发展趋势,包括新硬件、不同部署形态、新应用对数据库的影响。*后重点介绍 openGauss的核心技术,包括openGauss的核心架构、面向鲲鹏和?N腾等新硬件的优化技术、SQL引擎、执行器技 术、数据库存储技术、数据库事务机制、数据库安全、数据库自治技术等。为方便读者掌握数据库教学内容,本书 每章都提供了小结和习题(含答案)。 通过阅读本书,读者可以深入了解数据库的发展历史与未来趋势、数据库系统架构、鲲鹏和?N腾优化技术、数 据库事务处理技术、数据库执行器技术、数据库安全技术,从而既可以在将来开发数据库的核心代码,也可以更好 地利用数据库开发应用。 本书既可作为高校本科生和研究生学习数据库的参考书,也可作为高等院校、科研机构等相关单位从事数据 库理论教学或科学研究的教师、系统实现的研究人员的参考书,还可供企业工程师进行数据库二次开发和应用开 发的参考。
作者简介
李国良  ;清华大学计算机系教授、博导。在数据库顶级会议和期刊上发表论文100余篇,他引8000余次。主持国家杰青、优青、青年973等项目。获得VLDB青年贡献奖、IEEE数据工程杰出新人奖、青年长江学者等奖项。获得国家科学技术进步奖二等奖、江苏省科学技术进步奖一等奖,KDD、ICDE最佳论文提名,CIKM唯一最佳论文奖。担任IEEE、VLDB编委,长期担任SIGMOD、VLDB、ICDE等程序委员会委员。
周敏奇  ;华为数据库技术专家,曾任华东师范大学软件学院副教授。2009年毕业于复旦大学计算机系,博士学位。曾获上海市科学技术奖一等奖、教育部科学技术进步奖二等奖,发表顶级学术论文40余篇,拥有多项技术发明专利,多次担任SIGMOD、VLDB、ICDE等程序委员会委员。2017年3月加入华为高斯实验室,目前主要从事多模数据库系统、分布式TP数据库系统和嵌入式内存数据库系统的技术研发。
目录
CONTENTS
第1章数据库发展史00
1.1网状数据库和层次数据库00
1.2关系数据库00
1.3分布式数据库00
1.4云数据库00
1.5NoSQL数据库00
1.6NewSQL数据库0
1.7多模数据库0
1.8AI原生数据库0
1.9其他类型数据库0
1.10小结0
习题0
第2章结构化查询语言0
2.1SQL语法0
2.1.1数据类型0
2.1.2表模式定义0
2.1.3数据完整性检查0
2.1.4插入、删除、更新数据0
2.1.5简单查询0
2.1.6连接操作0
2.1.7集合操作0
2.1.8聚集与分组操作0
2.1.9创建索引0
2.1.10视图与物化视图0
2.1.11访问控制0
2.1.12事务处理语句0
2.2存储过程和函数0
2.2.1存储过程的声明0
2.2.2存储过程的修改0
2.2.3函数的声明和修改0
2.3触发器0
2.4游标0
2.4.1声明游标0
2.4.2打开游标0
2.4.3使用游标0
2.4.4关闭游标0
2.5小结0
习题0
第3章数据库设计和E R模型0
3.1关系代数0
3.1.1关系代数的由来0
3.1.2关系代数运算符0
3.1.3关系代数与SQL的转换0
3.2数据库设计0
3.2.1数据库设计概述0
3.2.2数据库设计的特征0
3.2.3实体联系模型: E R模型0
3.2.4数据库设计流程0
3.2.5数据库设计中的规范化设计0
3.3数据库约束0
3.3.1数据完整性0
3.3.2约束操作0
3.3.3非空约束0
3.3.4唯一约束0
3.3.5主键约束0
3.3.6外键约束0
3.3.7条件约束0
3.4小结0
习题0
第4章数据库未来发展趋势0
4.1新硬件驱动的数据库(鲲鹏 昇腾)0
4.1.1处理器架构对数据库系统带来挑战与机遇0
4.1.2异构处理器高速发展为数据库系统创新提出新方向0
4.2新应用驱动的数据库(5G、车、终端云)0
4.2.15G及其相关应用对数据库系统带来的挑战与机遇0
4.2.2自动驾驶汽车对数据库系统带来的挑战与机遇0
4.2.3终端云对数据库系统带来的挑战与机遇0
4.3小结0
习题0
第5章GaussDB架构0
5.1GaussDB发展历史0
5.1.1概述0
5.1.2GMDB内存数据库历史
5.1.3GaussDB 100 OLTP数据库历史
5.1.4GaussDB 200 OLAP数据库历史
5.2GaussDB架构概览
5.2.1数据库架构变化
5.2.2GaussDB关键技术架构
5.3GaussDB 100 OLTP数据库架构
5.3.1设计思想与目标客户
5.3.2分布式强一致的架构
5.3.3可插拔存储引擎架构
5.4GaussDB 200 OLAP数据库架构
5.4.1设计思想与目标客户
5.4.2面向数据分析的高效存储和计算架构
5.4.3分布式并行计算架构
5.4.4并行数据加载
5.5GaussDB云数据库架构
5.5.1设计思想与目标客户
5.5.2弹性伸缩的多租户数据库架构
5.6GaussDB多模数据库架构
5.6.1设计思想与目标客户
5.6.2面向数据强一致的多模数据库系统架构
5.6.3面向极致性能的多模数据库系统架构
5.7小结
习题
第6章面向鲲鹏和昇腾的创新架构
6.1鲲鹏和昇腾简介
6.2面向鲲鹏的创新架构
6.3面向异构AI昇腾芯片的创新架构
6.3.1昇腾AI芯片介绍
6.3.2openGauss在昇腾AI芯片下的技术创新
6.4智能芯片群调度模块
6.5小结
习题
第7章openGauss SQL引擎
7.1SQL引擎概览
7.2SQL解析
7.3查询优化
7.3.1查询重写
7.3.2路径搜索
7.3.3代价估算
7.4小结
习题
第8章openGauss执行器技术
8.1openGauss执行器概述
8.2openGauss执行引擎
8.2.1执行流程
8.2.2执行算子
8.2.3表达式计算
8.3openGauss执行器的高级特性介绍
8.3.1编译执行
8.3.2向量化引擎
8.4小结
习题
第9章openGauss存储技术
9.1openGauss存储概览
9.2openGauss行存储引擎
9.2.1行存储引擎总体架构
9.2.2行存储的基本模型与页面组织结构
9.2.3行存储的多版本管理以及DML操作
9.2.4基于CSN的MVCC机制
9.2.5行存储的空间回收
9.2.6行存储的共享缓存管理
9.2.7并行日志系统设计
9.2.8持久化及故障恢复系统设计
9.3openGauss列存储引擎
9.3.1列存储引擎的总体架构
9.3.2列存储的页面组织结构
9.3.3列存储的MVCC设计
9.3.4列存储的索引设计
9.3.5列存储自适应压缩
9.3.6列存储的持久化设计
9.4openGauss内存引擎
9.4.1内存引擎的兼容性设计
9.4.2内存引擎索引
9.4.3内存引擎的并发控制
9.4.4内存引擎的内存管控
9.4.5内存引擎的持久化
9.5小结
习题
第10章openGauss事务机制
10.1openGauss事务概览
10.1.1显式事务和隐式事务
10.1.2单机事务和分布式事务
10.2openGauss事务ACID特性介绍
10.2.1openGauss中的事务持久性
10.2.2openGauss中的事务原子性
10.2.3openGauss中的事务一致性
10.2.4openGauss中的事务隔离性
10.3openGauss并发控制
10.3.1读 读并发控制
10.3.2读 写并发控制
10.3.3写 写并发控制
10.3.4并发控制和隔离级别
10.3.5对象属性的并发控制
10.3.6表级锁、轻量锁和死锁检测
10.4openGauss分布式事务
10.4.1分布式事务的原子性和两阶段提交协议
10.4.2分布式事务一致性和全局事务管理
10.5小结
习题
第11章openGauss安全
11.1openGauss安全机制概览
11.2openGauss安全认证
11.2.1客户端配置信息
11.2.2服务端认证方法
11.2.3安全认证通道
11.2.4RFC5802认证协议
11.3openGauss角色管理机制
11.3.1角色管理模型
11.3.2三权分立模型
11.3.3对象访问控制
11.4openGauss审计与追踪
11.4.1审计记录机制
11.4.2审计追踪机制
11.4.3统一审计
11.5openGauss数据安全技术
11.5.1数据加密算法
11.5.2数据脱敏技术
11.5.3透明加密技术
11.5.4全程加密技术
11.6openGauss云安全技术
11.6.1IAM认证
11.6.2安全chroot技术
11.6.3防篡改技术
11.7openGauss智能安全机制
11.8小结
习题
附录A习题答案
附录B数据库相关列表
附录C术语表
参考文献
前沿
数据库是组织、存储、管理、分析数据的系统,是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月
openGauss数据库核心技术(华为智能计算技术丛书) pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版