PREFACE

前言


在大数据时代,“数据”构成了一种世界观,以“数据”观世界,则客观世界就是一切数据的总和。“数据”是一种宝贵的资源,甚至可以说是战略性资源。“大数据”技术使“数据”蕴含着无尽的能量,显示出超然的魅力。只要掌握数据,人人都可以俯瞰大千世界的任何一个侧面。所谓掌握数据,也就意味着首先要处理数据; 
而数据处理的过程是与数据库技术息息相关的。数据库原理和技术给人们提供了一种理解、处理和管理世界的方法。随着数据观的成长、成熟和发展,数据时空的海量扩张呈现出一个大数据时代来临的现实景观。大数据必然带来云计算技术的发展,数据库技术也因云计算而有了新的飞跃,于是云数据库管理系统给我们打开了一个数据处理的想象空间,呈现出海量数据与云计算背景下数据处理的“魅力生态”新技术场景。
在这种形势下,
华为公司研发推出的GaussDB管理系统应运而生。它以基于云计算的数据库管理技术为根基,是企业级高扩展海量存储分布式数据库管理系统,完全兼容MySQL,一经问世便成为华为鲲鹏系统生态中的核心产品之一,进而成为替代国外数据库管理系统软件、解决“卡脖子问题”的国产本土数据库管理系统的代表、首选和佼佼者,备受瞩目。

作为三十余年一直在高校讲授“数据库原理和应用”相关课程的教师,我编著了多本相关的数据库教程,但这是第一次编著国产数据库教程。在多年的实践教学的基础上,在华为公司GaussDB团队合作和指导下,研发编著了
本书,以使GaussDB(for MySQL)更快地走进数据库技术应用领域,走进高校,为广大读者用户所掌握。

本书的特点在于将数据库基本原理知识与GaussDB(for MySQL)数据库管理系统的技术知识融合在一起,是以GaussDB(for MySQL)为平台的数据库原理与技术教程,也是从数据库基本概念入手的GaussDB(for MySQL)数据库管理系统入门教程。本书讲解了数据库基本概念、数据库设计、数据库组织与管理、数据库SQL查询语言、数据库系统控制,以及数据库应用系统开发的一般方法,同时也介绍了GaussDB(for MySQL)云数据库的特性、架构及工作原理等几个方面的内容。每章都通过翔实的基础知识和简明的操作步骤,将知识点和实际应用相结合,帮助读者理解和掌握数据库原理和数据库操作。
以“基础知识与动手实验相结合”为编写理念,以一个完整的数据库应用系统案例贯穿全书,编写体例贴近实践的语境,将数据库原理与数据库操作技术,以及数据库应用系统开发等内容相结合,由浅入深,层层递进
地展现给读者。
数据库原理及应用——基于GaussDB的实现方法
前言
00
00

本书共有三篇,共13章。
上篇: 基础理论,共有3章。



第1章走进GaussDB。主要介绍了信息、数据、数据库、数据库管理系统、数据库系统和分布式数据库系统等概念; 
数据库系统结构、数据库应用系统的组成; GaussDB(for MySQL)的特点、系统架构和集成环境等内容。

第2章关系数据库。主要介绍了数据描述过程、概念模型、关系模型、关系规范化和关系代数等内容。
第3章数据库设计和建模。主要介绍了数据库设计的生命周期、需求分析方法、概念结构设计、逻辑结构设计、物理结构设计方法、步骤和工作流程等内容。
中篇: 技术详解,共有7章。


第4章数据库预备知识。主要介绍了数据库的数据类型、常用函数和表达式计算等数据库应用开发的必备基础知识等。

第5章SQL。主要介绍了SQL的特点、功能; SQL数据定义语句、数据操纵语句应用等内容。
第6章数据库。主要介绍了集中式数据库、分布数据库式、云数据库框架; 介绍了存储引擎; 数据库创建及维护方法等内容。
第7章文件组织与索引。主要介绍了文件组织、索引、索引的类型以及创建索引遵循的原则,索引创建、维护和使用等内容。
第8章表与视图。主要介绍了数据表的操作方法,包括表设计概述、创建表的方法、表中数据的操作方法; 介绍了什么是视图
、创建视图、视图维护及使用等内容。
第9章数据查询。 主要介绍了SELECT语句、集函数查询、单表查询、多表查询、嵌套查询、子查询、带EXISTS关键字的子查询,并通过案例演示SQL语句的实际应用。

第10章数据库完整性。主要介绍了完整性约束; 介绍了存储过程,存储过程的创建以及
存储过程的调用、维护和使用; 介绍了触发器,创建触发器,维护及使用触发器等内容。

下篇: 系统应用,共有3章。


