数据库技术自其萌芽之初,便预示着它将照亮数据管理的未来之路。在数字化生活日益普及的今天,数据处理与信息管理已成为驱动服务业创新的关键力量。本书选取了贴近日常生活且极具代表性的“外卖点餐系统”作为教学核心案例,旨在通过产教融合的教学理念,将理论知识与实践操作无缝对接,为读者开启一段既生动又实用的数据库技术探索之旅。本书共11章,内容涵盖绪论与项目案例介绍、MySQL数据库安装及操作、关系数据库基础、数据库设计、关系规范化理论、SQL数据库语言、数据库编程、数据库安全管理、事务管理与并发控制、数据库备份与恢复、数据库新技术与发展趋势。本书实用性、针对性和可操作性强,适合作为计算机专业本科生的学习参考用书,也适合希望了解数据库原理与应用的爱好者,以及有数据处理或管理需求的读者参考使用。
常玉慧,江苏理工学院,女,1971年11月出生,硕士,副教授,现任计算机工程学院信息与软件系副主任,主要研究领域为知识工程与数据挖掘。先后参加国家自然科学基金项目两项;主编、教材各3部,发表科研论文10余篇。从教26年,在数据库原理与应用、Java程序设计、Java WEB等课程上具有丰富的教学经验。
目 录
第1章 绪论与项目案例介绍 1
1.1 数据库系统概述 1
1.1.1 数据与数据管理 1
1.1.2 数据管理技术的发展历史 2
1.1.3 数据库系统的基本组成 7
1.2 三级模式二级映像 9
1.2.1 数据抽象 9
1.2.2 三级模式结构 9
1.2.3 二级映像与数据独立性 10
1.3 数据模型 11
1.3.1 数据模型类型 11
1.3.2 信息的三种世界 12
1.3.3 概念模型与E-R图 13
1.3.4 常见的逻辑模型 15
1.4 数据库系统应用案例:外卖点餐系统 17
1.4.1 功能需求 17
1.4.2 业务规则 18
1.4.3 非功能需求 18
1.4.4 数据需求 18
1.4.5 数据库设计与开发 19
1.5 章节结语 19
作业及思考题 19
第2章 MySQL数据库安装及操作 21
2.1 MySQL数据库简介 21
2.2 MySQL数据库的安装与配置 22
2.3 MySQL客户端工具使用 27
2.3.1 客户端工具介绍 27
2.3.2 Navicat安装及使用 28
第3章 关系数据库基础 32
3.1 理论基础 32
3.1.1 关系模型概念 32
3.1.2 关系模型数据结构 33
3.2 关系代数 34
3.3 关系完整性约束 39
3.4 章节结语 40
作业及思考题 40
第4章 数据库设计 42
4.1 数据库设计概述 42
4.1.1 数据库设计的任务、内容和特点 43
4.1.2 数据库设计的方法 44
4.1.3 数据库设计的基本步骤 46
4.2 需求分析 48
4.2.1 需求分析的任务、内容和方法 48
4.2.2 需求分析的具体步骤 49
4.2.3 数据流图和数据字典 50
4.3 概念设计 54
4.3.1 概念设计概述 54
4.3.2 采用E-R模型方法的概念设计 56
4.3.3 局部概念设计 60
4.3.4 全局概念设计 61
4.4 逻辑设计 66
4.5 物理设计 68
4.6 数据库的实现 69
4.7 数据库设计工具:PowerDesigner 71
4.7.1 PowerDesigner简介与安装 71
4.7.2 使用PowerDesigner进行E-R图设计 75
4.7.3 生成物理模型与SQL脚本 78
4.8 数据库设计案例:外卖点餐系统数据库 80
4.8.1 设计过程 81
4.8.2 物理设计与优化策略 87
4.9 章节结语 88
作业及思考题 88
实验1 数据库设计 89
第5章 关系规范化理论 90
5.1 函数依赖 91
5.1.1 函数依赖的定义 91
5.1.2 为什么要讨论函数依赖 91
5.1.3 函数依赖的分类 92
5.1.4 函数依赖的基本性质 92
5.1.5 主键和外键 93
5.2 范式 94
5.2.1 第一范式(1NF) 94
5.2.2 第二范式(2NF) 95
5.2.3 第三范式(3NF) 95
5.2.4 BCNF与更高范式 96
5.3 关系模式的规范化 98
5.3.1 关系模式的分解 99
5.3.2 关系模式的规范化及反规范化 101
5.4 章节结语 102
作业及思考题 102
第6章 SQL数据库语言 104
6.1 数据定义语言(DDL) 105
6.1.1 创建与删除数据库 105
6.1.2 创建、修改与删除表 107
6.1.3 索引的创建与删除 112
6.2 数据操纵语言(DML) 113
6.3 数据查询语言(DQL) 115
6.3.1 单表查询 115
6.3.2 连接查询 118
6.3.3 嵌套查询 120
6.3.4 聚合函数 123
6.4 章节结语 124
作业及思考题 124
实验2 创建表和定义完整性约束 126
实验3 数据操作及体验完整性约束 128
实验4 数据查询 128
第7章 数据库编程 131
7.1 数据库编程基础 131
7.1.1 数据库编程的概念与目的 131
7.1.2 编程语言与数据库交互方式 132
7.2 视图 133
7.2.1 建立视图 133
7.2.2 删除视图 135
7.2.3 查询视图 135
7.2.4 更新视图 135
7.3 存储过程与触发器 136
7.3.1 游标的定义及使用 136
7.3.2 存储过程概述 137
7.3.3 存储过程在外卖点餐系统中的相关操作 138
7.3.4 触发器概述 141
7.3.5 触发器在外卖点餐系统中的相关操作 141
7.4 章节结语 144
作业及思考题 144
实验5 视图的应用 145
实验6 游标的应用 146
实验7 存储过程及应用 147
实验8 触发器及应用 147
第8章 数据库安全管理 149
8.1 数据安全概述 149
8.2 MySQL安全特性 150
8.2.1 用户与权限管理 150
8.2.2 访问控制列表(ACL) 155
8.2.3 审计与日志记录 156
8.3 加密技术在外卖点餐系统中的应用 158
8.3.1 数据加密与解密 158
8.3.2 SSL/TLS在MySQL连接中的应用 159
8.4 安全性实践:外卖点餐系统的安全加固 160
8.4.1 敏感数据保护策略 160
8.4.2 防止SQL注入攻击 161
8.4.3 权限最小化原则 161
8.5 章节结语 162
作业及思考题 162
实验9 用户管理和权限管理 163
第9章 事务管理与并发控制 165
9.1 事务管理 166
9.1.1 事务的概念 166
9.1.2 事务的性质 166
9.2 并发控制 168
9.2.1 并发引起的问题 168
9.2.2 封锁 169
9.3 并发调度的可串行性 173
9.3.1 正确的并发调度 173
9.3.2 两段锁协议 174
9.4 MySQL的并发控制实现 175
9.4.1 InnoDB存储引擎的锁机制 175
9.4.2 事务的ACID特性 177
9.5 外卖点餐系统中的并发问题 178
9.5.1 订单处理并发冲突 178
9.5.2 库存更新并发控制 179
9.6 章节结语 179
作业及思考题 180
实验10 并发事务控制 180
第10章 数据库备份与恢复 182
10.1 数据库恢复概述 182
10.1.1 故障类型与恢复策略 182
10.1.2 恢复模型的比较 183
10.2 MySQL的备份与恢复机制 185
10.2.1 逻辑备份与恢复(mysqldump) 185
10.2.2 物理备份与恢复(Xtrabackup) 186
10.2.3 二进制日志的应用 187
10.3 章节结语 188
作业及思考题 188
实验11 数据恢复 189
第11章 数据库新技术与发展趋势 191
11.1 面向对象数据模型 192
11.1.1 面向对象数据模型的定义 192
11.1.2 面向对象数据库管理系统 193
11.1.3 面向对象数据库系统概念与特征 194
11.1.4 面向对象数据库系统的查询 194
11.1.5 面向对象数据库系统的并发控制 194
11.2 分布式数据库 195
11.2.1 分布式数据库及其分类 195
11.2.2 分布式数据库的特点 195
11.2.3 分布式数据库的分级结构 196
11.2.4 分布式数据库的数据分布 198
11.3 工程数据库 199
11.3.1 工程数据库基本概念 199
11.3.2 工程数据库体系结构 199
11.3.3 长事务管理 200
11.4 其他数据库 201
11.4.1 模糊数据库 201
11.4.2 空间数据库 202
11.4.3 统计与科学数据库 202
11.4.4 实时数据库 203
11.4.5 内存数据库 204
11.5 大数据管理技术 205
11.5.1 大数据的定义 205
11.5.2 大数据的特点 205
11.5.3 传统关系数据库面临的问题 206
11.5.4 NoSQL数据库 206
11.6 数据仓库 208
11.6.1 数据仓库的定义 209
11.6.2 数据仓库系统的体系结构 209
11.6.3 数据仓库的作用 210
11.7 知识发现 210
11.7.1 KDD的相关概念 210
11.7.2 KDD的基本任务 211
11.7.3 KDD的处理过程 212
11.7.4 KDD的方法 214
11.8 章节结语 215
作业及思考题 215