• 1. DB2数据库基础知识培训数据仓库应用开发组 孙宝国 2009年6月29日
  • 2. 一、DB2概览内容提要二、DB2的访问三、DB2存储相关的数据库对象四、SQL的编译与执行五、学习指引六、总结
  • 3. 学习目标DB2的分类 DB2的访问以及服务器网络结构 理解基础数据库对象及对象间关系:表、表空间、分区、容器、索引 SQL的编译与执行计划 了解日志管理机制及其对数据操作的影响 具备自学的基础
  • 4. 一、DB2概览1.1 DB2是什么 1.2 DB2的分类及版本 1.3 DB2在招商银行的应用
  • 5. 1.1 DB2是什么 IBM公司研制的关系型数据库系统 DB2(1968-2009) 支持海量数据处理一、DB2概览
  • 6. 1.2 DB2的产品分类及版本 卫星版、个人版、工作组版、企业版; 支持OS/2、Unix、Windows等操作系统,如DB2 for AIX; 我们目前使用DB2 V9.5;一、DB2概览
  • 7. 1.3 DB2在招商银行的应用 总行和分行数据仓库服务器 信用卡中心的新一代390服务器 其他业务系统 一、DB2概览
  • 8. 二、DB2的访问2.1 DB2的登录 2.2 SQL语句的运行 2.3 SQLSTATE & SQLCODE 2.4 服务器网络结构
  • 9. 2.1 DB2的登录 远程登录到DB2服务器 通过本地客户端链接DB2服务器 二、DB2的访问
  • 10. 2.1 DB2的登录 远程登录到DB2服务器:如数据仓库测试机 二、DB2的访问
  • 11. 2.1 DB2的登录 通过本地客户端链接DB2服务器 安装本地DB2客户端程序 配置本地Catalog Db2cmd->db2 connect to bidbdw user tj_sbg catalog tcpip node sbgnode remote 99.1.57.103 server 50000; catalog db bidbdw at node sbgnode; 注:详见《Catalog 配置》二、DB2的访问
  • 12. 2.1 DB2的登录 通过本地客户端链接DB2服务器二、DB2的访问
  • 13. 2.2 SQL语句的执行 二、DB2的访问
  • 14. 2.3 SQLSTATE & SQLCODE SQL语句执行的状态码; 查询状态码的含义: db2 “? 42997” 参考:http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/rzala/rzalaco.htm 思考:SQLSTATE与SQLCODE有何不同?二、DB2的访问
  • 15. 2.4 服务器网络结构 二、DB2的访问终端服务器终端1 终端2 终端n网 络 TCP/IP终 端 主机m RS2322RS2322RS2322RS2322RS2322RS2322DB2服务器
  • 16. 三、DB2存储相关的数据库对象3.1 TABLE 3.2 TABLESPACE 3.3 CONTAINER 3.4 PARTITIONING 3.5 INDEX 3.6 数据库对象关系图
  • 17. 3.1 TABLE 数据的逻辑载体; 由数据库管理器管理的逻辑结构; 组成:ROWS,CULUMNS 模式名+表名 参考: http://www.ibm.com/developerworks/db2/library/techarticle/dm-0608mcinerney/index.html?S_TACT=105AGX52&S_CMP=cn-a-db2 思考:Table在DB2中如何存储?什么是Page?Table与Page的关系?三、DB2存储相关的数据库对象
  • 18. 3.2 TABLESPACE 存储数据之用; 表、索引和大数据对象的逻辑载体; 介于数据库与表之间的逻辑层; 表存储在表空间中,表空间定义在容器中; SYSIBM.SYSTABLESPACES记录了全部的表空间三、DB2存储相关的数据库对象
  • 19. 3.2 TABLESPACE 三、DB2存储相关的数据库对象
  • 20. 3.2 TABLESPACE 三、DB2存储相关的数据库对象
  • 21. 3.3 CONTAINER 表空间的物理载体; 创建表空间示例: CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp   MANAGED BY SYSTEM   USING ('d:\tmp_tbsp','e:\tmp_tbsp') 说明:‘d:\tmp_tbsp’和‘e:\tmp_tbsp’为容器三、DB2存储相关的数据库对象
  • 22. 3.4 PARTITIONING 分区也称节点,将数据在多个分区进行存储 三、DB2存储相关的数据库对象
  • 23. 3.4 PARTITIONING 为什么分区 充分利用硬件资源 增加数据容量 数据的合理分布 提高系统响应时间 三、DB2存储相关的数据库对象
  • 24. 3.4 PARTITIONING 为什么分区 充分利用硬件资源 增加数据容量 数据的合理分布 提高系统响应时间 三、DB2存储相关的数据库对象
  • 25. 3.5 INDEX An index is a set of one or more keys, each key pointing to a row in a table. 索引存储在索引表空间 当更新表时索引数据 也会被更新 runstates三、DB2存储相关的数据库对象思考如何设计索引?
  • 26. 3.6 数据库对象关系 三、DB2存储相关的数据库对象
  • 27. 3.6 数据库对象关系 CREATE TABLE DWA_FAT.A80_GRPDIM ( GRP_NBR CHAR(2) NOT NULL, GRP_NAM VARCHAR(30), PMP_ETP CHAR(3), MNT_USR CHAR(6), MNT_TIM TIMESTAMP, CONSTRAINT "P_KEY_1" PRIMARY KEY (GRP_NBR) ) IN CURDTA_TBS INDEX IN CURIDX_TBS PARTITIONING KEY ( GRP_NBR ); CREATE INDEX DWA_FAT. GRPDIM_IDX ON DWA_FAT.A80_GRPDIM(GRP_NAM);三、DB2存储相关的数据库对象
  • 28. 四、SQL的编译与执行4.1 SQL的编译过程 4.2 执行计划 4.3 工作单元 4.4 事务日志
  • 29. 四、SQL的编译与执行4.1 SQL的编译过程 参考:《Tuning Database Performance》
  • 30. 四、SQL的编译与执行4.2 执行计划 SELECT * FROM UNIDIM.SYBRNDTAP WHERE BRN_NBR = '755‘ 说明:brn_nbr为表unidim.sybrndtap的主键
  • 31. 四、SQL的编译与执行4.3 工作单元 1)工作单元也称事务 2)是应用程序过程中一个可恢复的操作序列 3)数据库管理器使用它来确保数据库处于一致状态 4)对数据库的任何读取或写入都在一个工作单元内执行
  • 32. 四、SQL的编译与执行4.3 工作单元-续 1)COMMIT 语句使工作单元内的所有更改成为持久的 2)ROLLBACK 语句从数据库中除去这些更改
  • 33. 四、SQL的编译与执行4.4 日志管理 1)用于记录事务的文件叫作事务日志 2)类别: 循环日志(circular)和归档日志(archive) 参考:http://www.ibm.com/developerworks/cn/data/library/techarticles/0301kline/0301kline.html#logs
  • 34. 四、SQL的编译与执行4.4 日志管理-续 循环日志(circular):脱机备份
  • 35. 四、SQL的编译与执行4.4 日志管理-续 归档日志(archive):联机备份
  • 36. 四、SQL的编译与执行4.4 日志管理-续 1)数据调整(事务)时记录归档日志; 2)定期定时生成循环日志 3)记录日志会占用大量 的系统资源,降低系统 处理效率
  • 37. 五、学习指引研究方向: 1)SQL语句调优; 2)DB2调优; 3)锁机制; 4)优化器机理; 5)表关联及关联时的内部算法; 6)索引的原理与设计; 参考: 1)IBM RedBook:http://www.redbooks.ibm.com/ 2)IBM官方网站:https://www.ibm.com/developerworks 3)ftp://ftp.software.ibm.com/ps/products/db2/info/vr9/pdf/letter/nlv/zh_CN/
  • 38. 六、总结DB2可以支持Unix等多个操作系统,数据仓库使用DB2 For AIX 9.5; 可以通过本地DB2客户端或者远程登录的方式访问DB2服务器; SQLSTATE和SQLCODE可以提供SQL命令的运行状态; 一个服务器可以建多个实例,一个实例下可以建多个数据库,一个数据库可以包含多个表空间,表和索引的数据存储在表空间中; 可以通过分区提高系统性能; SQL语句经过编译后生成了“执行计划”
  • 39. 六、总结-续执行计划是SQL语句中DB2中运行路径和过程 工作单元也叫事务,应用程序过程中一个可恢复的操作序列 事务日志包括循环日志和归档日志 联机事务日志对系统的性能存在影响
  • 40. 参考Partitioning and Clustering Guide Data Servers, Databases, and Database Objects Guide SQL Reference DB2 SQL Cookbook---Graeme Birchall Table Spaces and Buffer Pools Tuning Database Performance 实例讲解DB2中的表空间 表空间说明-ITPUB DB2历史回溯 DB2 UDB事务日志概述 DB2中的数据类型 Partitiong for performance in an ebusiness intelligence world
  • 41. 参考-续Relational Database Index Design and the Optimizers DB2开发人员指南 数据恢复与高可用性指南与参考
  • 42. 谢 谢!