本教材是在学过DB2基础知识《企业级数据库基础——DB2》之后进一步提高的工具。教材共分为三篇:第1篇是数据库管理篇,讲解DB2的各种常见管理操作;第2篇是数据库开发篇,讲解DB2的高级SQL和XML相关开发知识;第3篇是性能调优篇,也属于管理范畴,但性能调优是管理中的一个高级主题,旨在让数据库运行得更好。
三、读者对象
在校大学生。
刚刚进入软件企业从事基于数据库的软件开发人员。
刚刚进入软件企业从事数据库管理的人员。
教材中很多内容并不是原创,而是整理,毕竟DB2是一个数据库产品,针对其用法写出的书籍应该作为教材,而不是著作。本教材的主旨是为读者使用DB2整理出一条清晰的线索,并将核心的要点以及学习中可能遇到的困难整理出来,使读者能够提高学习效率。在学习完《企业级数据库基础——DB2》和本教材的内容之后,对DB2可以说已经初窥门径了,在此基础上读者就可以阅读IBM的官方文档和信息中心的帮助,有针对性地解决实际工作中遇到的问题了。
本教材在编写的过程中参考了很多大家的代表作,如牛新庄博士的《DB2数据库性能调整和优化》,王飞鹏、陈辉、张广舟、成孜论老师的《DB2设计与性能优化——原理、方法与实践》等,还参考了DevelopWorks网站上的很多文章,有些示例参考了IBM的官方教程以及信息中心。
本教材的第1章、第2章、第8章~第11章由张冬青编写完成;第3章、第5章~第7章由闫海珍编写完成;第4章、第12章由王澜编写完成;第13章由周建儒编写完成。全书由张冬青统稿。
本教材的配套光盘中包含所有示例的源代码、学习用课件以及针对第3篇性能调优的数据库镜像文件(在这些文件的基础上可以进行教材中的实验),读者可以充分加以利用。
由于编写时间紧张,尽管已经对书稿进行了反复检查和校对,但疏漏之处在所难免,敬请读者谅解!如发现书稿中的错误可发邮件到zhangdongqing@neusofteducn,我们将认真核对并及时反馈。
目录
第1篇数据库管理篇
第1章DB2的内部对象3
1.1DB2系统结构3
1.2系统参数4
1.3实例5
1.3.1实例的创建、删除、列示与切换6
1.3.2实例的启动与停止7
1.3.3实例级别的配置参数8
1.3.4实例级别的常用命令10
1.4数据库11
1.4.1数据库的创建、修改与删除12
1.4.2数据库的连接与断开13
1.4.3数据库的激活与取消激活13
1.4.4实例和数据库的编目14
1.4.5数据库级别的配置参数15
1.4.6数据库级别的常用命令18
1.5缓冲池18
1.5.1缓冲池的创建、修改与删除19
1.5.2缓冲池状态的查看19
1.6表空间20
1.6.1表空间的分类20
1.6.2表空间的创建、修改与删除21
1.6.3表空间状态的查看24
1.6.4关于表空间和缓冲池性能方面的建议24
1.7模式24
1.8表25
1.8.1数据类型25
1.8.2普通表的创建、修改与删除28
1.8.3用户临时表29
1.9视图30
1.9.1视图的创建与删除30
1.9.2视图的WITH CHECK OPTION选项31
1.10索引32
1.10.1索引的种类32
1.10.2索引的结构33
1.10.3索引的创建33
1.11约束条件34
目录1.11.1基本约束35
1.11.2标识列约束36
1.12序列38
1.12.1序列的创建与删除38
1.12.2序列生成值的使用39
1.12.3序列与标识列的对比39
1.13存储过程40
1.13.1存储过程的创建与删除40
1.13.2存储过程的调用41
1.14触发器41
1.14.1触发器的分类42
1.14.2触发器的创建与删除42
1.15自定义函数44
1.15.1用户自定义函数的分类44
1.15.2用户自定义函数的创建与删除45
1.16专用寄存器46
习题47
第2章安全性管理50
2.1安全性概述50
2.1.1DB2的安全机制50
2.1.2常见的系统架构52
2.2身份验证53
2.2.1身份验证的分类54
2.2.2身份验证的设置方法55
2.3授权59
2.3.1权限级别59
2.3.2权限的授予和撤销62
2.4特权64
2.4.1特权的分类64
2.4.2特权的授予和撤销66
2.4.3隐式特权68
2.5基于标签的访问控制69
习题75
第3章备份恢复77
3.1备份恢复概述77
3.1.1数据库备份的分类77
3.1.2数据库恢复的分类78
3.2日志79
3.2.1日志概述79
3.2.2日志模式80
3.2.3与日志有关的参数80
3.3备份81
3.4版本恢复82
3.5前滚恢复82
习题83
第4章数据迁移84
4.1数据迁移概述84
4.1.1非定界ASCII文件85
4.1.2定界ASCII文件85
4.1.3PC/IXF文件86
4.1.4工作表格式文件86
4.2导出86
4.2.1导出的基本格式86
4.2.2导出大对象数据88
4.2.3导出IXF格式的文件89
4.3导入90
4.3.1Insert模式90
4.3.2Insert_update模式91
4.3.3Replace模式92
4.3.4Replace_create模式93
4.3.5Create模式93
4.3.6强制提交93
4.3.7导入综合样例94
4.4装入95
4.4.1LOAD基本功能95
4.4.2LOAD基本命令96
4.4.3例外表97
4.4.4处理异常状况99
习题102
第2篇数据库开发篇
第5章 DB2中的高级SQL105
5.1简单查询105
5.1.1FETCH FIRST子句105
5.1.2CAST表达式106
5.1.3CASE表达式106
5.1.4DESCRIBE语句与VALUES语句109
5.2数据操纵110
5.2.1添加数据110
5.2.2修改数据112
5.2.3删除数据113
5.2.4MERGE语句114
5.3OLAP函数116
5.3.1OLAP函数的概念与特性118
5.3.2PARTITION表达式119
5.3.3窗口定义120
5.3.4空值处理123
5.3.5常用OLAP函数123
习题129
第6章存储过程131
6.1概述131
6.2SQL PL程序整体结构131
6.2.1创建过程132
6.2.2过程体结构134
6.3SQL PL的基本元素136
6.3.1数据类型136
6.3.2访问不同类型的数据139
6.3.3派生列140
6.3.4标识列和序列141
6.4流程控制语句145
6.4.1语句块145
6.4.2条件语句148
6.4.3循环结构150
6.4.4流程跳转语句152
6.5游标156
6.5.1游标的概念156
6.5.2游标的用法156
6.5.3定位删除和定位更新159
6.5.4从IUD语句中检索数据161
6.5.5在游标中使用COMMIT或ROLLBACK162
6.5.6使用游标返回结果集164
6.6错误处理165
6.6.1SQLSTATE和SQLCODE166
6.6.2错误处理的概念和用法166
6.6.3用户自定义错误处理器170
习题174
第7章用户自定义函数和触发器175
7.1函数175
7.1.1创建函数175
7.1.2标量函数177
7.1.3表函数179
7.1.4在UDF中调用存储过程181
7.2触发器184
7.2.1创建触发器185
7.2.2BEFORE触发器186
7.2.3AFTER触发器189
7.2.4INSTEAD OF触发器190
7.2.5从触发器中调用UDF和存储过程193
习题195
第8章pureXML196
8.1XML196
8.2传统XML数据的管理方法198
8.3pureXML技术199
习题201
第9章XQuery与SQL/XML202
9.1XPath表达式202
9.2FLWOR表达式204
9.2.1return子句205
9.2.2for子句205
9.2.3let子句207
9.2.4where子句209
9.2.5order by子句210
9.3XQuery212
9.3.1数据模型213
9.3.2数据类型214
9.3.3输入函数214
9.3.4比较和逻辑运算符215
9.3.5节点序列的结合216
9.3.6聚集函数217
9.3.7节点构造器218
9.3.8XQuery预处理、注释与命名空间220
9.3.9其他表达式和函数222
9.4SQL/XML228
9.4.1在SELECT子句中执行XQuery表达式228
9.4.2在WHERE子句中执行XQuery表达式229
9.4.3将二维表中的数据发布成XML文档230
9.4.4将XML文档转化为二维表235
9.4.5XMLCAST函数的用法236
9.4.6节点的增删改操作237
9.5基于XML的高级查询238
9.5.1量化表达式238
9.5.2分支语句239
9.5.3两个XML文档的连接239
习题240
第3篇性能调优篇
第10章性能调整概述243
10.1性能概述243
10.2性能调整目标243
10.3性能调整的方法和过程244
习题249
第11章性能监控工具250
11.1快照监控器250
11.2事件监控器256
11.3db2pd266
11.4解释工具270
11.4.1解释表271
11.4.2Visual Explain273
11.4.3db2expln275
11.4.4db2exfmt278
习题279
第12章系统级优化280
12.1I/O管理280
12.1.1I/O管理概述280
12.1.2NUM_IOCLEANERS参数调优284
12.1.3NUM_IOSERVERS参数调优285
12.1.4SOFTMAX参数调优285
12.1.5MINCOMMIT参数调优286
12.1.6CHNGPGS_THRESH参数调优286
12.2表空间管理286
12.2.1磁盘效率287
12.2.2表空间的管理方式287
12.2.3表空间的容器288
12.2.4页面大小288
12.2.5数据压缩289
12.3内存管理290
12.3.1DB2的内存结构290
12.3.2INSTANCE_MEMORY参数调优292
12.3.3DATABASE_MEMORY参数调优292
12.3.4缓冲池调优293
12.3.5DBHEAP参数调优293
12.3.6LOGBUFSZ参数调优294
12.3.7锁相关参数的调优295
12.3.8排序相关参数的调优295
12.3.9MAXAPPLS参数调优29712.4更新统计信息与碎片整理298
12.4.1生成统计信息298
12.4.2碎片整理299
习题303
第13章应用级优化304
13.1常规表的设计原则304
13.2索引的设计原则305
13.3数据库分区的设计原则306
13.4分区表的设计原则319
13.5多维集群表的设计原则321
13.6物化查询表的设计原则322
13.7SQL语句优化325
13.7.1谓词的优化原则326
13.7.2子查询与连接的优化原则328
13.7.3集合运算符的优化原则337
13.7.4其他SQL语句的优化原则338
习题339
参考文献340
技术前沿,与时俱进
使用最新版本的DB2,并且在教材中指出每种命令能够运行在什么版本中。截至笔者截稿时最新的DB2版本为101,并且使用了Data Studio集成开发和管理工具。
案例实用,体系完备
教材中配备了丰富的案例,其中很多案例来自多年的教学积累以及实际项目,有很强的实用性,从各个方面全面覆盖了DB2的各个领域。
循序渐进,通俗易懂
读者只要有最基本的计算机操作基础,就可以按照教材由浅入深逐步学习,教材中的案例讲解通俗易懂,步骤详尽。
资源开放,光盘支撑
本教材配有光盘,其中包含所有的源代码、教学课件,以及部分用于性能调优的备份镜像文件,读者可以充分利用这些资源配合教材进行高效练习。