Ⅰ预备篇 2
第1章 数据库系统引论 2
1.1 数据管理的发展 2
1.2 数据库系统 5
1.3 数据、数据模型和数据模式 7
1.3.1 数据 7
1.3.2 数据模型 7
1.3.3 数据模式 8
1.4 数据库应用 10
习题 11
第2章 数据模型 12
2.1 层次数据模型 12
2.1.1 基本概念和结构 12
2.1.2 约束 16
2.1.3 操作 16
2.2 网状数据模型 17
2.2.1 基本概念和结构 17
2.2.2 约束 20
2.2.3 操作 21
2.3.1 基本概念及定义 22
2.3 关系数据模型 22
2.3.2 约束 24
2.3.3 操作 26
2.3.4 关系演算 30
2.4 对传统数据模型的评价 31
2.5 E-R数据模型 33
2.5.1 基本概念 33
2.5.2 E-R图 36
2.5.3 扩充E-R数据模型 37
2.6.1 对象 40
2.6 面向对象数据模型 40
2.6.2 类和实例 41
2.6.3 类层次结构和继承 42
2.6.4 对象的标识 44
2.7*基于逻辑的数据模型 45
2.7.1 一阶谓词逻辑作为数据模型 45
2.7.2 有关基于逻辑的数据模型的语法问题 46
2.7.3 有关基于逻辑的数据模型的语义问题 48
习题 54
第3章 数据库语言 55
3.1 数据库的用户接口 55
3.2 SQL语言概况 56
3.3.1 术语和数据类型 57
3.3.2 基表模式的定义 57
3.3 SQL数据定义语言 57
3.3.3 基表模式的修改 59
3.3.4 索引的建立和撤消 60
3.4 SQL查询语言 61
3.4.1 基本SQL查询语句 61
3.4.2 查询条件比较复杂的SQL查询语句 63
3.4.3 GROUP BY和ORDER BY子句的应用 67
3.5.1 INSERT语句 68
3.4.4 包含UNION的查询 68
3.5 SQL数据操纵语言 68
3.5.2 DELETE语句 69
3.5.3 UPDATE语句 70
3.6 SQL中的视图 70
3.7 嵌入式SQL 72
3.7.1 嵌入式SQL介绍 72
3.7.2 嵌入式SQL的说明部分 73
3.7.3 嵌入式SQL的可执行语句 74
3.8.1 直接执行的动态SQL 76
3.8 动态SQL 76
3.7.4 嵌入式SQL的处理过程 76
3.8.2 带动态参数的动态SQL 77
3.8.3 查询类动态SQL 77
3.9 SQL的存储过程 78
3.10 QBE数据库语言 80
3.10.1 QBE的查询操作 80
3.10.2 QBE的更新操作 82
3.10.3 QBE的其他功能 83
习题 83
4.1 数据库管理系统结构简介 86
第4章 数据库管理系统引论 86
Ⅱ系统篇 86
4.2 事务 87
4.3 DBMS的进程结构 88
4.4 DBMS的系统结构 90
4.5 数据目录 93
习题 95
第5章 数据库的存储结构 96
5.1 数据库存储介质的特点 96
5.2 记录的存储结构 97
5.2.1 记录的物理表示 97
5.2.2 记录在物理块上的分配 98
5.2.3 物理块在磁盘上的分配 99
5.2.4 数据压缩技术 100
5.3 文件结构和存取路径 101
5.3.1 访问文件的方式 101
5.3.2 数据库对文件的要求 102
5.3.3 文件的基本类型 102
5.4 动态索引 107
5.5* 动态散列 111
5.6* 多键查询 113
习题 114
第6章 查询处理和优化 116
6.1 引言 116
6.2 代数优化 117
6.3 依赖于存取路径的规则优化 121
6.3.1 选择操作的实现和优化 121
6.3.2 连接操作的实现和优化 123
6.3.3 投影操作的实现 126
6.3.4 集合操作的实现 126
6.4* 代价估算优化 128
6.4.1 查询执行代价的组成和代价模型 128
6.3.5 组合操作 128
6.4.2 选择操作的代价估算 129
6.4.3 连接操作的代价估算 132
6.5 结束语 134
习题 134
第7章 事务管理 136
7.1 恢复引论 136
7.2 运行记录的结构 138
7.3 更新事务的执行与恢复 140
7.4* 易地更新恢复技术 142
7.5 消息的处理 143
7.6 失效的类型及恢复的对策 144
7.7 并发控制引论 145
7.7.1 数据库系统中的并发 145
7.7.2 并发的目的 146
7.7.3 并发所引起的问题 146
7.7.4 并发控制的正确性准则 147
7.8 加锁协议 150
7.8.1 X锁 150
7.8.2 两段封锁协议 151
7.8.3 (S,X)锁 152
7.9.1死锁的检测和处理 153
7.9 死锁的检测、处理和防止 153
7.8.4 (S,U,X)锁 153
7.9.2 死锁的防止 155
7.10 多粒度封锁 156
7.11* 基于时间标记的并发控制技术 158
7.11.1 基本的时间标记协议 158
7.11.2 多版本并发控制技术 160
7.12* 乐观并发控制技术 161
习题 162
8.1 数据库的安全 164
8.1.1 视图定义和查询修改 164
第8章 数据库的安全和完整性约束 164
8.1.2 访问控制 165
8.1.3 数据加密 168
8.1.4 跟踪审查 168
8.2* 统计数据库的安全 169
8.3 完整性约束 173
8.3.1 完整性约束的类型 173
8.3.2 完整性约束的说明 173
8.3.3 完整性约束的实施 175
习题 175
9.1 分布式数据库系统 176
第9章 分布式数据库管理系统 176
9.2 数据分布策略 177
9.2.1 数据分布的目的 177
9.2.2 数据分布的方式 177
9.2.3 关系的分割 178
9.2.4 数据分布带来的问题 180
9.3 分布式数据库系统结构 180
9.4* 数据目录的分布及管理 181
9.4.1 数据目录分布的策略 182
9.4.2 分布式数据库系统中的命名 183
9.4.3 分布式DBMS数据目录管理举例 184
9.5*查询分解和优化 185
9.5.1 查询树的变换 186
9.5.2 复本的选择 187
9.5.3 查询树的分解 187
9.5.4 全局查询优化的一般问题 188
9.5.5 半连接在分布连接中的应用 189
9.5.6 用直接连接进行分布连接 191
9.5.7 多复本的更新 192
9.6* 分布式数据库系统中的恢复技术 193
9.6.1 两步提交协议 193
9.6.2 三步提交协议 194
9.7.1 分布式数据库系统中的两段封锁 195
9.7* 分布式数据库系统中的并发控制 195
9.7.2 全局死锁的检测 197
9.8* 逻辑上分布的DDBS的概念 199
习题 200
第10章 对象和对象-关系DBMS 202
10.1 引言 202
10.1.1 关系数据库的弱点 202
10.1.2 对象和对象-关系数据库的兴起 206
10.2.1 概述 207
10.2 数据模型及数据库语言 207
10.2.2 ODMG-93简介 208
10.2.3 SQL3简介 219
10.3* 查询处理及优化 222
10.3.1 语法分析 222
10.3.2 查询优化策略 222
10.4* 存储结构 226
10.4.1 物理簇集 226
10.4.2 索引 228
10.4.3 内外存存储结构的转换 229
10.5* 并发控制 231
10.6* 方法的实现、管理和调用 233
10.7* 模式演化 234
10.7.1 对象数据库中的模式演化 234
10.7.2 模式修改 235
10.7.3 数据修改 238
10.8* 版本管理 239
10.9 结束语 240
习题 241
第11章* 主动数据库系统 242
11.1 主动数据库系统引论 242
11.2 规则的表示 243
11.3 规则的执行 245
11.4 规则的实现 247
11.5 规则的应用 249
习题 255
第12章* 时态数据库 256
12.1 引言 256
12.2 概念和术语 257
12.3 TSQL2语言 260
12.3.1 TSQL2的时态数据模型 260
12.3.2 TSQL2语言的特点 262
12.4 时态DBMS的实现 269
习题 273
第13章* 空间数据库 274
13.1 引言 274
13.2 空间数据模型 275
13.2.1 空间数据类型 275
13.2.2 空间数据的操作 275
13.3 空间索引 279
13.3.1 空间索引的基本概念及发展 279
13.3.2 kd-树 282
13.3.3 G-树 283
13.3.4 R-树及其变种 286
13.4 空间数据库系统结构 290
习题 292
第14章* 多媒体数据库 293
14.1 引言 293
14.1.1 多媒体数据简介 293
14.1.2 多媒体数据的特点及多媒体数据库 295
14.2 存储系统 296
14.3 元数据及其生成 298
14.4 查询及索引 301
14.5.1 演示管理 305
14.5 等时、同步和演示管理 305
14.5.2 数据流管理 306
14.5.3 同步 308
习题 309
第15章* DBMS对决策应用的支持 310
15.1 决策支持系统及其对数据库系统的要求 310
15.2 数据仓库框架 311
15.3 数据仓库的基本数据模式 312
15.4 数据仓库的基本操作 314
15.5 OLAP的实现技术 319
15.5.1 关系OLAP和多维OLAP 320
15.5.2 OLAP的查询优化 322
15.6 位图索引 323
15.7 OLAP数据的维护 327
习题 330
第16章* 并行数据库系统 331
16.1 引言 331
16.2 并行化粒度及操作的并行性 333
16.2.1 并行化粒度 333
16.2.2 操作的并行性 333
16.3 并行数据库系统结构 334
16.4 数据划分 336
16.5 并行算法 338
16.5.1 并行排序 338
16.5.2 并行连接 339
16.5.3 其他关系运算的并行执行 341
16.6 查询优化 342
16.7 结束语 345
习题 345
17.2.1 SQL/CLI的由来和发展 346
17.2 SQL/CLI 346
17.1 引言 346
第17章* 异构多数据源的访问 346
17.2.2 基本原理和方法 347
17.2.3 SQL/CLI内容简介 349
17.3 COM/DCOM 353
17.3.1 COM/DCOM的由来和发展 353
17.3.2 COM简介 354
17.3.3 DCOM简介 358
17.4 CORBA及其在异构数据集成中的应用 359
17.4.1 CORBA的设计思想和发展 359
17.4.2 CORBA的基本概念 360
17.4.3 CORBA的系统结构 362
17.4.4 CORBA在异构数据集成中的应用 364
17.5 Java Beans 364
17.6 万维网与数据库 367
17.6.1 引言 367
17.6.2 万维网与数据库系统的互操作 369
17.6.3 用数据库技术增进万维网的功能 370
习题 372
Ⅲ 应用篇 374
第18章 数据依赖和关系模式的规范化 374
18.1 关系模式设计中的一些数据语义问题 374
18.2 函数依赖 376
18.3 多值依赖 380
18.4* 连接依赖 383
18.5 关系模式的分解及其问题 384
18.6 关系模式的规范化 391
习题 398
第19章 数据库设计 400
19.1 数据库设计引论 400
19.2 数据库的概念设计 402
19.2.1 数据库概念设计的基本方法 402
19.2.2 视图设计 403
19.2.3 视图集成 404
19.3 数据库的逻辑设计 406
19.3.1 E-R图到关系模式的转换 406
19.3.2 逻辑模式的规范化、调整和实现 412
19.3.3 外模式的设计 413
19.4 数据库的物理设计 414
19.4.1 簇集设计 415
19.4.2 索引的选择 417
19.4.3 分区设计 419
19.5.1 数据的分割设计 420
19.5* 分布式数据库的设计 420
19.5.2 数据的分布设计 421
19.6* 计算机辅助数据库设计工具 423
习题 423
第20章 数据库管理 425
20.1 数据库的建立 425
20.2 数据库的调整 426
20.3 数据库的重组 427
20.4 数据库的重构 429
20.6 数据完整性控制 430
20.7 DBA的作用和职责 430
20.5 数据库的安全控制 430
习题 431
第21章* 数据库的一些新应用 432
21.1 数据挖掘 432
21.1.1 引言 432
21.1.2 数据挖掘过程 434
21.2.3 数据挖掘的基本方法 434
21.2.4 关联规则 435
21.2.5 序列挖掘 437
21.2.6 分类 440
21.2.7 聚类分析 443
21.2 工作流 445
21.2.1 引言 445
21.2.2 工作流的概念、功能和结构 446
21.2.3 支持事务的工作流 447
21.3 电子商务 450
21.3.1 引言 450
21.3.2 电子商务系统的特点 451
21.3.3 电子商务的安全 451
2.4 结束语 453
习题 453
参考文献 454