第一部分 DB2 UDB入门 2
第1章 产品概述 2
1.1 DB2和电子业务 3
1.2 DB2和Linux 3
1.3 DB2通用数据库 4
1.3.1 DB2企业服务器版 4
1.3.2 DB2工作组服务器版 5
1.3.3 DB2个人版 6
1.3.4 DB2 Everyplace 6
1.4 DB2的连通性 7
1.4.1 DB2通用数据库客户端 8
1.4.2 DB2 Connect 9
1.4.3 DB2 Replication 10
1.4.4 DB2 Relational Connect 10
1.4.5 IBM WebSphere Application Server 12
1.5 DB2应用程序开发 12
1.5.1 DB2通用开发版 12
1.5.2 DB2开发中心 13
1.5.3 DB2关系扩展器 13
1.5.4 DB2数据链接管理器 16
1.5.5 DB2数据仓库中心 17
1.5.6 DB2数据仓库管理器 17
1.5.7 DB2 OLAP Server 18
1.6 DB2管理 19
1.6.1 控制中心 19
1.6.2 复制中心 20
1.6.3 控制中心的其他工具 20
1.6.4 健康中心 21
1.6.5 其他管理工具 22
1.6.6 顾问程序和向导程序 22
1.6.7 命令行处理器 24
1.6.8 Visual Explain 25
1.6.9 DB2 Query Patroller 25
1.6.11 DB2文件夹 27
1.6.10 数据库监控器 27
1.7 小结 28
第2章 UDB入门 30
2.1 产品安装 30
2.1.1 Windows环境下的安装 30
2.1.2 使用命令行处理器 37
2.1.3 Linux和UNIX环境下的安装 39
2.1.4 分布式安装 41
2.2 DB2环境 43
2.2.1 DB2配置文件注册表 43
2.2.2 环境变量 44
2.3 DB2实例 46
2.4.1 本地实例管理 49
2.4 实例管理 49
2.4.2 使用控制中心连接实例 50
2.4.3 DB2管理服务器(DAS) 51
2.5 小结 52
第3章 网络连接 53
3.1 DB2客户端概述 53
3.2 建立分布式通信的途径 54
3.2.1 DB2 Discovery 55
3.2.2 使用DB2 Discovery进行自动配置 55
3.2.3 配置DB2 Discovery 56
3.3.1 使用DB2 Discovery进行自动配置 57
3.3 配置DB2客户端 57
3.3.2 使用存取配置文件进行自动配置 61
3.3.3 使用存取配置文件 62
3.3.4 人工配置 66
3.4 人工编目DB2目录 71
3.4.1 考察DB2目录 71
3.4.2 连接配置的总结 75
3.5 工具绑定 75
3.6 小结 78
第4章 存取控制 79
4.1 系统安全性 79
4.1.1 安全性简介 79
4.1.2 验证 80
4.1.3 权限和特权 89
4.1.4 Windows NT/2000/XP下的安全注意事项 100
4.2 审计 104
4.3 小结 108
第二部分 使用SQL 110
第5章 数据库对象 110
5.1 了解数据库对象 110
5.1.1 数据类型 111
5.1.2 表 111
5.1.3 模式 111
5.1.6 索引 112
5.1.5 视图 112
5.1.4 表空间 112
5.1.7 程序包 113
5.1.8 缓冲池 113
5.1.9 事务 113
5.1.10 锁 114
5.1.11 日志文件 114
5.1.12 创建DB2数据库 114
5.2 管理数据库对象 115
5.2.1 使用SQL数据定义语言 115
5.2.2 数据类型 117
5.2.3 表 131
5.2.4 多维聚簇 141
5.2.5 视图 145
5.2.6 昵称 149
5.2.7 索引 151
5.3 数据库设计与实现 154
5.3.1 DB2CERT数据库表的描述 154
5.3.2 定义用户自定义数据类型 156
5.3.3 定义列 156
5.3.4 键 157
5.3.5 定义主键 157
5.3.6 定义惟一键 157
5.3.7 定义外键 158
5.4 小结 159
第6章 操纵数据库对象 160
6.1 数据检索 160
6.1.1 检索整张表 160
6.1.2 从表中投影列 161
6.1.3 改变列的顺序 161
6.1.4 在表中限制行 162
6.1.5 限制结果表大小 162
6.1.6 用户自定义类型的谓词表达式 162
6.1.7 使用多个条件限制行 163
6.1.8 从多个表中选择列 163
6.1.9 使用关联名 166
6.1.11 限制排序结果 167
6.1.10 对输出排序 167
6.1.12 派生列 168
6.1.13 DB2函数 168
6.1.14 分组值 170
6.1.15 取消重复值 171
6.1.16 搜索串匹配模式 171
6.1.17 在指定范围内搜索数据 171
6.1.18 查询空值 172
6.1.19 否定条件查找 172
6.1.20 查找一组值 173
6.1.21 子查询 173
6.1.22 量化谓词 174
6.1.24 嵌套表表达式 175
6.1.23 CASE表达式 175
6.1.25 标量全选择 176
6.1.26 公共表表达式 177
6.1.27 集合运算符 178
6.2 修改数据 179
6.2.1 插入数据记录 179
6.2.2 更新行 181
6.2.3 删除数据 182
6.3 视图分类 183
6.3.1 可删除视图 184
6.3.2 可更新视图 184
6.3.5 带UNION ALL的视图 185
6.3.3 可插入视图 185
6.3.4 只读视图 185
6.3.6 使用带UNION ALL的表空间 188
6.3.7 不可操作视图 189
6.4 小结 189
第7章 高级SQL 190
7.1 触发器 190
7.1.1 触发器的使用 190
7.1.2 触发器的激活 191
7.1.3 Instead of触发器 192
7.2 递归SQL 195
7.3 外连接 197
7.3.1 左外连接 198
7.3.2 右外连接 198
7.3.3 全外连接 198
7.3.4 外连接的联合 199
7.4 联机分析处理特性 200
7.4.1 星型模式 200
7.4.2 OLAP索引 201
7.4.3 星型连接 201
7.4.4 超级分组 202
7.4.5 移动函数 206
7.5.2 在函数中使用CASE表达式 207
7.5.1 使用CASE表达式对数值分组 207
7.5 高级CASE表达式 207
7.6 结构化类型和类型化表 208
7.6.1 创建结构化类型 209
7.6.2 修改结构化类型 210
7.6.3 创建类型化表 210
7.6.4 删除类型化表 211
7.6.5 在类型化表中插入行 212
7.6.6 在类型化表中查询记录 212
7.6.7 更新和删除类型化表中的行 213
7.6.8 类型化表的物理实现 213
7.6.9 引用列 214
7.6.11 类型化表和类型化视图上的SQL函数 216
7.6.10 视图层次 216
7.6.12 TYPE谓词 217
7.6.13 使用类型化表和视图的注意事项 217
7.6.14 类型化表层次的实例 217
7.7 汇总表 221
7.7.1 创建汇总表 221
7.7.2 CURRENT REFRESH AGE专用寄存器 222
7.7.3 使用汇总表的注意事项 222
7.7.4 汇总表的系统编目信息 223
7.7.5 用户维护的汇总表 223
7.7.6 物化查询表 224
7.8 序列 225
7.9 高级函数 226
7.9.1 MULTIPLY_ALT 226
7.9.2 SNAPSHOT表函数 227
7.9.3 MQSeries函数 229
7.9.4 XML函数 229
7.10 小结 231
第8章 并发性 232
8.1 概述 232
8.2 隔离级 236
8.2.4 可重复读 237
8.2.3 读稳定性 237
8.2.2 游标稳定性 237
8.2.1 未提交读 237
8.2.5 隔离级的选择 238
8.3 锁定 238
8.3.1 锁属性 238
8.3.2 锁的转换 240
8.3.3 锁的升级 240
8.3.4 锁等待 241
8.3.5 锁定表语句 241
8.3.6 ALTER TABLE语句的LOCKSIZE参数 242
8.3.7 在SQL中修改锁定级别 242
8.4 小结 242
9.1.1 处理器 246
9.1 处理器、内存和磁盘资源 246
第三部分 DB2 UDB管理 246
第9章 数据存储管理 246
9.1.2 内存 247
9.1.3 磁盘 247
9.2 DB2存储模型 247
9.2.1 缓冲池 248
9.2.2 表空间 248
9.2.3 容器 249
9.3 表空间设计 250
9.3.2 大表空间 251
9.3.3 系统临时表空间 251
9.3.1 常规表空间 251
9.3.4 区段大小 252
9.3.5 页的大小 252
9.3.6 性能考虑 252
9.3.7 长字段数据 257
9.3.8 大对象数据 257
9.4 实现样例 258
9.4.1 创建数据库 258
9.4.2 创建缓冲池 260
9.4.3 创建表空间 260
9.4.8 使用控制中心创建表空间 261
9.4.7 删除数据库 261
9.4.5 删除表空间 261
9.4.4 创建表 261
9.4.6 删除缓冲池 261
9.5 表空间维护 264
9.5.1 数据库文件 264
9.5.2 列出表空间 264
9.5.3 列出表空间容器 265
9.5.4 表空间状态 265
9.5.5 有关表空间的系统编目信息 266
9.5.6 向DMS表空间增加容器 267
9.6 小结 269
10.1.1 定界ASCII文件 271
第10章 数据维护 271
10.1 移动数据 271
10.1.2 非定界ASCII文件 272
10.1.3 IXF文件 272
10.1.4 工作表格式文件 272
10.2 数据移动工具 273
10.2.1 导出工具 273
10.2.2 导入工具 279
10.2.3 载入工具 287
10.2.4 LOAD QUERY命令 301
10.2.5 SET INTEGRITY语句 303
10.2.6 DB2MOVE工具 306
10.3 数据维护 308
10.3.1 分析数据的物理组织 308
10.3.2 表重组 312
10.3.3 生成统计信息 314
10.3.4 Rebind工具 318
10.4 数据维护过程 318
10.4.1 模拟产品环境 319
10.4.2 DB2LOOK工具 320
10.5 小结 322
11.1.2 事务 324
11.1.1 工作单元 324
11.1 数据库恢复概念 324
第11章 数据库恢复 324
11.2 恢复类型 325
11.2.1 崩溃恢复 325
11.2.2 版本恢复 325
11.2.3 前滚恢复 325
11.3 恢复策略 325
11.3.1 可恢复和不可恢复数据库 326
11.3.2 联机和脱机访问 326
11.4 使用日志文件 326
11.4.1 日志缓冲区 327
11.4.2 主日志文件和辅助日志文件 327
11.4.3 日志类型 328
11.4.4 日志文件的使用 329
11.5 使用BACKUP和RESTORE进行版本恢复 330
11.6 前滚恢复 346
11.7 管理日志文件 352
11.8 其他需要考虑的恢复事项 353
11.9 SET WRITE命令 357
11.10 DB2INIDB命令 358
11.11 使用分离的镜像克隆数据库 358
11.12 使用分离的镜像作为备用数据库 359
11.13 使用分离的镜像作为备份映像 359
11.14 小结 360
12.1.1 优化准则 362
第12章 监控和优化 362
12.1 性能要素 362
12.1.2 性能改进过程 363
12.1.3 可对系统进行多大程度的优化 364
12.1.4 非正式的方法 364
12.2 DB2体系结构概述 364
12.2.1 进程模型 364
12.2.2 查询并行 366
12.2.3 DB2内存使用 367
12.2.4 SQL编译程序概述 369
12.3 DB2排序方法 370
12.4 监控DB2系统 371
12.5 数据库监控 373
12.5.1 数据库监控器 373
12.5.2 快照监控 374
12.5.3 事件监控 379
12.5.4 其他辅助工具 386
12.6 SQL监控 391
12.6.1 解释表 391
12.6.2 收集解释数据 392
12.6.3 检查解释信息 394
12.6.4 使用解释输出的准则 400
12.6.6 配置数据库资源 401
12.6.5 Index Advisor 401
12.6.7 配置分区内并行 406
12.7 性能优化方案 407
12.8 诊断和问题确定 408
12.8.1 错误消息和SQL代码 409
12.8.2 DB2 UDB问题跟踪 411
12.9 小结 416
第四部分 应用程序开发 418
第13章 应用程序开发综述 418
13.1 DB2应用程序开发环境 418
13.2 DB2编程接口 420
13.2.1 嵌入式SQL 420
13.2.2 调用级接口和ODBC 422
13.2.3 Java接口(JDBC和SQLJ) 423
13.2.4 本机DB2 API 424
13.2.5 微软数据对象(DAO、RDO、ADO和OLE-DB) 425
13.2.6 DB2.NET提供者支持 425
13.2.7 其他接口和工具 425
13.3 小结 427
第14章 开发考虑事项 428
14.1 嵌入式SQL综述 428
14.1.1 创建程序包 428
14.1.2 绑定应用程序 431
14.2.2 ODBC与CLI 435
14.2.1 动态嵌入与CLI 435
14.2 CLI和ODBC编程支持 435
14.2.3 设置CLI环境 436
14.3 Java编程支持 440
14.3.1 JDBC编程 441
14.3.2 SQLJ编程 441
14.4 DB2开发中心 442
14.5 小结 442
第15章 开发SQL 444
15.1 用户自定义函数 444
15.1.1 SQL体标量函数 446
15.1.2 SQL体表函数 447
15.2 结构数据类型 448
15.3 模式和别名 452
15.3.1 模式 452
15.3.2 别名 452
15.4 COMMIT和ROLLBACK 453
15.5 SQL过程语言 454
15.5.1 BEGIN ATOMIC语句 454
15.5.2 DECLARE语句 456
15.5.3 SET语句 456
15.5.4 IF/THEN/ELSE语句 457
15.5.5 WHILE语句 458
15.5.8 LEAVE语句 459
15.5.7 ITERATE语句 459
15.5.6 FOR语句 459
15.5.9 RETURN语句 460
15.5.10 SIGNAL语句 460
15.5.11 GET DIAGNOSTICS语句 461
15.5.12 SQL PL实例 461
15.5.13 存储过程中的SQL PL 465
15.6 小结 466
第五部分 附录 468
附录A DB2 UDB V8.1认证考试目标 468
附录B 光盘安装说明 475
DB2大事记 483