目 录
第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 数据库技术的发展趋势 249
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
