中国科学院院士李国良作序,业界学界专家联袂推荐。以华为公司自主研发的GaussDB(for MySQL)数据库管理系统为背景,全面讲述数据库原理和技术,以及基于GaussDB(for MySQL)进行数据库应用系统开发的基本技能和方法。
本书配套丰富资源,包括在线课程、微课视频(60个)、教学课件(PPT)、教学大纲、配套习题,以及习题参考答案等;与本书配套的实验指导书将于2022年2月出版。
在大数据时代,“数据”是一种宝贵的资源,甚至可以说是战略性资源,它蕴含着无尽的能量,展示出超然的魅力。随着大数据时代的到来,数据库技术在研究、管理和应用数据领域成为备受瞩目的核心技术。在这种背景下,数据库技术已成为人们需要学习和掌握的一种基本知识和本领。
本书以华为公司自主研发的GaussDB(for MySQL)数据库管理系统为背景,全面讲述了数据库原理和技术,以及基于GaussDB(for MySQL)进行数据库应用系统开发的基本技能和方法。
本书以培养计算思维能力为目标,由“基础理论篇”“技术篇”“系统应用篇”三篇组成,以数据库应用系统案例为主线贯穿全书,讲述了数据库基础理论、数据库操作和管理的基本技能以及数据库应用系统开发的一般方法。
特别地,它以目前国产新型云数据库为背景,这在国内极为少见,对于增强科技自信、民族自信,促进国产数据库软件的发展和应用普及具有重要意义。
本书配套资源全面、丰富,未来还将配套适合GaussDB(for MySQL)平台的实验指导书,可作为数据库技术学习者的教学用书,也可作为培养“小型应用系统开发能力”的学习用书,以及作为广大计算机用户和计算机学习者的培训用书及自学用书。
上篇基 础 理 论
第1章走进GaussDB00
1.1与数据库相关的基本概念00
1.1.1信息00
1.1.2数据00
1.1.3数据库00
1.1.4数据库管理系统00
1.1.5数据库系统00
1.1.6分布式数据库系统00
1.2数据库应用系统的组成00
1.2.1数据库应用系统组织架构00
1.2.2数据库系统结构00
1.2.3DBMS管理与控制00
1.3GaussDB(for MySQL)概述0
1.3.1GaussDB(for MySQL)的特点0
1.3.2GaussDB(for MySQL)系统架构0
1.3.3GaussDB(for MySQL)独特之处0
1.3.4GaussDB(for MySQL)集成环境0
1.3.5GaussDB家族其他数据库产品0
知识点树0
思考题0
第2章关系数据库0
2.1数据描述0
2.2概念模型0
2.2.1概念模型相关术语0
2.2.2实体联系类型 0
2.2.3实体联系图0
2.3关系模型0
2.3.1关系模型相关术语0
2.3.2关系的操作0
2.3.3关系的完整性0
2.3.4关系数据库的特性0
2.4关系规范化0
2.4.1冗余与异常0
2.4.2函数依赖0
2.4.3规范化原则0
2.4.4模式分解0
2.5关系代数0
2.5.1并运算0
2.5.2差运算0
2.5.3交运算0
2.5.4笛卡儿积运算0
2.5.5投影运算0
2.5.6选择运算0
2.5.7连接运算0
2.5.8除运算0
知识点树0
思考题0
数据库原理及应用——基于GaussDB的实现方法
目录
0
0
第3章数据库设计和建模0
3.1数据库生命周期0
3.2需求分析0
3.2.1需求分析阶段的目标及任务0
3.2.2需求分析阶段的工作过程0
3.3概念结构设计0
3.3.1概念结构设计的目标及任务0
3.3.2概念结构设计的一般策略和方法0
3.3.3概念结构设计阶段工作过程0
3.4逻辑结构设计0
3.4.1逻辑结构设计的目标及任务0
3.4.2概念结构转换成逻辑结构的方法0
3.4.3逻辑结构设计阶段工作过程0
3.5物理结构设计0
3.5.1物理结构设计的目标及任务0
3.5.2物理结构设计时的注意事项0
3.5.3物理结构设计阶段工作过程0
知识点树0
思考题0
中篇技 术 详 解
第4章数据库预备知识0
4.1数据类型0
4.1.1数值类型0
4.1.2文本类型0
4.1.3日期与时间类型0
4.2运算符0
4.2.1算术运算符0
4.2.2比较运算符0
4.2.3逻辑运算符0
4.3函数0
4.3.1字符串函数0
4.3.2数学函数0
4.3.3日期函数0
4.3.4其他函数0
知识点树0
思考题0
第5章SQL0
5.1SQL概述0
5.1.1SQL的特点0
5.1.2SQL的功能0
5.2数据定义0
5.2.1定义数据库0
5.2.2定义及维护数据库表0
5.2.3定义视图0
5.2.4定义触发器0
5.3数据操纵0
5.3.1数据库表的数据插入0
5.3.2数据库表的数据修改0
5.3.3数据库表的数据删除0
知识点树0
思考题0
第6章数据库0
6.1数据库的种类0
6.1.1集中式数据库0
6.1.2分布式数据库0
6.1.3云数据库0
6.2存储引擎0
6.2.1InnoDB存储引擎0
6.2.2MyISAM存储引擎0
6.2.3MEMORY存储引擎
6.2.4Archive存储引擎
6.3数据库创建与维护
6.3.1创建数据库
6.3.2维护数据库
6.3.3创建数据库模式
知识点树
思考题
第7章文件组织与索引
7.1文件组织
7.2什么是索引
7.3创建索引的原则
7.4索引类型及创建索引
7.4.1普通索引和唯一索引
7.4.2单列索引和组合索引
7.4.3全文索引
7.4.4空间索引
7.5维护索引
7.5.1查看索引
7.5.2删除索引
知识点树
思考题
第8章表与视图
8.1表设计概述
8.2创建表及维护
8.2.1创建表
8.2.2表结构的维护
8.2.3表的键及约束
8.3表中数据的操纵
8.3.1插入数据
8.3.2修改数据
8.3.3删除数据
8.4视图概述
8.4.1什么是视图
8.4.2视图的特性
8.5创建视图
8.5.1创建单表视图
8.5.2创建多表视图
8.5.3维护视图
8.6使用视图
8.6.1使用视图插入数据
8.6.2使用视图更新数据
8.6.3使用视图删除数据
知识点树
思考题
第9章数据查询
9.1SELECT语句
9.2集函数查询
9.3简单查询
9.3.1所有列查询
9.3.2指定列查询
9.3.3指定行查询
9.3.4指定行、列查询
9.3.5分组查询
9.3.6条件分组查询
9.4多表查询
9.4.1两表列查询
9.4.2多表列查询
9.4.3两表条件查询
9.4.4多表条件查询
9.4.5多表指定行、列查询
9.5嵌套查询
9.5.1两表嵌套查询
9.5.2多表嵌套查询
9.6子查询
9.6.1带IN关键字的子查询
9.6.2带比较运算符的子查询
9.6.3带ANY关键字的子查询
9.6.4带ALL关键字的子查询
9.6.5带EXISTS关键字的子查询
9.7SQL引擎
9.7.1SQL解析
9.7.2查询优化
知识点树
思考题
第10章数据库完整性
10.1完整性约束
10.1.1实体完整性约束
10.1.2参照完整性约束
10.1.3用户自定义完整性约束
10.2触发器
10.2.1触发器概述
10.2.2创建触发器
10.2.3删除触发器
10.3存储过程
10.3.1存储过程概述
10.3.2创建存储过程
10.3.3执行存储过程
10.3.4删除存储过程
知识点树
思考题
下篇系 统 应 用
第11章数据库系统控制
11.1事务
11.1.1事务ACID属性
11.1.2调度
11.2恢复技术
11.2.1事务故障及恢复
11.2.2系统故障及恢复
11.2.3介质故障及恢复
11.3并发控制
11.3.1并发控制概述
11.3.2串行化调度
11.3.3封锁的并发控制
11.3.4并发调度的可串行性
11.4数据库安全
11.4.1数据库安全概述
11.4.2用户管理
11.4.3数据库备份/恢复
11.4.4数据库表导入/导出
知识点树
思考题
第12章GaussDB(for MySQL)数据库管理系统
12.1缘起
12.2系统结构
12.2.1云环境的不同
12.2.2GaussDB 体系架构
12.2.3日志存储
12.2.4页存储
12.2.5存储抽象层
12.2.6数据库前端
12.3数据存储
12.3.1写流程
12.3.2读流程
12.4恢复与实现
12.4.1日志存储恢复
12.4.2页存储恢复
12.4.3SAL和数据库恢复
12.5GaussDB整体架构
12.5.1GaussDB发展
12.5.2GaussDB架构概览
12.5.3GaussDB云数据库架构
12.5.4GaussDB多模云数据库架构
知识点树
思考题
第13章数据库应用系统开发的一般方法
13.1总体设计
13.1.1提出问题
13.1.2总体系统架构
13.1.3系统功能
13.2数据库设计
13.3数据库管理与实现
13.3.1数据库创建
13.3.2数据库表的创建
13.3.3向数据表中输入数据
13.3.4视图设计
13.3.5存储过程设计
13.3.6触发器设计
13.4应用系统前端开发
13.4.1数据库连接
13.4.2用户登录模块设计
13.4.3数据维护
知识点树
思考题
附录A访问GaussDB(for MySQL)用户指南
参考文献
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录
魏凯 中国信息通信研究院 云计算与大数据研究所 副所长
中国数据库技术产业进入蓬勃发展的快车道,但人才匮乏成为一大瓶颈。《数据库原理及应用——基于GaussDB的实现方法》的出版非常及时,将数据库基本原理、新技术和应用融为一体,并以GaussDB为实例详细介绍了数据库系统开发,是广大数据库从业者和爱好者学习的好材料,相信能够为国内数据库人才培养添砖加瓦。
彭智勇 武汉大学教授 CCF数据库专委会副主任
当前数据变得越来越重要,已成为国家乃至企业战略性资源,并呈现出海量、分散、多模等特性。作为大数据时代的应需之作,GaussDB(for MySQL)云数据库是华为公司自主研发的新一代企业级高扩展海量存储分布式数据库管理系统,具有分布式、云化架构、混合负载、多模异构、AI+DB等特征。本书将传统数据库基础知识与GaussDB先进技术有机融合,非常适合作为本科生的入门教材,有助于学生全面掌握数据库基本原理,并运用GaussDB(for MySQL)进行数据库应用开发。
盖国强 云和恩墨创始人
自结绳记事以降,数据的记录处理和传输使用一直是驱动社会进步的关键要素,而数据库则是这一要素在信息世界的载体和内核。毫无疑问 ,GaussDB 正是人类技术发展的精彩呈现,它以高斯和数学为名,以开源和创新为基,GaussDB 是今天数据库技术最先进的代表力量。源自实践,回归教学,书中的章节设计颇具引领性和现实性,从关系型原理到ACID特性,从数据类型到代数运算,从生命周期到SQL和查询,这是RDBMS技术发展近50年的高度浓缩,由每一个章节的火花都可以触发学习的风林火山之心,也一定可以为行业发掘和培养更多的未来之星。
周彦伟 极数云舟创始人&ArkDB总架构师,中国计算机行业协会数据库专委会会长
近年来,随着各行各业的数字化转型在深入发展,以及对数据存储与处理需求的急剧增长,国产数据库产品也蓬勃发展,呈现出今天百花齐放的繁盛景象。怎么做好一个数据库产品?“解决好语法、协议与主流数据库产品的兼容性,数据库产品就成功了一半。”这是我在规划设计ArkDB的时候告诫团队应遵循的一个基本原则。显而易见,目前使用最广泛、产品装机量规模最大的无疑是MySQL数据库,兼容MySQL成了新兴数据库产品的不二之选。除了ArkDB这么做,我欣喜地看到华为公司自主研发的GaussDB也推出了for MySQL版本,这必将大大降低GaussDB的使用门槛,提升GaussDB的影响力。而本书的出版更可以起到助力的效果。本书不仅详细讲述了数据库的基础知识和基本原理,也细致介绍了GaussDB和MySQL的核心技术,这样综合性的内容设置可以令读者获得事半功倍的学习效果。期待本书早日付梓,以飨众人。
武新 GaussDB首席架构师
关系数据库在近50年经历了从理论、标准到大规模产业的蓬勃发展。在今天全球加速进入数字化、智能化的大背景下,数据库系统在信息处理领域的地位更加重要,其发展也进入了一个新的阶段。在技术层面,分布式、云化、多模、结构化与非结构化数据的统一视图、软硬协同、智能化自调优、数据安全、SQL+NoSQL等都在不断积累和快速突破。在应用层面,5G、AI、大数据、实时数据处理等对数据库和数据处理系统提出了新的技术和应用场景挑战,这些新需求是驱动下一轮数据库系统发展和创新的原动力。本书深入浅出地阐述了现代关系型数据库系统,既有对数据库领域最常用的关系模型、ACID事务模型、SQL声明式语言等核心概念的清晰介绍,也有对云架构下存算分离、日志复制、分布式事务、数据库智能优化、跨数据中心高可用等最技术实现的深入剖析,是一本兼顾理论和实践的、具有很强实用性的图书,无论是对于数据库系统的初学者还是进阶者、数据库内核开发者还是各类应用开发者,都可以带来全新的视角,具有重要的参考意义。