数据库原理（第三版）（张红娟）
《数据库原理（第三版）（张红娟）》是2014年西安电子科技大学出版社出版的图书，作者是张红娟、傅婷婷。
内容简介
本书系统地介绍了关系数据库的基本概念、基本原理和设计技术等，内容包括：数据库系统概论、SQL语言、关系数据模型及其运算基础、数据库管理、数据库设计等。本书根据数据库发展的趋势，在介绍数据库新技术时，重点介绍了面向对象和对象-关系数据库。
全书共11章，内容丰富，结构合理，通俗易懂。各章都安排有大量的例题，章末附有习题，书末还附有SQL语言的上机实验指导。
本书可作为大学计算机专业及其他专业的教材，也可作为科技人员学习数据库的自学教材和应用参考书。
目录
第1章 数据库系统概论 1
1.1 数据库系统的应用 1
1.1.1 数据库系统的应用领域 1
1.1.2 数据库应用系统示例 3
1.2 数据管理技术的发展 4
1.2.1 人工管理阶段 5
1.2.2 文件系统阶段 5
1.2.3 数据库系统阶段 6
1.3 数据库系统的构成 8
1.3.1 数据库系统 8
1.3.2 数据库管理系统 9
1.3.3 数据库系统人员的构成 10
1.4 数据库系统的结构 11
1.4.1 数据的三级模式结构 11
1.4.2 数据独立性 13
1.4.3 SQL中的三级模式结构 14
1.4.4 面对用户的数据库系统体系结构 15
1.4.5 用户访问数据库的过程 16
1.5 数据库系统研究概述 17
1.6 小结 18
习题1 19
第2章 建立数据模型 20
2.1 现实世界的数据化过程 20
2.2 概念模型 21
2.2.1 概念模型的基本概念 21
2.2.2 E-R图的基本表示方法 22
2.2.3 联系 23
2.2.4 多元联系 24
2.2.5 联系的属性 25
2.2.6 自身联系 25
2.2.7 弱实体集 26
2.2.8 子类和Is-a层次联系 26
2.3 E-R模型的设计方法 27
2.4 数据模型 32
2.5 关系模型 32
2.5.1 关系模型数据结构及基本概念 33
2.5.2 关系模型的数据操作 35
2.5.3 关系的完整性约束 35
2.6 E-R模型向关系模型的转化 36
*2.7 历史上有影响的数据模型 37
2.7.1 层次模型 38
2.7.2 网状模型 39
2.8 数据模型与数据库系统的发展 40
2.9 小结 41
习题2 42
第3章 SQL语言初步 45
3.1 SQL简介 45
3.2 基本的数据定义 47
3.2.1 创建基本表——CREATE TABLE 47
3.2.2 表结构的修改——ALTER TABLE 50
3.2.3 删除基本表——DROP TABLE 51
3.2.4 创建索引——CREATE INDEX 51
3.2.5 删除索引——DROP INDEX 52
3.3 基本的数据操作 53
3.3.1 表中增加元组——INSERT 53
3.3.2 修改表中数据——UPDATE 53
3.3.3 删除元组——DELETE 54
3.3.4 更新操作与数据库的一致性 54
3.4 数据查询——SELECT 55
3.4.1 无条件单关系查询 55
3.4.2 带条件单关系查询 58
3.4.3 分组查询 60
3.4.4 排序查询 61
3.4.5 多关系连接查询 62
3.4.6 嵌套查询 65
3.4.7 多个SELECT语句的集合操作 69
3.5 含有子查询的数据更新 69
3.5.1 INSERT与子查询的结合 70
3.5.2 UPDATE与子查询的结合 70
3.5.3 DELETE与子查询的结合 71
3.6 视图 71
3.6.1 定义视图——CREATE VIEW 71
3.6.2 删除视图——DROP VIEW 73
3.6.3 视图的查询 73
3.6.4 视图的更新 74
3.6.5 视图的作用 76
3.7 小结 76
习题3 77
第4章 完整性和安全性 81
4.1 完整性约束的SQL定义 81
4.1.1 实体完整性约束和主码 81
4.1.2 参照完整性约束和外部码 82
4.1.3 用户自定义完整性约束 84
4.1.4 约束的更新 86
4.2 SQL中的触发器 86
4.2.1 触发器的组成和类型 87
4.2.2 创建触发器 87
4.2.3 触发器创建实例 88
4.3 数据库安全 90
4.3.1 用户标识和鉴别 90
4.3.2 访问控制 91
4.3.3 强制存取控制方法 95
4.3.4 视图和查询修改 96
4.3.5 跟踪审计 96
4.3.6 数据加密 97
4.4 小结 97
习题4 98
第5章 数据库编程 100
5.1 客户机/服务器体系结构 100
5.2 数据库编程方法 103
5.3 嵌入式SQL的使用 104
5.3.1 嵌入式SQL的一般形式 105
5.3.2 嵌入式SQL与宿主语言之间的信息传递 105
5.3.3 游标 108
5.3.4 通过游标的更新和删除 110
5.3.5 动态SQL介绍 112
5.4 数据库接口技术 113
5.4.1 开放数据库互连——ODBC 113
5.4.2 ODBC实例分析 115
5.4.3 Java数据库连接——JDBC 118
5.5 SQL中的存储过程 119
5.5.1 存储过程的定义 120
5.5.2 存储过程的执行 122
5.6 SQL中的用户定义函数 123
5.6.1 函数的定义 123
5.6.2 函数的调用和执行 126
5.6.3 函数与存储过程 127
5.7 小结 127
习题5 128
第6章 关系数据模型及其运算基础 130
6.1 关系模型的基本概念 130
6.2 关系模式 132
6.3 关系代数 132
6.3.1 基于传统集合运算的关系运算 133
6.3.2 投影(Projection) 134
6.3.3 选择(Selection) 135
6.3.4 连接(Join) 135
6.3.5 更名(Rename) 138
6.3.6 除(Division) 138
6.3.7 综合运算举例 140
*6.4 包 141
*6.5 扩展关系代数 142
6.5.1 消除重复 142
6.5.2 聚集运算和分组运算 142
6.5.3 排序运算 143
6.5.4 广义投影运算 144
*6.6 关系演算 145
6.6.1 元组关系演算 145
6.6.2 域关系演算 146
6.7 查询优化 147
6.7.1 查询处理概述 148
6.7.2 关系代数等价变换规则 149
6.7.3 查询优化的一般策略 150
6.7.4 关系代数表达式的优化算法 151
*6.8 关系系统 153
6.8.1 全关系系统的基本准则 153
6.8.2 关系系统的定义 155
6.8.3 关系系统的分类 155
6.9 小结 156
习题6 157
第7章 关系数据库规范化理论 159
7.1 关系规范化的作用 159
7.2 函数依赖 161
7.2.1 属性间的联系 161
7.2.2 函数依赖 162
7.2.3 码的定义 163
7.3 关系模式的规范化 164
7.3.1 非规范化的关系 164
7.3.2 第一范式(1NF) 165
7.3.3 第二范式(2NF) 165
7.3.4 第三范式(3NF) 166
7.3.5 改进的3NF——BCNF 167
*7.4 多值依赖和第四范式 169
7.4.1 多值依赖(Multivalued Dependency) 169
7.4.2 第四范式(4NF) 171
7.5 关系的规范化程度 172
*7.6 函数依赖公理系统 173
7.6.1 闭包及其计算 174
7.6.2 最小函数依赖集 175
7.6.3 关系模式的分解 177
7.7 小结 180
习题7 180
第8章 数据库设计 184
8.1 数据库设计简介 185
8.1.1 数据库设计的一般策略 185
8.1.2 数据库设计的步骤 185
8.1.3 数据库设计的主流方法 187
8.2 需求分析 188
8.2.1 需求调查 188
8.2.2 需求分析的方法 189
8.3 概念结构设计 192
8.4 逻辑结构设计 193
8.4.1 模式评价 194
8.4.2 逻辑模式的修正 194
8.4.3 设计用户外模式 195
8.5 物理结构设计 196
8.5.1 存储记录结构设计 196
8.5.2 存储记录布局 197
8.5.3 存取方法的设计 197
8.6 数据库的实施和维护 198
8.6.1 数据库的实施 199
8.6.2 数据库的维护 201
*8.7 UML方法规范数据库设计 202
8.7.1 UML用于数据库设计 202
8.7.2 各种UML图 203
*8.8 使用PowerDesigner工具设计 数据库 207
8.8.1 PowerDesigner简介 208
8.8.2 概念数据模型 210
8.8.3 物理数据模型 211
8.9 小结 212
习题8 213
第9章 事务管理 216
9.1 事务概述 216
9.1.1 事务的概念 216
9.1.2 事务的特性 218
9.2 并发控制技术 220
9.2.1 并发可能出现的问题 220
9.2.2 封锁(Locking) 222
9.2.3 三级封锁协议 222
9.2.4 加锁请求的选择策略和活锁 223
9.2.5 死锁 224
9.2.6 并发调度的可串行性 225
9.2.7 两段封锁协议 226
9.2.8 多粒度封锁 227
9.2.9 意向锁 228
9.3 数据库恢复技术 229
9.3.1 故障的种类 229
9.3.2 故障恢复的手段 230
9.3.3 故障恢复的方法 231
9.4 小结 233
习题9 234
第10章 面向对象和对象-关系 数据库 236
10.1 面向对象数据模型 236
10.1.1 对象 236
10.1.2 类和实例 237
10.1.3 类的继承 237
10.2 面向对象数据库建模 238
10.2.1 ODL的类说明 238
10.2.2 ODL中属性的说明 238
10.2.3 ODL中的联系 239
10.2.4 ODL中类的继承 240
10.2.5 ODL中方法的说明 241
10.2.6 E-R模型向面向对象数据模型的转换 242
10.3 对象–关系数据库 242
10.3.1 基本数据类型的扩充 243
10.3.2 支持复杂对象 244
10.3.3 支持继承 245
10.3.4 强大、通用的规则系统 246
10.4 小结 246
习题10 247
第11章 数据库新技术 248
11.1 分布式数据库 248
11.1.1 分布式数据库系统的定义 249
11.1.2 分布式数据库系统的特点 249
11.1.3 分布式数据库系统的模式结构 250
11.2 并行数据库 251
11.2.1 并行数据库系统的体系结构 252
11.2.2 并行处理技术 253
11.3 工程数据库 254
11.3.1 工程数据库的特点 254
11.3.2 工程数据库的系统结构 255
11.3.3 工程数据库的数据模型 256
11.3.4 版本和版本管理 257
11.4 数据仓库 258
11.4.1 数据仓库的定义与特征 258
11.4.2 数据仓库系统 259
11.4.3 数据仓库的数据库模式 260
11.4.4 数据仓库的分析工具 262
11.5 小结 263
习题11 263
附录A 上机实验指导 264
上机实验一 安装和了解SQL Server 2000 264
上机实验二 创建SQL Server数据库和表 269
上机实验三 基本表的建立和修改 273
上机实验四 SELECT语句基本格式的使用 274
上机实验五 SELECT语句高级格式和完整格式的使用 275
上机实验六 SQL的存储操作 275
上机实验七 视图的建立及操作 276
上机实验八 完整性约束的实现 277
*上机实验九 安全性的实现 277
*上机实验十 创建存储过程和用户定义函数 278
*附录B PowerDesigner入门实验 279
参考文献 286