本书系统介绍了数据库的基本原理,并基于MySQL讲解了相应的实战内容。本书是浙江省普通本科高校十四五首批新工科、 新文科、 新医科、新农科重点教材建设项目数据库系统理论与MySQL实践的成果,湖州师范学院校重点教材《数据库系统理论与MySQL实践》的成果,浙江省一流课程项目数据库原理的阶段性成果,同时得到了湖州师范学院国家级一流本科专业计算机科学与技术专业的支持。
全书分为11章。第1章讲解数据库系统概述; 第2章讲解关系模型;第3章讲解结构化查询语言SQL;第4章、第5章介绍数据库的安全性和数据库的完整性;第6章、第7章讲解关系数据理论和数据库设计;第8~10章介绍数据库优化、数据库恢复技术和并发控制;第11章讲解MySQL数据库编程。本书附有配套资源,包括教学视频、习题答案、教学课件等。
本书通俗易懂、案例丰富,既可作为大学本科、高职高专院校计算机及相关专业的数据库原理与应用课程的教材,也可作为数据库开发与应用人员、数据库爱好者的参考书。
本书以MySQL为实践平台,以学生-课程数据库、电影数据库、产品-零件数据库为实践案例,重点介绍数据库的基本原理、设计与实现方法,对传统的数据库理论进行精炼,保留核心与实用部分,采用案例教学的方式撰写,强调知识的层次性和技能培养的渐进性。全书共分为7章,分别介绍数据库系统绪论、关系运算理论、关系数据库标准语言SQL、数据库设计与规范化理论、数据库安全性与完整性、数据库备份与恢复、数据库并发控制等。本书提供PowerPoint电子教案、实验练习参考答案,课后习题参考答案、模拟试卷参考答案、核心知识点微视频讲解,方便教师教学和学生自学自测。本书可作为高等院校计算机及相关专业的教学用书,也可以作为从事相关专业的工程技术人员和科研人员的参考资料。
党的二十大报告提出建设现代化产业体系 加快发展数字经济,促进数字经济和实体经济深度融合,打造具有国际竞争力的数字产业集群。我们要大力推动数字经济和实体经济深度融合,加快建设制造强国和网络强国,而数据库技术是支撑数字经济的基石之一。
本书《数据库系统理论与MySQL实践》是集数据库理论与应用技术为一体的教材,可作为计算机科学与技术、软件工程、数据科学与大数据技术、人工智能等专业的核心专业基础课数据库原理与应用的教材。随着互联网 、大数据、云计算等信息技术的快速发展,数据库课程的教学面临着诸多挑战,也迎来了前所未有的机遇。
数据库原理与应用这一课程的教学目标如下。
1. 知识探究。掌握与职业技能相应的数据库系统基本概念和基础理论知识,包括关系代数、SQL、关系规范化理论等;掌握与专业技能相应的数据库设计方法和步骤等专业知识。
2. 能力培养。能用关系代数进行查询优化;能用SQL解决应用系统中的增删改查问题;能用关系规范化理论进行数据库规范化设计;能根据应用问题选择、使用DBMS产品和数据库应用开发工具解决实际工程问题。
3. 素养提升。能在团队项目中担任相应角色;能为实现科技强国的目标刻苦学习,砥砺前行;具有家国情怀、科学精神与工匠精神;增强为区域数字经济服务的意识和能力。
本书由长期担任数据库课程教学、具有丰富教学经验的一线教师编写。编者根据多年的实际教学经验,结合上述教学目标,在分析总结同类教材的基础上,编写了此书。本书针对性强,以提高学生的数据库应用能力为主要目的,基于MySQL 8采用案例教学的方式,在讲解数据库基础理论知识的同时,由浅入深、循序渐进地讲解了MySQL数据库管理与开发过程中的知识。通过人文素养拓展,培养学生的家国情怀、工匠精神、科学精神与个人修养。
本书体系完整、可操作性强,通过大量的例题对知识点应用进行示范,所有例题全部通过多次调试,内容涵盖了一个数据库应用系统要用到的主要知识。
本书共11章,各章的主要内容如下。
第1章 数据库系统概述,介绍了数据库的基本概念;数据库系统的基本结构;数据模型。
第2章 关系模型,介绍了关系模型及其定义;关系完整性,包括实体完整性、参照完整性、用户自定义的完整性;关系代数和关系演算。
第3章 结构化查询语言SQL,介绍了MySQL基础知识;数据库的创建及管理、数据表的创建及管理、增删改表数据等;数据查询,包括简单查询、连接查询、子查询、组合查询等;索引及视图的基本概念、索引及视图的创建和管理、视图的应用等。
第4章 数据库的安全性,介绍了国际上的安全标准;数据的访问控制过程、MySQL用户管理、权限管理和角色管理、审计等。
第5章 数据库的完整性,介绍了如何用SQL实现实体完整性、参照完整性、用户自定义的完整性,以及如何管理这些完整性约束;触发器的概念及创建方法。
第6章 关系数据理论,介绍了范式的概念,低阶范式带来的问题;Armstrong公理系统,如何求最小函数依赖集;模式分解的概念与算法。
第7章 数据库设计,介绍了数据库设计的方法和步骤、概念结构设计和逻辑结构设计的方法,以及利用PDManer工具进行数据库建模的方法。
第8章 数据库优化,介绍了索引的概念、如何创建索引、如何进行索引的优化。
第9章 数据库恢复技术,介绍了事务的基本概念、事务的管理及应用,以及数据库的恢复技术。
第10章 数据库并发控制,介绍了并发控制的概念,数据库中的锁、可串行化调度等概念。
第11章 MySQL数据库编程,介绍了内置函数、自定义函数、存储过程、变量的种类、流程控制、游标。
本书由蒋云良、张永、郝秀兰、许石罗、马雪英、钱璐编写,其中蒋云良编写第2章,张永编写第6章,郝秀兰编写第1、3、5、10、11章,许石罗编写第7、8章,马雪英、钱璐共同编写第4、9章。全书由蒋云良、张永进行审校。
蒋云良参与了第2章的视频拍摄,张永参与了第6章的视频拍摄,郝秀兰参与了第1、2、5、10章的视频拍摄,许石罗参与了第3、4、7、8、9章的视频拍摄。配套视频可通过扫描书中的二维码进行观看。另外,教学团队在智慧树网建有MOOC。
研究生徐稳静、魏少华、刘权、张传进、汲振纲完成了部分资料的编辑、整理工作,在此表示感谢。
本书的编写得到了湖州师范学院、清华大学出版社以及各位同事的支持和帮助,在此一并表示衷心的感谢。
由于编者水平有限、时间仓促,书中难免有疏忽和不妥之处,恳请广大读者批评指正。
编者2025年2月
第1章数据库系统概述1
1.1什么是数据库1
1.1.1数据库的基本概念1
1.1.2数据管理技术的发展7
1.1.3数据库系统的特点9
1.2数据模型10
1.2.1信息的三个世界及描述10
1.2.2数据模型的概念11
1.2.3概念模型13
1.2.4逻辑模型16
1.3数据库系统的结构19
1.4数据库系统的组成22
1.5本章小结24
1.6思考与练习25
第2章关系模型28
2.1关系模型及其定义28
2.1.1关系的定义28
2.1.2码和主码32
2.1.3关系模式和关系数据库32
2.2关系的完整性37
2.2.1实体完整性37
2.2.2参照完整性38
2.2.3用户定义的完整性40
2.3关系代数及其运算40
2.3.1关系操作简介40
2.3.2关系代数概述41
2.3.3传统的集合运算42
2.3.4专门的关系运算44
◆数据库系统理论与MySQL实践(微课视频版)目录◆〖2〗〖2〗2.4抽象的关系演算53
2.4.1元组关系演算53
2.4.2域关系演算54
2.5本章小结55
2.6思考与练习56
第3章结构化查询语言SQL60
3.1SQL概述60
3.1.1SQL的产生与发展60
3.1.2SQL的特点61
3.2数据类型61
3.2.1数值类型62
3.2.2日期和时间类型64
3.2.3字符串类型66
3.2.4二进制类型68
3.2.5选择合适的数据类型68
3.3运算符69
3.3.1算术运算符69
3.3.2比较运算符69
3.3.3逻辑运算符70
3.3.4位运算符70
3.4数据定义语句71
3.4.1数据库/架构定义语句71
3.4.2表定义语句74
3.5单表查询87
3.5.1简单查询88
3.5.2条件查询92
3.5.3高级查询98
3.6多表查询103
3.6.1多表查询103
3.6.2嵌套查询109
3.6.3集合查询118
3.7数据更新120
3.7.1插入数据120
3.7.2修改数据123
3.7.3删除数据124
3.7.4空值的处理126
3.8视图130
3.8.1视图概述130
3.8.2视图定义131
3.8.3更新视图数据137
3.8.4视图的优点138
3.9本章小结138
3.10思考与练习139
3.11实验146
3.11.1MySQL表数据的简单查询148
3.11.2MySQL表数据的多表查询149
3.11.3视图创建与管理149
第4章数据库的安全性151
4.1安全性概念151
4.2安全性控制153
4.2.1数据库安全性控制153
4.2.2自主存取控制156
4.2.3强制存取控制169
4.3审计170
4.4本章小结176
4.5思考与练习176
4.6实验177
第5章数据库的完整性178
5.1实体完整性179
5.2参照完整性182
5.3用户定义的完整性188
5.3.1属性上的约束189
5.3.2元组上的约束191
5.3.3CONSTRAINT子句193
5.4触发器196
5.5本章小结202
5.6思考与练习202
5.7实验203
5.7.1MySQL的完整性约束203
5.7.2MySQL的触发器204
第6章关系规范化理论206
6.1规范化206
6.1.1问题的提出207
6.1.2函数依赖209
6.1.31NF和2NF211
6.1.43NF和BCNF213
6.2数据依赖的公理系统214
6.2.1Armstrong公理系统214
6.2.2最小依赖集216
6.3模式的分解218
6.3.1模式分解的三种定义218
6.3.2分解具有无损连接性的判定219
6.3.3模式分解的算法221
6.4本章小结223
6.5思考与练习223
第7章数据库设计226
7.1数据库需求分析226
7.1.1需求分析的步骤226
7.1.2数据字典227
7.2数据库概念设计230
7.2.1ER模型230
7.2.2ER模型的设计原则230
7.2.3ER模型的设计步骤231
7.3数据库逻辑设计232
7.3.1实体的转换232
7.3.2联系的转换232
7.4数据库物理设计234
7.4.1确定存取方案234
7.4.2评价物理设计235
7.4.3数据库实施和试运行235
7.5数据库建模236
7.5.1安装236
7.5.2PDManer建模237
7.6本章小结244
7.7思考与练习244
7.8实验247
第8章数据库优化248
8.1索引248
8.1.1索引概述248
8.1.2索引的作用250
8.1.3索引的设计原则251
8.1.4索引管理252
8.2查询优化259
8.2.1查询处理的流程259
8.2.2查询优化简介260
8.2.3代数优化和物理优化260
8.2.4代数优化规则261
8.2.5物理优化规则262
8.3本章小结263
8.4思考与练习263
8.5实验265
第9章数据库恢复技术266
9.1数据库中的事务266
9.1.1事务的基本概念266
9.1.2事务的基本操作268
9.2数据库恢复实现技术和策略271
9.2.1数据库恢复概述271
9.2.2故障的种类272
9.2.3恢复的实现技术272
9.2.4恢复策略275
9.3本章小结276
9.4思考与练习277
第10章数据库并发控制279
10.1并发控制概念279
10.1.1并发控制概述279
10.1.2事务的隔离性281
10.2数据库中的锁288
10.2.1封锁288
10.2.2活锁和死锁290
10.2.3可串行化调度291
10.3本章小结294
10.4思考与练习295
第11章MySQL数据库编程297
11.1函数297
11.1.1内置函数297
11.1.2自定义函数306
11.2存储过程308
11.2.1存储过程的概念308
11.2.2存储过程的创建与执行309
11.3变量311
11.3.1系统变量311
11.3.2会话变量313
11.3.3局部变量316
11.4流程控制318
11.4.1判断语句318
11.4.2循环语句322
11.5游标327
11.5.1使用游标的步骤327
11.5.2使用游标检索数据328
11.5.3使用游标的优缺点329
11.6本章小结329
11.7思考与练习330
11.8实验331
课后习题参考答案333
参考文献336