第11章数据库系统控制。主要介绍了事务及事务特性; 介绍了数据库系统恢复技术及并发控制; 介绍了数据库安全、用户管理、数据库备份/恢复、数据库表导入/导出等内容。
第12章GaussDB(for MySQL)数据库管理系统。主要介绍了GaussDB(for MySQL)系统结构,数据存储、恢复与实现工作机制; 介绍了GaussDB整体架构和GaussDB云数据库架构等内容。
第13章数据库应用系统开发的一般方法。主要介绍了数据库应用系统开发的一般方法,并对应用系统开发中的问题提出、需求分析、系统设计等工作进行详细阐述。
全书各章节配有60个微视频,如下表所示。





序号
视 频 标 题
对应章节位置

1
11a: 基本概念一
1.1尾
2
11b: 基本概念二
1.1.3尾
3
12: 数据库系统
1.2尾
4
13: GaussDB(for MySQL)概述
1.4尾
5
21: 概念模型
2.2尾
6
22: 关系模型
2.3尾
7
23: 关系规范化
2.4尾
8
24: 关系运算和、差、交
2.5.3尾
9
25: 关系运算投影、选择
2.5.6尾
10
26: 关系运算连接
2.5.7尾
11
27: 除
2.5.8尾
12
31: 数据库生命周期
3.1尾
13
32: 需求分析
3.2尾
14
33: 概念结构设计
3.3尾
15
34: 逻辑结构设计
3.4尾
16
35: 物理结构设计
3.5尾
17
41:  GaussDB(for MySQL)的数据类型
4.1尾
18
42:  GaussDB(for MySQL)的运算符
4.2尾
19
43:  GaussDB(for MySQL)的函数
4.3尾
20
51: SQL概述
5.1尾
21
52: SQL数据操纵语句
5.3尾
22
61: 数据库分类
6.1尾
23
62: 存储引擎
6.2尾
24
63: 创建数据库
6.3.1尾
25
64: 维护数据库
6.3.2尾
26
71: 文件组织
7.1尾
27
72: 创建索引的原则
7.3尾
28
73: 维护索引
7.5尾
29
81: 表的创建
8.1尾

续表


序号
视 频 标 题
对应章节位置

30
82: 表中数据的输入
8.2.1尾
31
83: 表中数据的维护
8.3.3尾
32
84: 视图特性
8.4尾
33
85: 视图操纵
8.6尾
34
91: SELECT语句概述
9.1尾
35
92: 集函数查询
9.2尾
36
93: 行、列查询
9.3.4尾
37
94: 两表列查询
9.4.2尾
38
95: 多表条件查询
9.4.4尾
39
96: 多表行、列查询
9.4.5尾
40
97: 多表嵌套查询
9.5.2尾
41
98: 带IN关键字的查询
9.6.1尾
42
99: 带比较运算符的查询
9.6.2尾
43
910: 带ANY关键字的子查询
9.6.3尾
44
911: 带ALL关键字的子查询
9.6.4尾
45
912: 带EXISTS关键字的子查询
9.6.5尾
46
101: 实体完整性约束
10.1.1尾
47
102: 参照完整性约束
10.1.2尾
48
103: 用户自定义完整性约束
10.1.3尾
49
104: 触发器概述
10.2.1尾
50
105: 创建触发器
10.2.2尾
51
106: 维护触发器
10.2.3尾
52
107: 存储过程概述
10.3.1尾
53
108: 创建存储过程
10.3.2尾
54
109: 维护存储过程
10.3.3尾
55
111: 事务
11.1.2尾
56
112: 恢复技术
11.2.3尾
57
113: 并发控制
11.3.4尾
58
114: 数据库安全
11.4.4尾
59
121: GaussDB(for MySQL)概述
12.4.3尾
60
122:  GaussDB数据库整体架构
12.5.4尾



本书富有特色,是国内首本引入GaussDB作为技术平台的数据库教学用书,对扩展数据库应用,推广使用国产数据库管理系统软件,普及GaussDB,都具有很强的针对性和现实意义。全书从基础理论入手,体系清晰,知识点全面,对数据库原理知识体系的讲解深入浅出,精编精讲,尽量将复杂的问题简单化; 以实例主导,有很强的实用性; 设计手段尽量简洁,尤其注重使用和设计能力的培养。

本书配有丰富的教学资源,可作为学习数据库原理课程教学用书,也可作为培养“
小型应用系统开发能力”的学习用书,以及广大计算机用户和计算机学习者的培训用书及自学用书。

本书由李雁翎编写。
华为公司数据库团队专家提供了有关GaussDB(for MySQL)数据库管理系统部分内容及资料
,并在编写过程中给予指导。刘征承担了部分实验的验证和微视频的录制。华为公司张霄鸾、赵成、周家恩、张迪、张昆、王立、贾新华、康阳、赵新新、张彦轩,以及清华大学出版社盛东亮、曾珊在图书编写过程中给予了各种支持,在此一并表示感谢。
由于作者水平有限,书中难免有疏漏和不足之处,欢迎广大读者批评指正。


编者