第一章 数据库引言 1
1.1 数据管理技术的发展 1
1.1.1 基于文件系统的管理 1
1.1.2 数据库方法 4
1.2 现实世界的数据建模 7
1.2.1 信息的三个领域 7
1.2.2 实体模型 8
1.2.3 数据模型 12
1.3 数据库的体系结构 18
1.3.1 数据库的分级结构 18
1.3.2 模式及其映射 19
1.3.3 数据独立性 21
1.4 数据库管理系统(DBMS) 21
1.4.1 DBMS的功能 21
1.4.2 DBMS的组成 22
1.4.3 数据语言 24
1.4.4 数据字典 26
1.4.5 DBMS的分类 27
1.5 数据库环境中的角色 27
1.5.1 数据管理员和数据库管理员 27
1.5.2 数据库设计人员 28
1.5.3 应用开发人员 28
1.5.4 最终用户 28
小结 29
习题 29
第二章 关系数据模型 31
2.1 关系及其基本术语 31
2.1.1 关系框架及关系 31
2.1.2 关系关键字 33
2.2 关系数据库模式 33
2.2.1 模式及其物理映射 33
2.2.2 子模式及其映射 38
2.3 关系模型的完整性约束 39
2.4 关系运算 40
2.4.1 关系代数 40
2.4.2 元组关系演算 47
2.4.3 域关系演算 52
2.4.4 关系运算的安全囿 54
2.5 RDBMS产品 57
2.5.1 Microsoft Access 57
2.5.2 Oracle 58
小结 66
习题 67
第三章 关系数据语言 69
3.1 SQL概述 69
3.1.1 SQL简史 69
3.1.2 SQL的功能 69
3.2 SQL的数据定义语句 70
3.2.1 SQL数据库的创建和撤销 70
3.2.2 SQL基本表的创建、修改和撤销 70
3.2.3 SQL视图的创建和撤销 74
3.2.4 索引的创建与删除 75
3.2.5 游标的创建、使用与删除 76
3.2.6 存储过程的创建与删除 78
3.2.7 触发器的创建与删除 79
3.2.8 完整性约束 80
3.3 SQL的数据操作语句 84
3.3.1 查询SELECT 84
3.3.2 插入INSERT 89
3.3.3 修改UPDATE 90
3.3.4 删除DELETE 90
3.3.5 数据导入与导出 91
3.4 嵌入式SQL 91
3.4.1 Pro*C程序结构 92
3.4.2 Pro*C程序的编译执行 95
3.5 静态SQL与动态SQL 96
3.6 数据字典的SQL操作 98
小结 100
习题 100
第四章 数据库分析和设计技术 103
4.1 数据库应用系统的生存周期 103
4.2 数据库规划 104
4.3 系统定义 106
4.4 需求收集和分析 106
4.4.1 集中式方法 107
4.4.2 视图集成方法 108
4.5 数据库设计 108
4.5.1 数据库设计的方法 109
4.5.2 数据建模 109
4.5.3 数据库设计的阶段 110
4.6 DBMS的选择 111
4.7 关系规范化 113
4.7.1 关系模型的评价 113
4.7.2 函数相关性 115
4.7.3 多值相关性(MultiValued Dependency) 122
4.7.4 连接相关性(Join Dependency) 125
4.7.5 关系框架的分解 125
4.7.6 关系的1NF和2NF 129
4.7.7 关系的3NF和BCNF 131
4.7.8 关系的4NF和5NF 134
小结 136
习题 137
第五章 面向对象的数据模型和对象关系数据模型 141
5.1 面向对象数据库技术 141
5.1.1 新的应用需求 141
5.1.2 关系模型的局限性 142
5.1.3 OO技术与数据库技术结合的途径 144
5.2 OO数据模型 145
5.2.1 ODMG对象模型(OM) 145
5.2.2 ODL(Object Definition Language) 151
5.2.3 OQL(Object Query Language) 155
5.3 对象关系数据模型 156
5.3.1 嵌套关系 156
5.3.2 基本数据类型的扩充与复杂对象 157
5.3.3 继承 161
5.3.4 SQL99对复杂数据类型的查询 162
5.3.5 函数 163
5.3.6 规则 164
5.4 面向对象数据库管理系统与对象关系数据库管理系统的比较 165
5.5 Oracle对象关系技术简介 166
小结 167
习题 168
第六章 数据库的物理组织 170
6.1 数据的物理存储 170
6.1.1 物理存储体系 171
6.1.2 存储介质的物理结构 172
6.1.3 物理存储性能及优化 172
6.2 数据的文件组织 174
6.2.1 属性值的表示 174
6.2.2 文件记录的表示 175
6.2.3 文件结构 178
6.3 文件数据的访问方式 179
6.3.1 顺序文件的索引结构 179
6.3.2 无序文件的索引结构 181
6.3.3 索引文件的查找 182
6.3.4 索引文件访问性能分析 183
6.3.5 文件的B树结构 186
6.3.6 B+树的访问和维护 187
6.3.7 B+树的特性及性能分析 190
6.3.8 散列文件及访问方式 191
6.3.9 聚集文件的索引及访问 199
6.4 文件的多关键字访问 200
6.4.1 倒排文件 201
6.4.2 多重表 203
小结 205
习题 206
第七章 查询处理与优化 207
7.1 查询处理概述 207
7.2 查询处理的访问例程 209
7.2.1 选择运算 209
7.2.2 连接运算 210
7.2.3 投影运算的实现 212
7.2.4 集合操作的实现 212
7.2.5 组合操作例程 215
7.3 查询优化 215
7.3.1 规则优化 216
7.3.2 物理优化 218
7.3.3 代价估算优化 219
7.4 其他查询优化技术 223
7.4.1 流水线 223
7.4.2 随机生成执行计划 224
7.4.3 并行查询优化技术 226
7.5 Oracle的查询处理与优化 227
7.5.1 查询处理 227
7.5.2 查询优化 228
7.5.3 多CPU和并行查询PQO(Parallel Query Option)方式 229
小结 230
习题 231
第八章 事务管理 232
8.1 事务管理的基本概念 232
8.1.1 事务的状态 232
8.1.2 事务的特性 233
8.2 并发控制简介 234
8.2.1 并发执行 234
8.2.2 并发不当产生的问题 235
8.2.3 事务的调度 236
8.3 基于锁机制的并发控制技术 238
8.3.1 二值锁 238
8.3.2 共享锁和互斥锁 240
8.3.3 两段锁协议 242
8.3.4 死锁和饿死 243
8.3.5 死锁检测与处理技术 244
8.4 其他的并发控制技术 245
8.4.1 基于时间戳的并发控制技术 245
8.4.2 基于多版本(Multiversion)并发控制技术 246
8.4.3 基于乐观的(Optimistic)并发控制技术 247
8.5 恢复 248
8.5.1 故障分类 248
8.5.2 事务与恢复 249
8.5.3 恢复的基本机制 250
8.5.4 基于延迟修改的恢复技术 251
8.5.5 基于立即修改的恢复技术 252
8.5.6 介质故障的恢复技术 253
8.5.7 其他的恢复技术 254
8.6 再论事务管理 255
8.6.1 长事务 255
8.6.2 实时事务系统 257
8.7 SQL对事务的支持 258
8.8 Oracle的事务管理 259
8.8.1 Oracle的并发机制 259
8.8.2 Oracle的恢复机制 260
小结 261
习题 263
第九章 数据库安全 266
9.1 数据库安全概述 266
9.2 完整性约束检验 267
9.3 安全保护 268
9.3.1 用户标识与鉴别机制 269
9.3.2 访问控制 270
9.3.3 视图 275
9.3.4 数据加密 276
9.3.5 审计 278
9.4 网络数据库的安全 278
9.5 Microsoft Access的安全策略 279
9.6 Oracle的安全策略 280
小结 281
习题 282
第十章 数据库应用开发 284
10.1 数据库应用开发概述 284
10.2 C/S结构的数据库应用 285
10.3 B/S结构的数据库应用 286
10.3.1 B/S结构分类 288
10.3.2 B/S与C/S的比较 289
10.3.3 B/S结构应用系统的优化 290
10.4 网络环境下的数据库访问技术 292
10.4.1 ODBC及其结构 292
10.4.2 ODBC编程 294
10.4.3 JDBC及其结构 295
10.4.4 JDBC API 298
10.4.5 JDBC编程实例 299
10.5 基于Web的数据库应用开发技术 301
10.5.1 基于Web的数据库应用系统概述 301
10.5.2 Web数据库连接技术 302
10.5.3 CGI技术 306
10.5.4 ASP技术 308
10.5.5 JSP技术 311
10.5.6 PHP技术 313
10.6 支持XML的Web数据库应用 313
10.7 数据库应用开发环境 315
小结 319
习题 320
第十一章 数据库新技术 321
11.1 数据库应用领域的新需求 321
11.2 数据库新技术的特点 322
11.3 数据模型的发展 323
11.4 数据库技术与其他相关技术相结合 324
11.4.1 与分布处理技术结合的分布式数据库 325
11.4.2 与并行处理技术结合的并行数据库系统 325
11.4.3 与多媒体技术结合的多媒体数据库系统 326
11.4.4 与面向对象技术结合的对象关系数据库系统 328
11.4.5 与人工智能技术结合的知识库系统 328
11.4.6 主动数据库系统 331
11.4.7 数据仓库、联机分析处理与数据挖掘 332
11.5 面向应用领域的数据库新技术 336
11.5.1 内存数据库 336
11.5.2 工程数据库 340
11.5.3 统计数据库 340
11.5.4 空间数据库 340
11.5.5 信息网格 341
小结 344
附录A 销售公司的关系数据模型 345
附录B Miscrosoft Access的操作示例 346
附录C SQL92 BNF描述 359
附录D 某公司MIS系统之库存管理子系统需求分析 382
附录E ODMG OM和销售公司ODL模式 388
附录F ODBC数据源的创建 406
参考文献 411