IBM DB2数据库环境以用于大型公司、政府、电信和邮电行业等需要海量数据处理的场所而闻名。自从2002年10月DB2 V8推出了针对不同层次用户的多个产品,其应用越来越广泛。本书介绍了DB2的最新版本——DB2 V8。全书通过具体实例,较为详细地介绍了IBM对企业应用开发的全面支持,主要包括DB2应用开发概述、SQL、数据库对象、逻辑数据库设计、物理数据库设计、应用开发中心、信息目录中心、创建DB2数据库、大对象、用户定义的不同类型、SQL过程、嵌入式SQL、Web应用开发、Java应用开发、DB2 XML应用开发、DB2连接、分布式数据库、构建数据仓库的一般开发技术和开发技巧。
本书适合有一定数据库管理或编程经验的数据库管理员或程序员使用,同时适合从事企业数据仓库应用开发、数据挖掘的企业数据分析人员。
第1章 DB2在Windows上的安装 1
1.1 安装前的准备 2
1.2 DB2的安装 6
1.2.1 DB2的安装 6
1.2.2 DB2的实例 17
1.2.3 创建样本数据库 19
1.3 DB2命令行处理器 20
1.4 DB2控制中心 23
1.4.1 进入控制中心 23
1.4.2 控制中心简介 24
1.5 DB2复制中心 26
1.6 健康中心 26
1.7 本章小结 27
第2章 DB2客户端概述 29
2.1 DB2客户端概述 30
2.2 建立分布式连接 31
2.2.1 通过Discovery机制自动配置 31
2.2.2 使用概要文件自动配置 37
2.2.3 手工配置 41
2.3 工具绑定 46
2.4 本章小结 48
第3章 SQL基础 49
3.1 SQL语言概述 50
3.1.1 SQL语言及其优点 50
3.1.2 SQL语言术语及分类 51
3.2 创建数据库表 52
3.2.1 创建表 52
3.2.2 插入数据 53
3.2.3 更新数据 57
3.2.4 删除数据 59
3.2.5 创建视图 60
3.3 SQL子句 64
3.3.1 select语句 64
3.3.2 where子句选择行 66
3.3.3 order by的运用 68
3.3.4 distinct的用法 69
3.3.5 算术运算符 70
3.3.6 group by的运用 71
3.3.7 having的用法 72
3.3.8 子查询 73
3.3.9 汇总函数 74
3.4 SQL语句综合实验 77
3.4.1 实验一:select从两个数据表中查询数据 77
3.4.2 实验二:汇总函数的运用 78
3.5 本章小结 79
第4章 高级的SQL语言 81
4.1 数据完整性 82
4.1.1 数据完整性概述 82
4.1.2 惟一性约束 83
4.1.3 定义表的数据约束 86
4.2 数据并行性 90
4.2.1 事务 91
4.2.2 并行性和隔离级别 93
4.2.3 锁 96
4.3 索引 101
4.3.1 索引的概念 101
4.3.2 创建索引 102
4.3.3 在索引中使用包含(INCLUDE)列 103
4.4 大对象(LOB) 104
4.4.1 LOB. 动态 SQL和SQLDA 105
4.4.2 将LOB插入表 106
4.4.3 将LOB检索到文件 109
4.5 本章实验 116
4.6 本章小结 117
第5章 存储过程和用户自定义的数据类型 119
5.1 存储过程的概念 120
5.2 创建存储过程 121
5.2.1 客户端应用程序 122
5.2.2 服务器端存储过程 127
5.3 存储过程构建 129
5.3.1 开始构建存储过程 130
5.3.2 创建项目 131
5.4 SQL过程 142
5.4.1 过程简述 142
5.4.2 编写SQL过程 144
5.5 嵌套的存储过程 146
5.5.1 服务器端的存储过程 147
5.5.2 客户端的存储过程 150
5.5.3 用CLI开发存储过程 151
5.5.4 保留存储过程 154
5.6 用户自定义的数据类型 156
5.6.1 数据类型 156
5.6.2 结构化类型 156
5.6.3 数值类型 157
5.6.4 用户自定义函数 159
5.6.5 创建函数映射 163
5.6.6 创建函数模板 163
5.6.7 用户定义函数和类型的SQL语句 164
5.7 本章实验 196
5.8 本章小结 198
第6章 触发器 201
6.1 触发器的概念和定义 202
6.2 建立触发器 205
6.2.1 定义DB2触发器的SQL语句 205
6.2.2 触发器的类型 216
6.3 触发器中的错误处理 224
6.4 约束和触发器之间的比较 224
6.5 本章实验 225
6.6 本章小结 226
第7章 数据库设计基础 227
7.1 理解实体和关系 228
7.2 设计过程中对实体的转换 230
7.3 用户如何访问数据 231
7.4 设计的生命周期 232
7.4.1 系统开发过程 232
7.4.2 传统的设计方法 233
7.4.3 Barker方法 236
7.4.4 改进的设计方法 239
7.4.5 设计过程 241
7.4.6 数据库的二次设计 243
7.4.7 数据库生命周期概述 244
7.5 本章小结 246
第8章 数据库设计 247
8.1 数据库的逻辑设计 248
8.2 逻辑设计需要考虑的事项 250
8.3 数据库逻辑设计实例 250
8.4 数据库的物理设计 267
8.4.1 估计表空间的需求 267
8.4.2 设计节点组 273
8.5 本章实验 276
8.6 本章小结 278
第9章 Java应用程序开发 279
9.1 Java接口:JDBC和SQLJ 280
9.1.1 JDBC介绍 280
9.1.2 SQLJ介绍 287
9.1.3 SQLJ与JDBC的比较 289
9.2 JDBC应用程序 291
9.2.1 加载驱动程序 291
9.2.2 连接数据库 296
9.2.3 执行SQL查询 304
9.2.4 获得SQL语句的执行结果 308
9.2.5 一个简单的JDBC程序 311
9.2.6 构建更高级别的JDBC对象 314
9.2.7 一个可视化的数据库程序 321
9.3 SQLJ应用程序 326
9.3.1 SQLJ元素 327
9.3.2 连接环境 329
9.3.3 迭代程序 333
9.3.4 开发SQLJ应用程序 337
9.3.5 执行SQLJ应用程序 342
9.3.6 批处理更新 344
9.4 本章实验 346
9.4.1 实验一 346
9.4.2 实验二 347
9.5 本章小结 348
第10章 Web应用程序开发 351
10.1 Web应用程序安装的一般过程 352
10.1.1 一般安装过程 352
10.1.2 安装实例 356
10.2 创建Web应用程序 362
10.2.1 理解应用程序 362
10.2.2 构建数据库 364
10.2.3 设计数据存储过程 365
10.2.4 设计Web服务 380
10.2.5 运行Web应用程序 395
10.3 本章实验 399
10.4 本章小结 400
第11章 DB2 XML应用开发 401
11.1 DB2 XML概述 402
11.1.1 DB2 XML Extender 403
11.1.2 SQL/XML函数 405
11.1.3 DB2 XML样本转换 407
11.2 创建XML数据库 410
11.2.1 概述 410
11.2.2 创建XML数据库 411
11.3 XML管理 415
11.3.1 XML列术语 415
11.3.2 XML集成化的数据管理 415
11.3.3 管理XML列数据 416
11.3.4 XML Extender UDT和UDF的命名 417
11.3.5 存储数据 417
11.3.6 检索数据 418
11.3.7 更新XML数据 419
11.3.8 将DB2数据组合成XML文档 420
11.3.9 将XML文档分解为DB2数据 423
11.3.10 搜索XML集合 426
11.4 本章实验 428
11.5 本章小结 428
第12章 数据仓库 429
12.1 数据仓库概述 430
12.1.1 粒度 430
12.1.2 分割问题 435
12.1.3 数据仓库中的数据组织 437
12.2 设计数据仓库 440
12.2.1 数据/过程模型和体系结构设计环境 441
12.2.2 数据仓库和数据模型 442
12.3 DB2中的数据仓库 445
12.3.1 DB2 DWM介绍 445
12.3.2 分布式数据仓库 449
12.4 本章小结 451
DB2 UDB V8是IBM公司推出的最新一代功能强大的关系型数据库管理系统, 它允许终端用户和程序员通过结构化查询语言(SQL)将对数据进行存取. IBM 公司于1970年首先提出了关系型数据库模型, 这是数据库技术发展史上的一个重要里程碑, 多年来IBM一直致力于关系数据库技术的研究和开发, 并最早将关系型数据库产品投入到实际应用中. 由于IBM对数据库产品持续不断的投入, 使得DB2在竞争激烈的数据库市场中始终保持领先地位. 目前, DB2已发展成为一个庞大的数据库管理系统, 它可以帮助用户在各种平台或环境下建立统一的或分布的企业级数据库系统及其应用程序, 它具有良好的可伸缩性, 能够支持从单处理器到多处理器直到大规模平行处理等各种硬件系统, 它能够支持文本. 图像. 声音等多媒体信息的存储和检索, 使用户可以开发出丰富多彩. 图文并茂的应用程序, 它具有强大的Web连接功能和对Java的完全支持, 这将成为用户开发各种电子商务解决方案的重要基础.
本书介绍了DB2的最新版本——DB2 V8. 全书通过具体实例, 较为详细地介绍了IBM对企业应用开发的全面支持, 主要包括DB2应用开发概述. SQL. 数据库对象. 逻辑数据库设计. 物理数据库设计. 应用开发中心. 信息目录中心. 创建DB2数据库. 大对象. 用户定义的不同类型. SQL过程. 嵌入式SQL. Web应用开发. Java应用开发. DB2 XML应用开发. DB2连接. 分布式数据库. 构建数据仓库的一般开发技术和开发技巧.
本书的主要作者有杨键. 李育龙. 王祺等, 此外, 以下人员也参与了本书的资料收集和写作工作, 他们是:王莹. 王晓璇. 张李. 刘新伟. 王平. 秦冬. 王沛. 董华. 王宝哲. 任超. 陶世懿等. 以上人员对本书的完成付出了辛勤的汗水和心血, 在此一并表示忠心的感谢.
由于时间仓促, 加之编者的水平有限, 书中的缺点和不足之处在所难免, 敬请读者批评指正.
本书的面向对象
本书适合有一定数据库管理或编程经验的数据库管理员或程序员使用, 同时适合从事企业数据仓库应用开发. 数据挖掘的企业数据分析人员. 但对于初学者, 本书仍有很好的指导作用. 在阅读本书之前, 读者应具有Java和C++语言的基础. 除了可以将本书作为一本学习辅导书使用之外, 您也可以将本书作为一本DB2的参考指南来使用.
学习本书的软硬件环境
本书所有的代码都在Windows环境中测试成功. 要正常运行本书的例程, 除了要安装DB2 UDB V8以外, 您可能还要安装其他一些软件(比如Tomcat), 这些在书中都有介绍.
本书的约定
本书包括如下默认的约定:
l 代码行. 函数. 变量名和能在屏幕上看到的任何文本都以比正文小一号的字体显示.
l 大小写在Java编程中非常重要, 要特别留意在变量名和函数名中的大小写.
l 命令和关键字都是以比正文小一号的字体显示.
编 者
飞思科技产品研发中心