第1章 数据库系统概述 1
1.1数据管理技术的发展 1
1.1.1人工管理阶段 1
1.1.2文件系统阶段 2
1.1.3数据库系统阶段 4
1.2数据和数据库 8
1.3数据库管理系统 9
1.4数据库系统 9
1.5数据库系统结构 12
1.5.1数据库系统的三级模式结构 12
1.5.2数据库的二级映像与数据独立性 14
1.5.3数据库系统的外部体系结构 15
1.6小结 18
1.7思考练习 18
第2章 数据模型 20
2.1模型与数据模型 20
2.2概念数据模型 21
2.3逻辑数据模型 24
2.3.1逻辑数据模型概述 24
2.3.2层次模型 25
2.3.3网状模型 27
2.3.4关系模型 29
2.3.5面向对象数据模型 31
2.4半结构化数据模型 33
2.5小结 34
2.6思考练习 34
第3章 关系数据库 36
3.1关系模型的基本概念 36
3.1.1关系数据结构 36
3.1.2关系模式 39
3.2关系的完整性 40
3.3关系操作 42
3.3.1基本的关系操作 42
3.3.2关系操作语言的种类 42
3.4关系代数 43
3.4.1传统的集合运算 44
3.4.2专门的关系运算 45
3.5关系演算 50
3.5.1元组关系演算 51
3.5.2域关系演算 52
3.6小结 54
3.7思考练习 55
第4章 关系数据库标准语言SQL 57
4.1 SQL概述 57
4.1.1 SQL的产生和发展 57
4.1.2 SQL的功能 58
4.1.3 SQL的特点 59
4.2数据定义 60
4.2.1 SQL的数据类型 61
4.2.2模式的定义和删除 62
4.2.3基本表的定义、修改和删除 63
4.2.4索引的建立和删除 66
4.3数据查询 68
4.3.1单表查询 69
4.3.2连接查询 75
4.3.3嵌套查询 76
4.3.4集合查询 80
4.4数据更新 81
4.4.1插入数据 81
4.4.2修改数据 82
4.4.3删除数据 83
4.5视图 84
4.5.1视图的定义和删除 84
4.5.2基于视图的查询 86
4.5.3更新视图 87
4.5.4视图的作用 88
4.6嵌入式SQL 89
4.6.1嵌入式SQL概述 89
4.6.2嵌入式SQL的一般形式 90
4.6.3嵌入式SQL语句与主语言之间的通信 90
4.6.4不使用游标的SQL语句 93
4.6.5使用游标的SQL语句 95
4.6.6动态SQL 97
4.7小结 99
4.8思考练习 100
第5章 数据库完整性与安全性 102
5.1完整性概述 102
5.1.1完整性概念 102
5.1.2完整性约束条件 103
5.1.3完整性控制机制 104
5.2实体完整性 104
5.2.1实体完整性定义 105
5.2.2实体完整性检查和违约处理 105
5.3参照完整性 106
5.3.1参照完整性定义 107
5.3.2参照完整性检查和违约处理 107
5.4用户自定义完整性 108
5.4.1属性上的约束条件 108
5.4.2元组上的约束条件 109
5.4.3域约束 110
5.4.4断言约束 111
5.5完整性约束的修改 112
5.5.1完整性约束命名 112
5.5.2修改完整性约束 113
5.6触发器 113
5.6.1定义触发器 114
5.6.2激活触发器 116
5.6.3删除触发器 116
5.7安全性概述 117
5.7.1安全性概念 117
5.7.2数据库安全性的保护范围 117
5.7.3数据库安全保护的任务和措施 119
5.8 DBMS中的安全性保护 119
5.8.1用户标识和鉴别 120
5.8.2存取控制 121
5.8.3审计跟踪 122
5.9 SQL中的安全性机制 123
5.9.1授权机制 123
5.9.2视图机制 126
5.9.3角色机制 126
5.10其他安全机制 128
5.10.1数据加密 128
5.10.2统计数据库的安全性 129
5.11小结 130
5.12思考练习 130
第6章 关系数据理论 132
6.1问题的提出 132
6.1.1数据冗余导致的问题 132
6.1.2问题分析 133
6.2函数依赖 134
6.2.1函数依赖定义 134
6.2.2码 136
6.2.3逻辑蕴含 137
6.2.4闭包 138
6.2.5极小函数依赖集 140
6.3规范化 141
6.3.1第一范式(1NF) 141
6.3.2第二范式(2NF) 142
6.3.3第三范式(3NF) 144
6.3.4 BCNF 145
6.3.5多值依赖与第四范式(4NF) 147
6.3.6连接依赖与第五范式(5NF) 150
6.3.7规范化小结 151
6.4模式分解 152
6.4.1模式分解的相关定义 152
6.4.2分解的无损连接性和保持函数依赖性 154
6.4.3模式分解算法 156
6.5小结 158
6.6思考练习 159
第7章 实体-联系(E-R)模型 161
7.1 E-R模型的基本概念 161
7.1.1实体 162
7.1.2联系 163
7.1.3属性 165
7.1.4约束 168
7.2 E-R模型存在的问题 169
7.2.1扇形陷阱 169
7.2.2深坑陷阱 170
7.3 E-R图符号 172
7.4 E-R模型例子 172
7.5小结 174
7.6思考练习 175
第8章 数据库恢复技术 176
8.1事务的基本概念 176
8.2数据库恢复概述 178
8.3故障的分类 178
8.4恢复的实现技术 180
8.4.1数据转储 180
8.4.2日志文件(Logging) 181
8.5恢复策略 183
8.5.1事务故障的恢复 183
8.5.2系统故障的恢复 184
8.5.3介质故障的恢复 184
8.6具有检查点的恢复技术 185
8.7数据库镜像 187
8.8小结 188
8.9思考练习 188
第9章 并发控制 189
9.1并发控制概述 189
9.2封锁 191
9.2.1锁 192
9.2.2封锁协议 192
9.3活锁和死锁 193
9.3.1活锁 194
9.3.2死锁 194
9.4并发调度的可串行化 196
9.4.1可串行化调度 196
9.4.2冲突可串行化调度 197
9.5两段锁协议 198
9.6封锁的粒度 198
9.6.1锁的粒度 198
9.6.2多粒度封锁 199
9.6.3意向锁 200
9.7小结 201
9.8思考练习 201
第10章 查询处理和优化 202
10.1查询处理 202
10.1.1查询处理步骤 202
10.1.2查询执行代价度量 203
10.2查询优化 204
10.2.1查询优化的必要性 205
10.2.2查询优化的可行性 206
10.3代数优化 207
10.3.1关系代数表达式等价变换规则 207
10.3.2语法树 210
10.3.3关系代数表达式优化算法 210
10.4物理优化 214
10.4.1基于启发式规则的存取路径选择优化 214
10.4.2基于代价估算的优化 218
10.5实际应用中的查询优化 220
10.5.1基于索引的优化 220
10.5.2查询语句的优化 221
10.6小结 224
10.7思考练习 224
第11章 数据库管理系统 225
11.1 DBMS的基本功能 225
11.2 DBMS的系统结构 226
11.2.1 DBMS的层次结构 226
11.2.2 DBMS的运行过程 228
11.3主流商用DBMS介绍 229
11.3.1 Oracle 229
11.3.2 Microsoft SQL Server 233
11.3.3 DB2 236
11.3.4 MySQL 238
11.3.5 Sybase 241
11.3.6 Visual FoxPro 244
11.3.7 Access 245
11.4小结 245
11.5思考练习 246
第12章 数据库技术的发展 247
12.1数据库技术的发展历程 247
12.1.1第一代数据库系统 247
12.1.2第二代数据库系统 248
12.1.3第三代数据库系统 249
12.2数据库技术的发展趋势 250
12.2.1数据库发展特点 250
12.2.2数据库技术发展趋势 250
12.3新一代数据库技术 252
12.3.1面向对象数据库 252
12.3.2时态数据库 253
12.3.3主动数据库 255
12.3.4主存数据库 256
12.3.5并行数据库 258
12.3.6分布式数据库 259
12.3.7空间数据库 261
12.3.8知识数据库 261
12.3.9多媒体数据库 262
12.3.10 XML数据库 262
12.4小结 263
12.5思考练习 263
第13章 数据仓库与数据挖掘 264
13.1数据仓库概述 264
13.1.1数据仓库的定义 264
13.1.2数据仓库的基本结构 266
13.1.3数据仓库的主要应用 267
13.2数据挖掘概述 268
13.2.1数据挖掘的定义 268
13.2.2数据挖掘技术及应用 268
13.2.3数据挖掘与数据仓库的联系与区别 270
13.3常用的数据挖掘工具 271
13.3.1数据挖掘工具的种类 271
13.3.2常用数据挖掘工具 271
13.4小结 273
13.5思考练习 273
第14章 数据库设计 274
14.1数据库设计概述 274
14.1.1数据库设计的特点 275
14.1.2数据库设计的方法 275
14.1.3数据库设计的步骤 276
14.1.4数据库设计过程中的各级模式 278
14.2需求分析 278
14.2.1需求分析的任务 278
14.2.2编写需求分析说明书 280
14.2.3需求分析的方法 280
14.3概念结构设计 284
14.3.1概念结构设计概述 284
14.3.2概念结构设计的方法与步骤 285
14.3.3局部概念模型设计 286
14.3.4全局概念模型设计视图的集成 287
14.4逻辑结构设计 288
14.4.1 E-R图向关系模型的转换 288
14.4.2数据模型的优化 291
14.4.3外模式设计 291
14.5物理结构设计 292
14.5.1物理结构设计的目标和内容 292
14.5.2确定数据库的存取方法 293
14.5.3确定数据库的存储结构 294
14.5.4物理结构评价 295
14.6数据库的实施 295
14.6.1数据的载入 295
14.6.2数据库应用程序的调试和试运行 296
14.7数据库运行维护 297
14.8小结 298
14.9思考练习 298
第15章 数据库设计工具PowerDesigner 300
15.1 PowerDesigner简介 300
15.1.1 PowerDesigner建模工具简介 300
15.1.2 PowerDesigner的主要功能和模型 301
15.2 PowerDesigner安装 303
15.3概念数据模型设计 306
15.4物理数据模型设计 310
15.4.1使用CDM生成PDM 310
15.4.2直接创建PDM 311
15.4.3使用物理数据模型创建数据库脚本 313
15.5小结 316
15.6思考练习 316
参考文献 317