全书分为5部分: 第1-第3章为数据库的基本原理; 第4-7章为数据库的设计; 第8章为SQL Server 2008的使用; 第9章为数据库应用系统开发; 第10章为数据库的发展。同时各章节增加了更多的例题, 教师和学生更容易利用这些实例进行学习, 更好地掌握和理解数据库知识, 更加注重全面培养学生的应用技能和能力。
本书是江苏省高等学校精品教材,也是“十二五”江苏省高等学校重点教材。第1版本着强化基础、紧密联系实际应用、为教学和社会及产业服务的原则,以数据库应用实例贯穿于各章节,将数据库基本原理、技术与应用三者有机结合起来,突出实践应用。本次修订继续保留和强化这些特色,同时进一步优化内容,淘汰旧知识、补充新技术,从知识内容优选、示例更新等多个方面进行修订,完善理论教学内容、充实实验指导,形成理论与应用相结合的一体化教材。
本书的主要特点是突出基础性和应用性,以基于数据库的应用能力培养为主要目标,通过实例,帮助学生理解抽象的理论知识;通过应用设计,提高学生解决实际问题的能力;通过大量习题,检查学生对基本知识的掌握程度。
本书较为全面地介绍了数据库系统的基本概念、基本原理和应用技术。全书共9章。第1章是数据库系统概述,主要介绍了数据库技术的产生与发展、数据库技术相关概念、数据库系统的体系结构、数据模型等;第2章是关系数据库,阐述了关系模型的3个方面,即关系数据结构、关系数据操作和关系完整性约束;主要讲解了关系数据模型有关的定义、概念和性质,关系代数和三类关系完整性约束;第3章是关系数据库标准语言SQL,以丰富的示例生动、具体地讲解了SQL语言的数据定义、数据查询、数据操作、视图及数据控制,这些内容是数据库应用的重要基础;第4章是关系规范化理论,主要讲解函数依赖、范式和模式设计方法等关系模式规范化理论;第5章是数据库设计,通过实例着重讲解了需求分析、概念结构设计、逻辑结构设计、物理结构设计及数据库的实施和维护;第6章是数据库保护技术,主要讨论数据库的安全性保护、完整性保护、并发控制和恢复;第7章是SQL Server 2012的应用,主要介绍了数据库管理软件的基本知识,通过实例介绍了T-SQL语言、数据查询、数据完整性、规则和索引、视图和用户定义函数、存储过程、触发器和游标,最后讲述了数据库连接技术;第8章是数据库应用系统开发,主要介绍了网络环境下数据库应用的两种主要形式,即客户/服务器(C/S)模式和浏览器/服务器(B/S)模式以及开发环境与开发工具。此外,还以教学管理系统为例,将其实现与数据库技术的教学实施结合在一起;第9章是数据库技术新进展,主要介绍了分布式数据库、面向对象数据库、数据仓库及数据挖掘技术。
本书由姜代红、蒋秀莲主持编写并统稿。第1章和第6章由姜代红编写,第2章由蒋秀莲编写,第3章和第7章由刘风华编写,第4章由王建颖编写,第5章由鞠训光、乔淑云编写,第8章由孙宁编写,第9章由李子龙编写。
很多老师对这次教材的编写给予了很大帮助,尤其是第1版的编者及承担本课程教学工作的程红林、胡局新等老师,他们对本教材的再版提出了很多建设性意见和建议,在此一并表示感谢。
在本书的修订过程中,我们参阅和借鉴了相关参考文献及资料,吸收了许多同仁和专家的宝贵经验,在此深表谢意!
衷心感谢清华大学出版社的编辑们,正是他们的辛勤工作,才使得本书修订得以顺利出版。
由于编写时间仓促及水平有限,书中难免存在不妥之处,我们诚恳地希望读者和同行批评指正。
编 者
2016年10月
第1章 数据库系统概述 1
1.1 数据库技术的产生与发展 1
1.1.1 数据和数据管理技术 1
1.1.2 数据管理技术的发展 2
1.1.3 数据库系统的3个发展阶段 6
1.2 数据库系统的基本概念 7
1.2.1 数据库 7
1.2.2 数据库管理系统 7
1.2.3 数据库系统 7
1.3 数据库系统的特点 8
1.4 数据模型 10
1.4.1 数据模型的类型 10
1.4.2 数据模型的基本组成 11
1.4.3 概念数据模型 11
1.4.4 逻辑数据模型 14
1.5 数据库系统的体系结构 19
1.5.1 三级模式结构 19
1.5.2 两级映像与数据独立性 21
1.6 数据库管理系统 21
1.6.1 DBMS的主要功能 22
1.6.2 DBMS的组成 23
1.6.3 DBMS的工作模式和用户存取数据的过程 23
1.7 常用数据库管理系统简介 24
1.8 本章小结 28
习题1 29
第2章 关系数据库 32
2.1 关系数据模型 32
2.1.1 基本概念 32
2.1.2 关系模型的形式化定义 34
2.1.3 关系的性质 36
2.1.4 关系的键 37
2.2 关系的完整性约束 38
2.3 关系代数 40
2.3.1 传统的集合运算 41
2.3.2 专门的关系运算 43
2.3.3 关系代数运算的应用举例 47
2.4 关系演算* 48
2.4.1 元组关系演算 48
2.4.2 域关系演算 53
2.5 本章小结 59
习题2 59
第3章 关系数据库标准语言SQL 64
3.1 SQL语言简介 64
3.1.1 SQL语言发展简史 64
3.1.2 SQL语言的主要特点 64
3.1.3 SQL语言的主要功能 65
3.1.4 SQL数据库的三级模式结构 66
3.2 SQL的数据定义 67
3.2.1 数据类型 67
3.2.2 定义数据库 70
3.2.3 定义基本表 74
3.2.4 定义索引 79
3.3 SQL的数据查询 81
3.3.1 SQL查询语句的格式 81
3.3.2 单表查询 82
3.3.3 连接查询 91
3.3.4 嵌套查询 95
3.3.5 集合查询 102
3.4 SQL的数据操作 104
3.4.1 插入数据 104
3.4.2 修改数据 106
3.4.3 删除数据 107
3.5 视图 108
3.5.1 视图的定义 108
3.5.2 修改视图 111
3.5.3 删除视图 111
3.5.4 视图查询 112
3.5.5 视图更新 112
3.5.6 视图的作用 114
3.6 数据控制 115
3.6.1 授权 116
3.6.2 回收授权 117
3.7 本章小结 119
习题3 119
第4章 关系规范化理论 124
4.1 规范问题的提出 124
4.1.1 规范化理论的主要内容 124
4.1.2 不合理的关系模式存在的数据冗余和异常现象 124
4.2 函数依赖 126
4.2.1 函数依赖的定义 126
4.2.2 完全函数依赖和部分函数依赖 126
4.2.3 传递函数依赖 127
4.2.4 超键、候选键、主键 127
4.3 范式和规范化方法 128
4.3.1 第一范式(1NF) 128
4.3.2 第二范式(2NF) 129
4.3.3 第三范式(3NF) 130
4.3.4 BCNF 130
4.3.5 多值依赖与第四范式 132
4.3.6 关系模式的规范化 134
4.4 数据依赖的公理系统 135
4.4.1 函数依赖的逻辑蕴含与函数依赖集的闭包 135
4.4.2 函数依赖的推理规则-Armstrong 公理系统 135
4.4.3 属性集的闭包及其算法 137
4.4.4 候选键的计算 138
4.4.5 函数依赖推理规则的完备性 139
4.4.6 函数依赖集的等价、覆盖和最小函数依赖集 140
4.5 关系模式的分解 142
4.5.1 模式分解的定义 142
4.5.2 分解的无损连接性 142
4.5.3 分解的保持函数依赖性 143
4.5.4 关系模式分解的算法 144
4.6 本章小结 145
习题4 145
第5章 数据库设计 149
5.1 数据库设计概述 149
5.1.1 数据库设计的定义、内容和特点 149
5.1.2 数据库设计方法概述 150
5.1.3 数据库设计的基本步骤 151
5.2 需求分析 153
5.2.1 需求分析的任务 153
5.2.2 需求分析的方法 155
5.2.3 需求分析的常用工具 155
5.2.4 需求分析实例 157
5.3 概念结构设计 160
5.3.1 概念结构设计的定义 160
5.3.2 概念结构设计的方法和步骤 161
5.3.3 局部视图设计 163
5.3.4 集成全局视图 165
5.4 逻辑结构设计 167
5.4.1 逻辑结构设计的任务和步骤 167
5.4.2 E-R图向关系模型的转换 168
5.4.3 逻辑结构的优化 169
5.4.4 设计用户子模式 171
5.5 物理结构设计 172
5.5.1 确定数据库的物理结构 172
5.5.2 评价物理结构 173
5.6 数据库的实施和维护 173
5.6.1 数据的载入和应用程序的调试 174
5.6.2 数据库的试运行 174
5.6.3 数据库的运行和维护 175
5.7 本章小结 175
习题5 176
第6章 数据库保护技术 179
6.1 数据库的安全性 179
6.1.1 计算机系统的安全性 179
6.1.2 数据库的安全性 179
6.1.3 安全性控制的一般方法 180
6.1.4 数据库的安全标准 183
6.1.5 SQL Server 2012的安全性控制 185
6.2 数据库的完整性 193
6.2.1 完整性约束条件的类型 193
6.2.2 完整性控制机制的功能 195
6.2.3 完整性规则的组成 195
6.2.4 SQL Server 2012的数据完整性控制 196
6.3 并发控制 197
6.3.1 事务的基本概念 197
6.3.2 并发操作引发的问题 199
6.3.3 封锁及封锁协议 201
6.3.4 封锁出现的问题和解决方法 206
6.3.5 SQL Server 2012的并发控制机制 208
6.4 数据库的恢复 209
6.4.1 数据库故障的类型 209
6.4.2 数据库恢复技术 210
6.4.3 数据库恢复策略 212
6.5 本章小结 213
习题6 214
第7章 SQL Server 2012应用 217
7.1 SQL Server 2012简介 217
7.1.1 SQL Server 2012的新功能与优势 217
7.1.2 SQL Server 2012的组成 218
7.1.3 SQL Server 2012的版本 222
7.2 使用SQL Server Management Studio管理数据库 222
7.2.1 SQL Server数据库的文件组成 223
7.2.2 数据库的创建 225
7.2.3 数据库的修改 226
7.2.4 数据库的删除 227
7.2.5 数据库表的创建与管理 227
7.2.6 修改表 229
7.2.7 查看表 229
7.2.8 删除表 231
7.2.9 在数据库表中添加、修改和删除数据 231
7.2.10 索引 231
7.2.11 数据查询 232
7.3 T-SQL编程基础 232
7.3.1 T-SQL程序结构 233
7.3.2 变量 235
7.3.3 流程控制语句 237
7.3.4 SQL Server程序设计举例 241
7.4 游标 242
7.4.1 游标类型 243
7.4.2 游标的管理 244
7.5 存储过程 249
7.5.1 存储过程的基本概念 249
7.5.2 创建存储过程 250
7.5.3 修改和删除存储过程 254
7.5.4 删除存储过程 254
7.6 触发器 255
7.6.1 触发器的基本概念 255
7.6.2 DML触发器类型 256
7.6.3 DML触发器的工作原理 256
7.6.4 创建触发器 257
7.6.5 管理触发器 259
7.7 数据库连接技术 261
7.7.1 ODBC技术 261
7.7.2 JDBC技术 263
7.7.3 SQL与宿主语言 268
7.8 本章小结 269
习题7 269
第8章 数据库应用系统开发 273
8.1 数据库访问技术 273
8.1.1 数据库系统的体系结构 273
8.1.2 JDBC技术 275
8.2 MyEclipse开发环境介绍 275
8.2.1 MyEclipse的安装 275
8.2.2 MyEclipse IDE的组成 275
8.2.3 使用MyEclipse开发Web程序的一般步骤 277
8.3 教学管理系统的设计 278
8.3.1 开发背景 278
8.3.2 系统分析 278
8.3.3 系统设计 278
8.4 教学管理系统的实现 282
8.4.1 创建教学管理系统项目 282
8.4.2 数据库连接模块的实现 282
8.4.3 用户登录模块的实现 286
8.4.4 学生信息管理模块的实现 287
8.4.5 教师信息管理模块的实现 289
8.4.6 课程信息管理模块的实现 290
8.4.7 成绩信息管理模块的实现 291
8.5 本章小结 292
习题8 292
第9章 数据库技术新进展 294
9.1 分布式数据库 294
9.1.1 分布式数据库概述 294
9.1.2 分布式数据库系统的体系结构 295
9.1.3 分布式数据库系统的发展前景 296
9.2 面向对象数据库 296
9.3 XML数据库 297
9.4 数据仓库 299
9.4.1 数据仓库概述 299
9.4.2 数据仓库系统的体系结构 299
9.4.3 数据仓库的数据库模式 300
9.4.4 数据仓库工具 302
9.5 数据挖掘技术 303
9.5.1 数据挖掘的概述 303
9.5.2 数据挖掘的实施步骤 303
9.5.3 数据挖掘常用的基本技术 304
9.6 数据库技术的研究及发展 306
9.7 本章小结 307
习题9 307
参考文献 309
参考答案 311
第1章 数据库系统概述 311
第2章 关系数据库 311
第3章 关系数据库标准语言SQL 312
第4章 关系规范化理论 312
第5章 数据库设计 313
第6章 数据库保护技术 313
第7章 SQL Server 2012应用 314
第8章 数据库应用系统开发 314
第9章 数据库技术新进展 314