第1章 SQL基础 1
1.1 RDBMS概述 1
1.2 SQL概述 1
1.2.1 DDL(Data Definition Language) 2
1.2.2 DML(Data Manipulation Language) 2
1.2.3 DCL(Data Control Language) 3
1.3 标量函数和列函数 3
1.3.1 标量函数 3
1.3.2 列函数 3
1.4 链接(JOIN) 4
1.4.1 内链接(INNER JOIN) 4
1.4.2 外链接(OUTER JOIN) 4
1.5 联合(UNION) 5
1.6 子查询 5
第2章 主机平台DB2和LUW平台DB2基本概念比较 7
2.1 DB2 for LUW系统结构图 7
2.2 DB2 for z/OS系统结构图 8
2.3 DB2实例和子系统 8
2.4 DB2命名 9
2.5 命令定向 9
2.6 连接客户机 10
2.7 数据库 10
2.8 DB2编目表 10
2.9 跨数据库查询 11
2.10 临时表空间 11
2.11 通信数据库(CDB) 11
2.12 日志(LOG) 11
2.13 数据高速缓存和页面大小 12
2.14 配置参数 12
2.15 控制查询 12
2.16 小结 13
第3章 主机DB2相关用户和组管理 14
3.1 创建组 14
3.2 增加LOGON过程 19
3.3 对组授权 20
3.4 刷新RACF使授权生效 21
3.5 定义别名 21
3.6 建立用户 22
3.6.1 用户测试权限 23
3.7 建立并测试对用户数据集的保护 24
3.8 建立并测试对系统数据集的保护 25
3.9 删除对系统数据集的保护 28
3.10 删除对用户数据集的保护 29
3.11 删除TSO用户 29
3.12 删除用户的别名 29
3.13 删除组 30
3.14 删除LOGON过程 31
第4章 主机DB2内部结构和处理机制 33
4.1 主机DB2环境和系统视图 33
4.2 主机DB2系统结构 34
4.3 主机DB2地址空间 42
4.4 主机DB2 SQL处理内部机制 43
4.5 主机DB2系统的启动和重启 48
4.5.1 主机DB2系统的启动 48
4.5.2 主机DB2系统的启动样例 49
4.5.3 主机DB2系统的重启 50
第5章 主机DB2基本对象管理 56
5.1 主机DB2基本对象 56
5.2 主机DB2相关卷管理 57
5.2.1 主机卷概述 57
5.2.2 查询卷 58
5.3 存储组管理 59
5.3.1 存储组概述 59
5.3.2 查询存储组 59
5.3.3 更改存储组 60
5.4 数据库管理 61
5.4.1 创建数据库 61
5.4.2 更改数据库 65
5.4.3 删除数据库 66
5.5 缓冲池管理 66
5.5.1 查询缓冲池 67
5.5.2 更改缓冲池 68
5.6 表空间管理 69
5.6.1 表空间概述 69
5.6.2 创建表空间 74
5.6.3 更改表空间 76
5.6.4 删除表空间 77
5.7 数据库对象管理 77
5.7.1 表管理 77
5.7.2 视图管理 98
5.7.3 索引管理 102
5.7.4 序列管理 104
5.7.5 别名管理 105
5.7.6 触发器管理 106
第6章 数据备份与复原 109
6.1 数据备份概述 109
6.2 表空间备份 109
6.2.1 查询表空间备份 110
6.2.2 表空间备份概述 110
6.3 活动日志和归档日志 112
6.3.1 数据库日志概述 112
6.3.2 活动日志和归档日志概述 113
6.4 复原表空间(复原到日志尾) 116
6.5 表空间备份与复原效果示例 116
6.6 表空间复原到备份末尾之前的某点 119
第7章 数据迁移 123
7.1 数据导出 123
7.2 数据导入 125
7.3 导入含主外键约束的表数据的各种情况分析 127
7.3.1 违反子表主键约束和采用RESUME YES参数的情况 128
7.3.2 违反子表外键约束和采用RESUME YES参数的情况 131
7.3.3 违反父表主键约束和采用REPLACE参数的情况 131
7.3.4 异常情况处理 134. 135
第8章 表空间级统计信息搜集和更新 135
8.1 表空间级统计信息搜集 135
8.2 表空间级统计信息更新 136
8.3 表扫描和匹配的索引扫描 137
8.4 使用DB2 Explain工具进行性能调整 139
第9章 锁的案例探索 141
9.1 锁的基本概念 141
9.1.1 引入锁的目的 141
9.1.2 锁的范围 141
9.1.3 锁的强度和兼容性 142
9.1.4 锁的隔离级别 144
9.2 基本锁的模拟 145
9.2.1 S锁的模拟 145
9.2.2 X锁的模拟 147
9.3 锁等待模拟 148
9.4 死锁模拟 150
9.5 各隔离级别分析 151
9.6 主机DB2锁的隔离级别模拟 153
9.6.1 隔离级别为CS的情况 153
9.6.2 隔离级别为RR的情况 154
第10章 主机DB2权限管理 157
10.1 主机DB2权限概述 157
10.1.1 Authorization IDs&CURRENT SQL ID 157
10.1.2 DB2数据访问控制 158
10.1.3 访问DB2内部数据 159
10.2 存储组权限管理 162
10.2.1 存储组权限查询 162
10.2.2 存储组权限授予 162
10.2.3 存储组权限剥夺 163
10.3 数据库权限管理 163
10.3.1 数据库权限查询 163
10.3.2 数据库权限授予 164
10.3.3 数据库权限剥夺 165
10.4 表空间权限管理 165
10.4.1 表空间权限查询 165
10.4.2 表空间权限授予 166
10.4.3 表空间权限剥夺 166
10.5 表与视图权限管理 167
10.5.1 表与视图权限查询 167
10.5.2 表权限授予 168
10.5.3 表权限剥夺 170
10.6 系统权限管理 171
10.6.1 系统权限查询 171
10.6.2 系统权限授予 171
10.6.3 系统权限剥夺 172
第11章 DB2 for LUW与DB2 for z/OS互连 173
11.1 互连技术架构 173
11.2 主机TCPIP配置和连接测试 174
11.2.1 主机TCPIP配置 174
11.2.2 客户端和服务端测试TCPIP连接 176
11.3 DB2 for LUW连接DB2 for z/OS 177
11.3.1 服务端DDF配置 177
11.3.2 客户端编目并测试与DB2 for z/OS的连接 178
11.4 DB2 for z/OS连接DB2 for LUW 181
11.4.1 客户端配置 181
11.4.2 测试DB2 for z/OS与DB2 for LUW的连接 184
第12章 COBOL嵌入式应用程序开发 185
12.1 COBOL嵌入式应用程序开发基本概念 185
12.1.1 COBOL嵌入式应用程序开发总体结构 185
12.1.2 分隔符 186
12.1.3 宿主变量 187
12.1.4 空值的处理 190
12.1.5 SQLCA 191
12.2 数据插入样例 193
12.2.1 DCLGEN工具使用 193
12.2.2 COBOL源程序 194
12.2.3 预编译、编译、链接、执行COBOL源程序的JCL 195
12.2.4 确认执行结果 197
12.3 单行数据查询样例 197
12.3.1 COBOL源程序 197
12.3.2 预编译、编译、链接、执行COBOL源程序的JCL 198
12.3.3 确认执行结果 199
12.4 含空值处理的单行数据查询样例 200
12.4.1 COBOL源程序 200
12.4.2 预编译、编译、链接、执行COBOL源程序的JCL 201
12.4.3 确认执行结果 201
12.5 利用游标实现多行数据查询样例 201
12.5.1 游标的类型 202
12.5.2 游标的使用 205
12.5.3 COBOL源程序 207
12.5.4 预编译、编译、链接、执行COBOL源程序的JCL 208
12.5.5 确认执行结果 208
12.6 利用游标实现动态SQL语句样例 208
12.6.1 COBOL源程序 209
12.6.2 预编译、编译、链接、执行COBOL源程序的JCL 210
12.6.3 确认执行结果 210
12.7 利用不敏感可滚动游标实现多行数据查询样例 210
12.7.1 创建临时数据库 210
12.7.2 创建临时表空间 211
12.7.3 创建全局临时表 211
12.7.4 COBOL源程序 212
12.7.5 预编译、编译、链接、执行COBOL源程序的JCL 212
12.7.6 确认执行结果 213
12.8 利用敏感静态可滚动游标实现多行数据查询样例 213
12.8.1 COBOL源程序 213
12.8.2 预编译、编译、链接、执行COBOL源程序的JCL 214
12.8.3 确认执行结果 214
12.9 使用可更新游标更新表数据样例 214
12.9.1 COBOL源程序 214
12.9.2 预编译、编译、链接、执行COBOL源程序的JCL 215
12.9.3 确认执行结果 215
12.10 使用可更新游标删除表数据样例 216
12.10.1 COBOL源程序 216
12.10.2 预编译、编译、链接、执行COBOL源程序的JCL 217
12.10.3 确认执行结果 217
12.11 引入CICS API和CICS MAP的嵌入式COBOL程序完整示例 218
12.11.1 COBOL源程序 219
12.11.2 CICS MAP的COPY BOOK 221
12.11.3 CICS MAP源程序 223
12.11.4 DB2预编译、CICS翻译、编译、链接COBOL源程序的JCL 224
12.11.5 CICS部分的操作 226
参考文献 231