DB2 10.1 基础认证考试 610 备考教程,第 1 部分: 规划

本教程将向您介绍 IBM® DB2® 10.1 产品版本的基础知识、功能和工具,并描述不同类型的数据应用程序的基础概念,比如 OLTP、数据仓库/OLAP、非关系型概念,等等。本教程还会向您简要介绍会在本系列的其他教程中看到的许多概念,帮助您为 DB2 10.1 基础认证考试 610 做好准备。

Norberto Gasparotto Filho, 数据库专家, IBM

Norberto Gasparotto FilhoNorberto Gasparotto Filho 是一名数据库专家,在数据库管理方面拥有超过 8 年的从业经验。他赢得了 2011 年举办的第一次 “DB2's Got Talent” 竞赛的第一名。他还是一名善于使用各种技术的编程员,拥有编程和数据库管理方面的认证。在 Norberto 的博客(“Insights on DB2 LUW database admin, programming and more”)上,他分享了在日常数据库管理工作中学到的经验、技巧和知识。在业余时间,Norberto 喜欢跑步、骑自行车、与他的孩子和妻子享受快乐时光。在 developerWorks 社区中的 Norberto 个人资料 中,可了解有关他的更多个人信息。



2013 年 8 月 05 日

开始之前

关于本系列

是否希望成为一名 IBM 认证的数据库管理员?如果是,那么您来对了地方。在由 6 个 DB2 认证教程组成的本系列文章中,您会找到与参加考试 610 (DB2 Fundamentals 10.1) 需要了解的主题有关的基础知识。尽管本系列的主要目的是帮助您参加考试,但也可以利用本系列探讨 DB2 10.1 的一些激动人心的新特性,帮助您了解 DB2 10 for z/OS® 和 DB2 10 for Linux®, UNIX®, and Windows® 中可用的许多特性和功能。

还未看到要找的教程?您可以查阅 DB2 9 基础认证 730 备考系列 中的 DB2 9 教程。

关于本教程

本教程将向您介绍 DB2 10.1 产品版本的基础知识、功能和工具,并描述不同类型的数据应用程序的基础概念,比如 OLTP、数据仓库/OLAP、非关系型概念,等等。本教程还会向您简要介绍会在本系列的其他教程中看到的许多概念,帮助您为 DB2 10.1 基础认证考试 610 做好准备。

目标

在学习完本教程之后,您应当能够了解:

  • 不同 DB2 版本和各种 DB2 产品是什么
  • DB2 10.1 包含哪些工具
  • 如何使用 Data Studio 管理您的 DB2 环境、访问您的数据,等等
  • pureScale 是什么,以及它如何帮助您充分利用 OLTP 数据库
  • 数据仓库是什么,有哪些利用其成效的 DB2 产品
  • DB2 如何存储和处理非常规数据,比如大对象 (LOB) 和 XML 文档

先决条件

由于这是本系列中的第一个教程,所以您不用满足任何先决条件。但是,为了能从本教程中获得更多的益处,建议您对数据库管理和数据库利用稍作了解。获得对 DB2 服务器的访问还有助于您测试将会看到的许多概念,并且使您能够练习整个系列中提出的任务。这里并未介绍产品安装,不过如果您需要的话,可以 在文档 中寻求相关帮助。

系统要求

正如上述先决条件中提到的,强烈建议您安装 DB2,以便更好地利用本教程和本系列的其他教程。很快您就会发现,DB2 有一个可下载的功能齐全的免费版本:DB2 Express-C。您可以在自己的计算机上使用它,无需担心许可,它绝对会满足您的学习要求。您可以 通过 developerWorks 下载 DB2 Express-C

致谢

尽管本教程中的材料涵盖了您会在考试中看到的许多内容,但它是基于考试目标(而非其他方面)而创建的。因此,在参加考试时,您可能会发现并未在这里明确说明的问题。准备应对考试的最好方法是具备对考试目标中列出的主题的使用经验。本教程包含该教程的前一版本(即由 Paul Zikopoulos 编写的 “DB2 Fundamentals v9 preparation – Planning”)中的一些内容(信息未变)。


DB2 产品

指出 DB2 10.1 提供面向任何企业的适当数据管理解决方案并非是一种营销说法。没有任何其他数据库管理系统可与 DB2 10.1 提供的高级性能、可用性、可伸缩性和可管理性相媲美。不过有不同版本的 DB2 可供使用,每个版本都适合市场的不同部分。关于基础考试,您应该了解本节中介绍的不同 DB2 产品和版本。

在 IBM 信息管理软件中,实际上有两种 DB2:DB2 for z/OS 和 DB2 for Linux, UNIX, and Windows(有时称为 DB2 for LUW 或面向分布式平台的 DB2)。当前可用的所有 DB2 发行版如 图 1图 1 所示。如果细看该图,您就会发现一种阶梯发展趋势,也就是说,随着您向上一层移动时,显示的每个版本都包含列在其下方的版本的所有功能、特性和优势(以及其他特性和功能)。

图 1. 图 1. 面向分布式系统的 DB2 的不同版本
DB2 Express-C、DB2 Express Edition、DB2 Workgroup Edition、DB2 Enterprise Server Edition、DB2 Advanced Enterprise Server Edition 和 InfoSphere Warehouse

务必注意的是,如果您决定从一个产品版本迁移到另一个产品版本,无需担心因产品迁移引起的不兼容性。例如,如果您使用 DB2 Express-C 创建了一个数据库,稍后决定购买 DB2 Enterprise Server Edition,那么您只需使用 DB2 Enterprise Server Edition (ESE) 安装映像更新 DB2,就可以继续使用相同的服务器。最终得到的将是一个有更多特性可用的正常运作的数据库环境。惟一要关心的是您想要的特性在目标版本中是否可用。例如,如果您从 DB2 ESE 迁移到 DB2 Express,则无法再使用分区表、MDC、存储优化、多温度存储和 DB2 Express 中不提供的其他任何特性。
即使您希望迁移到另一个产品,比如 InfoSphere® Warehouse(稍后您会了解更多),也无需对您的现有数据库做任何更改。

DB2 LUW 还是 DB2 UDB?

前面您看到了 LUW 一词,您知道它代表 Linux, UNIX, and Windows。曾经 DB2 for Linux, UNIX, and Windows 被称为 DB2 UDB(通用数据库)。现在(自 DB2 9 以来)不再使用 UDB 术语,您应当避免使用它。如果您发现有文章提到 DB2 UDB,可能是指版本 8 或更早版本。

在 Linux、UNIX 和 Windows 平台之间,有大约 90% 的 DB2 代码是通用的,每个操作系统上会预留 10% 的代码用于与底层操作系统的紧密集成(比如使用 AIX® 上的大页面或 Windows 上的 NTFS 文件系统)。

在本教程中,您会看到我们多次提到 DB2 for z/OS 和 DB2 for IBM i。这些也是 DB2 产品系列的一部分,它们运行于更高的平台(大型机)之上。虽然 DB2 for z/OS 和 DB2 for IBM i 数据库在特定硬件、操作系统和平台上运行,它们的 SQL 有 95% 可移植到 DB2 for Linux, UNIX, and Windows。

不应该将 DB2 for Linux on System z®(也成为 zLinux)与 DB2 for z/OS 相混淆。在这种情况下,运行于 zLinux 之上的 DB2 产品是 DB2 for Linux, UNIX, and Windows,任何 DB2 客户端或驱动程序都能够连接到它,无需 DB2 Connect(稍后会介绍)。

接下来我们将深入探讨可用的 DB2 版本。

DB2 for Linux, UNIX, and Windows 10.1 版本

DB2 for Linux, UNIX, and Windows 的不同产品版本支持用户选择最符合其要求的特定风格的 DB2。本节其余部分将介绍每个可用的产品版本,并简要概述每个产品版本提供的特性和功能。

DB2 Express-C

作为入门级版本,DB2 Express-C(也成为 “DB2 Express-Community 版本”)向您免费提供了所有核心 DB2 10.1 功能。它被设计为可在几分钟内上线运行,包含自主管理特性以及过去只能在付费版本中找到的一些功能。是的,它的开发、使用和分发都是免费的!

特性包括:

  • Self Tuning Memory Manager (STMM)
    • STMM 自动配置若干内存配置参数,简化了内存管理任务。
  • pureXML
    • 通过 pureXML,DB2 将 XML 文档存储为其原生格式,支持在 XML 列创建索引(实现更快搜索和数据检索),允许通过 XQuery 和 SQL 查询 XML 数据,等等。
  • 备份和存档日志压缩
    • 备份以及存档日志因其巨大的磁盘空间消耗量而著称。可以在 DB2 备份实用程序中使用 COMPRESS 子句来压缩备份,并且可以通过数据库配置来实现日志存档压缩(将 LOGARCHCOMPR1 设置为 ON)。存档日志压缩是在 DB2 10.1 中引入的。
  • Oracle 兼容性
    • 自版本 9.7 以来,添加到 DB2 中的突出的新特性之一是其与 Oracle 数据库的兼容性(也称为 Oracle 支持)。有了该特性,您可以在 DB2 数据库中使用 Oracle 的数据类型、PL/SQL、功能,等等。DB2 for Linux, UNIX, and Windows 与 Oracle 是 98% 兼容的,也就是说,如果您想从 Oracle 迁移到 DB2,只需关注 2% 的应用程序代码。这还意味着,Oracle 专家现在可以说他们可以使用 DB2 了!
  • Time Travel Query
    • DB2 10.1 的另一个新特性使我们能够通过执行查询弄清楚数据在特定日期和时间是什么样的(使用时态表,即用于保留时态数据的表)。由于时态表支持使用系统和应用程序日期/时间值,因此可以执行未来才会发生的更改操作!困惑?好奇?您可以在本系列的第三个教程中了解有关的更多内容:“使用数据库和数据库对象”。
  • 与 DB2 for Linux, UNIX, and Windows 和 Informix® 的联合
    • 该特性允许您访问其他 DB2 for Linux, UNIX, and Windows 数据库(同类联合)以及 Informix 数据库中的对象。
  • DB2 Text Search Extender
    • 有了该特性,您就可以在自己的查询中使用 CONTAINS 子句在具有与文本搜索兼容的索引的表中执行全文搜索。
  • Spatial Extender
    • 该特性可供您存储、检索、搜索和管理用河流、树林等 “地理特征” 表示的空间数据。
  • Resource Description Framework (RDF)
    • 也称为 NoSQL 图形存储,在 DB2 10.1 中引入了这一新特性,该特性支持开发人员使用 SPARQL 查询语言以较高速度处理海量的信息三元组或四元组。

DB2 Express-C 10.1 可用于以下操作系统:

  • Windows(32/64 位)
  • Linux(x86 32/64 位和 POWER 上)
  • Solaris(x86-64 上)

DB2 Express-C 有超过 16 种语言可用,并且所受的限制比其他免费的入门级数据库产品少。作为一个免费版本,DB2 Express-C 限制仅应用于 CPU(DB2 Express-C 最多使用 2 个核心)和内存(最多可以使用 4 GB 内存)。这意味着,如果您的服务器有 16 个核心和 20 GB 的 RAM,那么 DB2 Express-C 10.1 可以运行,不过它只会使用您的服务器 CPU 的两个核心以及 4 GB 的 RAM。如果您预计一个免费/社区版数据库管理产品会有更多限制,那么 DB2 Express-C 是一个例外!您的数据库容量能够大大增长,而且您能够拥有想要的任意数量的连接用户。

随着其他版本的重大更新发布,DB2 Express-C 的新版本也发布了。但是,更新仅能通过安装新版本来实现,而且一旦发布了一个新版本,就会从下载网站上删除旧版本的链接。

如果您的数据库需要更多处理能力或内存,或者您需要更多正式支持,那么通过访问修复包(产品更新)或 SQL 复制和高可用性灾难恢复 (HADR) 等其他特性,您可以将 Express-C 迁移到其他任何可用的 DB2 版本。

DB2 Express 版本

DB2 Express 版本是一个定价较低、功能全面的 DB2 版本,是中小型企业 (SMB) 的理想之选。DB2 Express 版本包含所有 Express-C 特性,并且还具有以下特性:

  • DB2 高级拷贝服务 (ACS)
    • 该特性支持您使用一些存储设备提供的快速备份技术执行备份和还原操作,这可以大幅加速备份和还原操作。
  • 在线重组
    • 该特性支持您在线发出 REORG(重组/重建表和索引的一个命令),也就是说,在使用数据库期间也可以访问其对象。
  • 基于标签的访问控制 (LBAC)
    • 这使得使用标签和安全策略保护数据成为可能。
  • 行和列访问控制 (RCAC)
    • RCAC 是在 DB2 10 中引入的,它能够保护对表行和列的访问,从而完善了现有的表权限模型。
  • Web 服务联合
    • DB2 可以使用 Web 服务描述语言 (WSDL) 通过 Web 服务包装器将对象与 Web 服务联合起来。
  • 同构 SQL 复制
    • DB2 Express 可以通过捕捉和应用代理使用其他 DB2 for Linux, UNIX, and Windows 数据库复制数据。
  • 高可用性灾难恢复 (HADR)*
    • 该特性支持您拥有一个服务器集群,其中包含一台主数据库服务器和多台备用数据库服务器(多机备用是 DB2 10.1 中的一个新特性)。当主数据库出现问题时,备用数据库服务器就可以接管任务,继续工作,最大限度地减少对应用程序的影响。具有该特性的另一个功能是 Read on Standby (ROS),它支持对一个备用数据库执行查询(SELECT 语句)。
  • Tivoli Service Automation for Multiplatforms (SA MP) 支持
    • 该支持和 HADR 一起使用,在出现故障时,可用于在一个两节点 HADR 集群中触发自动故障转移。

*要使用 HADR 特性,则必须在集群中的两台服务器上都许可 DB2 Express 版本产品。您可以在同一台服务器上托管多个备用数据库,这里只需要一个许可。

DB2 Express 版本 10.1 许可支持使用高达 8 GB 内存(总量),并且可以使用高达 4 核的服务器 CPU。这是能够让您从固定期限许可 (FTL) 中受益的惟一版本,FTL 是一个以低成本授予永久许可的年度订阅选项。作为一个价格低廉的版本(必须每年续订许可),DB2 Express FTL 非常适合来自 Express-C 的用户。其他许可方法也可用。

DB2 Workgroup Server Edition (WSE)

DB2 WSE 是面向部门、工作组或中型企业环境的完美数据库解决方案。它提供了 DB2 Express 中拥有的所有特性,是 DB2 pureScale 功能的入门级版本。DB2 WSE 可以在以下平台上使用:

  • Linux(Linux on System z 除外)
  • Windows
  • AIX
  • Solaris(SPARC 和 x64)
  • HP-UX 和 Itanium

DB2 WSE 较 Express 版本的主要优势是,它允许您使用更多 CPU 和 RAM。
DB2 Workgroup Server Edition 10.1 的使用被限制为每服务器 16 核以及 64 GB 的 RAM。如果 pureScale 特性在使用中,这些限制将适用于整个集群。但真正的好消息是,DB2 WSE 随带 pureScale,而并不另外收费。(稍后我们将更详细地介绍 pureScale 特性。)需要重点强调的是,DB2 pureScale 的安装要求和平台与常规 DB2 所需的安装要求截然不同。

DB2 Enterprise Server Edition (ESE)

DB2 ESE 适用于高性能、强大、随需应变的企业解决方案,旨在满足大中型企业的数据服务器需求。可以将它部署在任何规模的 Linux, UNIX, and Windows 服务器上,从一个处理器到上百个处理器,而且可以将它同时部署在物理和虚拟服务器上。

DB2 ESE 自带了 WSE 的所有功能,并且还具有以下特性:

  • 连接集中器
    • 支持 DB2 处理数以万计用户的工作负载,而无需为每个用户专门分配数据库服务器资源。该特性是 DB2 Advanced Enterprise Server Edition (AESE) 提供的 Workload Manager 的一部分。
  • Query Tuner
    • 提供单一查询调优建议和分析的一个实用程序。
  • 物化查询表 (MQT)
    • 支持将复杂查询结果存储在常规表中的结构。您可以定期刷新这些表,从而大大改善了结果访问。MQT 是解决复杂查询性能问题的关键。
  • 多维集群 (MDC) 表
    • MDC 是以灵活、持续和自动的方式沿着多个维度将表中的数据进行聚类的一种绝妙方法。它可以大大提高查询性能、大幅减少数据维护开销,比如插入、更新和删除操作期间的重组和索引维护操作。MDC 主要面向数据仓库和大型数据库环境,也可以用于在线事务处理 (OLTP) 环境。
  • 多温度数据管理
    • 这是 DB2 10.1 的一个新特性,DB2 基于您定义的存储组在不同设备类型之间分发数据,从而将频繁或经常访问的数据放在较快的存储器上,并且将不频繁访问或几乎不访问的数据放在较慢(且更便宜的)存储设备上。
  • 查询并行性
    • 该特性能够将一个查询分为多个部分,使用内部分区并行性并行地处理它们,从而提高性能。
  • 表分区
    • 一种数据组织方案,它根据一列或多列中的值把表数据划分为多个称为数据分区 的存储对象。每个数据分区单独存储,可位于不同的表空间、相同的表空间或两者兼而有之的环境中。

您可以购买任何以下额外扩展包,扩展 DB2 ESE 的一些功能:

  • DB2 存储优化特性:支持在 DB2 ESE 中使用自适应压缩和经典行压缩(在 DB2 AESE 中免费提供)。
  • DB2 pureScale 功能:稍后在教程中描述

DB2 ESE 的定价模型是以处理器价值单元 (PVU) 或每授权用户的形式提供的。因此,只要许可是规格的,一个 DB2 ESE 数据库就有权使用一台服务器中可用的所有资源。

DB2 Advanced Enterprise Server Edition (AESE)

DB2 AESE 是可用的最全面的 DB2 版本,是提供 DB2 ESE 中所有功能的一个强大的数据库管理解决方案,(不增加额外费用)增加了以下特性和优势:

  • 自适应压缩 和经典行(静态)压缩
    • 支持使用经典行压缩(其中使用表级字典压缩数据)压缩表中的数据,并通过使用页面级字典动态压缩数据来对其进行扩展。DB2 会在必要时压缩临时表,并在默认情况下压缩在已压缩的表中使用的索引。(DB2 ESE 用户必须购买 DB2 存储优化特性才能获得此功能。)
  • Workload Manager
    • 该实用程序监控针对数据库运行的应用程序的行为,并根据您在一个配置文件中指定的规则更改行为。(例如,您可以控制系统资源,好让数据库服务器不被部门或服务类的请求所淹没。)
  • 连续数据摄取
    • 一个高速客户端 DB2 实用程序,将来自文件或指定管道的数据流式传输到 DB2 目标库中,通常是为了填充数据仓库数据库。
  • 与 DB2 for Linux, UNIX, and Windows 和 Oracle 数据源的联合
    • 允许您查询位于 Oracle 数据库中的表的一个特性,就像它们是您的 DB2 数据库中的本地表一样。
  • IBM InfoSphere Data Architect
    • 用于设计、建模、发现、关联和标准化数据资产的一个完整解决方案。您可以使用它进行数据建模、转换和 DDL 生成,并且构建、调试和管理 SQL 存储过程和函数等数据库对象。
  • IBM InfoSphere Optim Configuration Manager
    • 提供关于如何更改数据库配置的建议,将状态和变更存储到一个存储库中。IBM InfoSphere Optim Configuration Manager 可以比较当前和历史数据,有助于理解和解决与配置变更相关的问题。
  • IBM InfoSphere Optim Performance Manager Extended Edition
    • 允许您识别、诊断、解决和预防 DB2 产品和相关应用程序(包括 Java 和 DB2 调用级接口 (CLI) 应用程序)中的性能问题。
  • IBM InfoSphere Optim pureQuery Runtime
    • 允许您部署高级 pureQuery 应用程序,使用静态 SQL 来实现各种各样的好处。它通过在一个易于使用的 Java 数据访问平台内利用 SQL 功能来缩小数据与 Java 技术之间的差距。它还增强了 Java 应用程序的安全性,有助于预防 SQL 注入这样的威胁。
  • IBM InfoSphere Optim Query Workload Tuner
    • 同时在 IBM Data Studio 全功能客户端和 IBM Data Studio 管理客户端启用所有调优特性

与 DB2 ESE 一样,pureScale 功能是单独定价的。在其他方面,DB2 AESE 的定价模型与为 DB2 ESE 使用的定价模型相同。

DB2 Database Enterprise Developer Edition (DEDE)

DB2 DEDE 是一个量身定制的特殊产品,为开发人员提供其他 DB2 版本中存在的几乎所有特性。有了 DB2 DEDE,应用程序开发人员可以使用高级 DB2 特性设计、构建应用程序并对其进行原型测试,无需花费不必要的钱来购买 DB2 许可。顾名思义,该版本仅用于进行开发,不能在生产中使用。

DB2 DEDE 通过添加以下功能进一步扩展了 DB2 AESE:

  • 数据库分区功能 (DPF)
  • DB2 Connect 功能
  • DB2 pureScale 功能

您必须为该产品的每个授权用户获得一个单独的用户许可;PVU 许可不可用。

DB2 客户端

不管您的数据库服务器上运行的是哪个版本的 DB2,您使用的任何应用程序都需要连接它。该连接通过 DB2 客户端和驱动程序完成,对于每个应用程序类型,总会有一个适合的客户端或驱动程序。在了解每个客户端产品提供的功能之后,您就能够选择最能满足您的应用程序需求的一款产品。

IBM 数据服务器可用的客户端和驱动程序类型如下:

  • IBM Data Server Driver Package
  • IBM Data Server Driver for JDBC and SQLJ
  • IBM Data Server Driver for ODBC and CLI
  • IBM Data Server Runtime Client
  • IBM Data Server Client

图 2图 2. 显示了每个 DB2 客户端和驱动程序提供的所有特性和功能。

图 2. 图 2 每个 DB2 客户端和驱动程序内的特性和功能
DB2 客户端和驱动程序以及其中的特性和功能

例如,如果您需要使用 ODBC 将一个 Windows 应用程序连接到一个 DB2 数据库,那么您需要安装 IBM Data Server Client Driver for ODBC/CLI。或者,如果您希望使用命令行处理器 (CLP) 管理 DB2,那么 IBM Data Server Runtime Client 就应该足够满足您的需要。

每个 DB2 数据库服务器版本都包含 DB2 Data Server Client,这意味着当您在数据库所在的服务器上工作时,您拥有到可用数据库的所有连接;这一连接还可用于与位于远程服务器上的数据库建立连接。(惟一的例外是 Express-C,它不包含复制中心。)
通过注册对任何 DB2 客户端或驱动程序的 DB2 Connect 个人版许可,也可以连接到 DB2 for System i 或 DB2 for System z 数据库。事实上,这是将应用程序连接到位于大型机的 DB2 数据库的最简单的方法。

DB2 数据服务器驱动程序和客户端是免费提供的,要使用它们无需额外的许可,并且驱动程序可嵌入到应用程序内。因此,可以重新分发 DB2 驱动程序。有关的更多细节,请从 参考资料 部分的链接访问 IBM DB2 10.1 信息中心。

DB2 Connect

之前提到过,DB2 在分布式系统以及 z/OS 和 IBM i 等平台上都受支持。事实上,DB2 for Linux, UNIX, and Windows 最初来自大型机。

但是为了能够连接到这样的数据库,仅仅下载和安装 DB2 客户端是不够的。从 DB2 客户端使用大型机数据库需要另一个称为 DB2 Connect 的产品。如果您想直接连接到在 DB2 for z/OS 或 DB2 for IBM i 上运行的一个数据库,则必须在您的 DB2 客户端内注册一个 DB2 Connect 许可密钥。如前所述,DB2 Connect 许可同时适用于客户端和驱动程序。

我们还可以拥有一台 DB2 Connect 服务器,它充当了大型机上的 DB2 与 DB2 for Linux, UNIX, and Windows 之间的网关,这样一来常规 DB2 for Linux, UNIX, and Windows 客户端就能够通过网关连接到大型机数据库。图 3图 3 展示了 DB2 Connect 在客户端和服务器环境中的工作方式。

图 3. 图 3. DB2 Connect 的工作方式
客户端和驱动程序如何通过 DB2 Connect 连接到大型机数据库

重要的是要理解 DB2 Connect 和 DB2 客户端是具有不同用途的不同产品。(“Connect” 一词有时会令人混淆)。每次看到对 DB2 Connect 的一个引用时,您必须记住,该产品用于建立常规 DB2 客户端和驱动程序(甚至数据库服务器)到大型机数据库(即 DB2 for z/OS 或 DB2 for i 数据库)的连接。我看到过人们下载 DB2 Connect 并将其作为常规客户端使用,现在它的用途不是这样的。


数据库工作负载和 DB2 10.1

何为数据仓库?

主要有两种类型的数据库应用程序工作负载:在线事务处理 (OLTP) 和数据仓库,后者包括报告、在线分析处理 (OLAP) 和数据挖掘应用程序。
DB2 10.1 对这两者都擅长。

OLTP 系统与商业智能 (BI) 数据仓库系统有何不同?通常用于访问数据的查询。OLTP 系统是 Web 订单系统的一个典型应用,其中您通过 Web 执行交易(比如订购产品)。这些应用程序以细粒度的单行查询为特征,使用可能更新少量记录的逻辑。相比之下,BI 类型查询在尝试找到海量数据中的数据模式时执行大型表扫描。如果您曾被要求汇总特定地区的所有销售额,那么这就是一个仓库查询示例。

很简单,一提到 OLTP,人们就会想到简短扼要。另一方面,一提到 BI,就会让人联想到大海捞针,或者汇聚大量数据用于制作报告。当然,这方面的词汇远不止这些,不过您明白就可以了。

包含业务数据(执行每日业务交易的数据)的系统是 OLTP 系统。不过,这些系统中包含的信息可供业务分析人员更好地了解业务运营状况。例如,他们可以看到在一年中哪个时间在哪些区域出售了哪些产品。这有助于识别异常或可用于预测未来销售情况。然而,如果分析人员直接访问业务 (OLTP) 数据来进行报告和其他 BI 活动,会有几个问题凸现出来:

  • 他们可能不具备查询业务数据库所需的专业知识。一般说来,具备业务数据库查询专业知识的程序员都在专职维护数据库及其应用程序。
  • 性能对于很多业务数据库(例如用于处理银行交易的数据库)来说至关重要。这些系统无法处理在业务数据存储上执行即席查询的用户。例如,考虑一下在线支付账单所需的时间。当您选择 OK 时,处理付款通常仅需几秒钟的时间。下面假设一名银行分析人员尝试探明如何利用现有的客户群赚取更多收益。这名分析人员执行了一个非常复杂的查询,以至于您的银行交易现在需要大约 30 秒完成!显然,这个执行时间是不能令人接受的(分析人员虚构出的新增费用也是不能接受的)。为此,业务数据存储和报告数据存储(包括 OLAP 数据库)通常是分开的。不过在过去的几年中,报告数据存储倾向于变为伪操作型和盛行的数据存储。这样的存储被称为操作数据存储 (ODS) 或者甚至主动数据仓库。以通信业为例。当这些公司尝试尽早识别欺骗性收费时,ODS 在它们当中很流行。DB2 是同时适合于业务和报告工作负载的少数数据库之一。
  • 业务数据通常不是供业务分析人员使用的最佳格式。对于分析人员来说,根据产品、地区和季节汇总的销售数据进行分析比根据原始事务数据进行分析更有用。

数据仓库可解决这些问题。在数据仓库中,您可以创建信息化数据(即从业务数据提取、然后经转换和清理供最终用户制定决策的数据)的存储。例如,一个数据仓库工具可能会复制业务数据库中的所有销售数据,执行计算来汇总数据,并将汇总的数据写入与业务数据分离开来的一个数据库中。然后最终用户可以查询这个单独的数据库(仓库),而不影响 OLTP 数据库。

针对不同工作负载的 DB2 解决方案

了解了 OLTP 与数据仓库之间的区别之后,下面我们看看 IBM 针对两种工作负载提供的解决方案。
前面已经讲过,在使用 DB2 处理两种工作负载时,DB2 提供了卓著的成果,但随着数据量的增加,您可能需要扩展您的环境(一台服务器可能需要成为一个服务器集群,可能需要更多内存、更强大的处理器,等等)。可以通过 InfoSphere Warehouse(针对数据仓库工作负载)和 DB2 pureScale(针对 OLTP 工作负载)以相同的方式扩展 DB2,图 4如图 4 中所示。

图 4. 图 4. 增长和扩展 DB2 环境的方法
图中显示了可用于扩展您的环境的产品,从 DB2 Express-C 到 pureScale 和 InfoSphere Warehouse

InfoSphere Warehouse

IBM Infosphere Warehouse 是以 DB2 企业版为核心的一个完整的仓库/OLAP/分析解决方案。该产品还包括数据库分区功能 (DPF);DPF 用于对不同数据库、服务器和存储中的数据进行分区,这样一来所有服务器都通过检索其自己(单独且不同的)那部分数据来处理查询,从而随着更多分区的使用实现高水平的并行性。在过去,可以将它添加 DPF 到 DB2 ESE。但从版本 10.1 开始,如果您想要使用 DPF,则必须使用 InfoSphere Warehouse。这样确实很合理,因为 DPF 适合于仓库/OLAP 工作负载,而 InfoSphere Warehouse 是专门为那些类型的环境而设计的 IBM 产品。

InfoSphere Warehouse 得益于 DB2 10.1 中的所有新特性,而且它提供了若干其他功能来优化您的数据仓库需求。有关 InfoSphere Warehouse 及其特性和功能的更多信息,参见 InfoSphere Warehouse 网站

DB2 pureScale

要在具有极高性能要求(通常通过昂贵和超大型服务器满足)的关键环境中(通常需要扩展处理能力)利用 DB2,DB2 for Linux, UNIX, and Windows 提供一个基于 SYSPLEX 耦合器(已经在 DB2 for z/OS 上使用过相当一段时间了)的新功能:pureScale。DB2 pureScale 是一个附加特性,能够让 DB2 更好地支持事务性工作负载需求。其使用能够让具有大(或巨大)在线事务处理 (OLTP) 量的应用程序通过一组服务器实现高水平的并行性,这组服务器作为一个集群工作,可访问共享存储。应用程序可以连接到 pureScale 集群的任何成员,而且每个成员都独立处理事务,提供预期性能并根据需要实现环境增长。对于缓冲一致性和全局锁机制,pureScale 集群依赖于一个称为 Cluster Caching Facility (CF) 的组件。图 5图 5 显示了一个简单的 DB2 pureScale 环境。

图 5. 图 5. 一个典型的 DB2 pureScale 环境
一个典型环境中的 DB2 pureScale 及其组件

一个 pureScale 集群扩展起来很简单:您只需添加一个新 “成员”(因为 pureScale 服务器中的每个服务器都会被调用),不会产生任何应用程序中断。也可以通过类似的方式删除成员。拥有这样的可伸缩性确实与众不同,但这不是使 DB2 pureScale 变得与众不同的惟一特性。通过使用在集群环境中工作的服务器,DB2 pureScale 提高了数据库可用性,每当一个服务器成员失效时,其请求就会自动路由到集群中的另一个成员。这一重新路由对于访问数据库的应用程序是透明的。同样的行为适用于 CF 故障(当多个 CF 服务器部署到位时)。

如前所述,DB2 pureScale 是一个单独付费的附加产品,可与 DB2 WSE(免费)、DB2 ESE 和 DB2 AESE 一同使用。其使用受限于特定硬件,且只能在某些版本的 IBM AIX(AIX 6.1 和 7.1)和 Linux(SUSE 和 Red Hat Enterprise Linux - RHEL)上运行。有关的更多信息,请参阅本教程结尾提供的链接。pureScale 集群的每个成员都需要一个 DB2 许可和一个 pureScale 许可。然而,对于已使用过的 CF 服务器,不需要其他许可。

在 DB2 10.1 之前,如果您想要使用 DB2 pureScale,则需要安装一个特殊的 DB2 版本:DB2 9.8。(该版本是 DB2 pureScale 的第一个实现。)现在,对于 DB2 10.1,pureScale 已被集成到了 DB2 的核心。务必注意的是,在从传统 DB2 迁移到 DB2 pureScale 时,不需要进行任何应用程序更改。事实上,对于应用程序来说,似乎使用了传统 DB2,但性能得到了大大提高。


DB2 工具

DB2 提供了一系列工具,支持您在本地或远程访问、查询和管理您的 DB2 数据库环境。许多工具拥有单独的图形用户界面(比如 Data Studio 和 Replication Center),而其他工具则为命令行工具;本节中我们将更详细地探究这两种类型的工具。

命令行工具

DB2 命令行处理器 (CLP)

命令行处理器 (CLP) 是一个用于与 DB2 实例和数据库交互的命令行接口。您会在每一个 DB2 版本、每一个 DB2 客户端(而非驱动程序包)都找到它。

可在交互模式(通过执行一次 db2 命令)或非交互模式(对从系统命令提示符上运行的命令加上前缀 “db2”)下运行 DB2 CLP。

例如,在交互模式下,DB2 命令执行如下所示:

db2 => list applications

但在非交互模式下,同样的命令执行起来如下所示:

db2 list applications

在使用非交互模式时,您可以在需要时执行操作系统的命令。但是如果您需要在交互模式下执行一个操作系统命令,则必须在命令前附加惊叹号 (!)。例如:

db2 => !dir

在 Windows 上,要在交互和非交互模式下启用 DB2 CLP,则必须单击 DB2 Command Window 图标或运行 db2cmd 命令。当从另一个命令终端调用 db2cmd 命令时,Windows 会为 DB2 CLP 的非交互使用创建一个新窗口。 图 6图 6 展示了 DB2 CLP 在交互模式下是如何运行的。

图 6. 图 6. 在交互模式下运行 DB2 CLP
在交互模式下从命令行调用 DB2 CLP

您还必须使用一个命令窗口在交互模式下运行 CLP。在 Windows 服务器上安装 DB2 时,会创建一个名为 “DB2 Command Line Processor” 的菜单项,一经选择,该菜单项会在交互模式下启动 CLP。图 7图 7 显示了用于在交互模式下启动 CLP 的菜单项。

图 7. 图 7. 用于启动 DB2 命令行处理器的菜单项
图中显示了具有 DB2 图标的操作系统菜单

在 Linux 和 UNIX 上运行 CLP

在 Linux 和 UNIX 上,您需要 “获得” DB2 配置文件才能使用 CLP。当您使用 DB2 实例所有者用户 id 登录时,会自动完成 DB2 配置文件的获取。如果您不是实例所有者,则必须执行以下操作才能使用 DB2 CLP:

  1. 找到实例所有者用户的主目录(也称为 instance-home)。
  2. 在实例主目录内,您会找到一个 sqllib 子目录。在该子目录内,会找到一个名为 db2profile 的文件。
  3. 在 db2profile 文件中如下执行命令:(假设 DB2 实例主目录是 /home/db2inst1)
$ . /home/db2inst1/sqllib/db2profile

不要忘记在点与文件位置之间保留空格,否则命令是无效的。该执行不会返回任何输出,在执行该命令之后,您就会处于 DB2 CLP 非交互模式。试一下!您可以将该命令添加到用户配置文件(通常是用户的主目录内名为 .profile 或 .bashrc 的一个隐藏文件),这样一来,每当您登录时,就会自动执行该命令。

了解了如何访问 DB2 CLP 之后,下面我们看看它的一些基本功能。我要使用非交互模式显示命令,不过您可以随意在交互或非交互模式下使用 DB2 CLP。是否想从非交互模式切换到交互模式?只需在命令提示符发出命令 db2。要随时获取帮助,请输入 db2 “?"(非交互模式)或 ?(交互模式)。图 8图 8 显示了调用帮助时生成的输出。

图 8. 图 8. DB2 ? 命令
屏幕截图显示了调用 ? 命令时提供的帮助。

要获取有关特定命令的帮助,运行命令 “? <DB2_Command>”。例如:

db2 “? list utilities"

度量您的查询执行时间

在 Linux 和 UNIX 上,您可以利用 time 实用程序来度量给定语句或命令的执行时间(在非交互模式下)。例如:

$ time db2 "select count(*) > from department" 1 ----------- 14 1 record(s) selected. real 0m0.033s user 0m0.013s sys 0m0.015s

您可能注意到了,本例中提供的 DB2 命令是放在双引号中的。在 UNIX 平台上,如果您希望在非交互模式下使用 DB2 CLP 执行这些命令/语句,只要 DB2 命令和 SQL 语句包含特殊字符(* ( ) \ & | < > ? !),就必须将它们放在双引号中。这是因为 UNIX 操作系统在解译这些字符时可能会产生意外的结果。

DB2 CLP 使用 DB2 的目录文件建立数据库连接,这意味着,如果您希望使用远程数据库,则必须在本地将其服务器编录为一个节点,而且必须将数据库本身编录在系统数据库目录中。(您可以在本系列的第三个教程 “使用数据库和数据库对象” 中详细了解 DB2 的目录文件)。本地数据库是自动编录的,因此您可以通过 CLP 轻松访问它们。

可以使用 CLP 对 DB2 数据库进行任何 SQL 查询。但是,在更新数据或更改数据库中对象的定义时,默认情况下,CLP 会在每个语句执行完成后自动提交更改。可以更改该行为以及 CLP 的若干其他默认行为。要检查可以在 CLP 中更改什么选项,请运行以下命令:

$ db2 list command options

执行该命令时,您会看到如下所示的输出:

清单 1. 清单 1 命令选项
$ db2 list command options

     Command Line Processor Option Settings

 Backend process wait time (seconds)        (DB2BQTIME) = 1
 No. of retries to connect to backend        (DB2BQTRY) = 60
 Request queue wait time (seconds)          (DB2RQTIME) = 5
 Input queue wait time (seconds)            (DB2IQTIME) = 5
 Command options                           (DB2OPTIONS) =

 Option  Description                               Current Setting
 ------  ----------------------------------------  ---------------
   -a    Display SQLCA                             OFF
   -c    Auto-Commit                               ON
   -d    Retrieve and display XML declarations     OFF
   -e    Display SQLCODE/SQLSTATE                  OFF
   -f    Read from input file                      OFF
   -i    Display XML data with indentation         OFF
   -l    Log commands in history file              OFF
   -m    Display the number of rows affected       OFF
   -n    Remove new line character                 OFF
   -o    Display output                            ON
   -p    Display interactive input prompt          ON
   -q    Preserve whitespaces & linefeeds          OFF
   -r    Save output to report file                OFF
   -s    Stop execution on command error           OFF
   -t    Set statement termination character       OFF
   -v    Echo current command                      OFF
   -w    Display FETCH/SELECT warning messages     ON
   -x    Suppress printing of column headings      OFF
   -z    Save all output to output file            OFF

您可以为在非交互模式下执行的每个命令更改可用的任何选项。在交互模式下,更改选项会影响在 CLP 会话中执行的所有后续命令。

加号 (+) 和减号 (-) 字符可用于启用或禁用一个选项。例如,对于 auto-commit 选项:

+c 或 -c-(功能上是相同的)将 auto-commit 切换为 ON(默认设置),-c 进行相反的操作,也就是说,它会将 auto-commit 选项切换为 OFF。

以下示例显示了几个语句,在这些语句的执行过程中修改了 CLP 选项。

要在 Windows 服务器上发出管理命令,比如 db2start(实例启动)或 db2stop(实例停止),则需要在管理模式下打开一个 DB2 命令窗口(参见图 6图 6)。

清单 2. 清单 2 语句执行过程中修改的 CLP 选项
$ db2 "select sum(salary) from employee"

1
---------------------------------
                       2686777.50

  1 record(s) selected.

$ db2 +c "update employee set salary = salary*1.5"
DB20000I  The SQL command completed successfully.
$ db2 +c "select sum(salary) from employee"

1
---------------------------------
                       4030166.25

  1 record(s) selected.

$ db2 rollback
DB20000I  The SQL command completed successfully.
$ db2 "select sum(salary) from employee"

1
---------------------------------
                       2686777.50

  1 record(s) selected.

要在 Windows 服务器上发出管理命令,比如 db2start(实例启动)或 db2stop(实例停止),则需要在管理模式下打开一个 DB2 命令窗口(参见图 6图 6)。

CLPPlus

和 DB2 CLP 一样,CLPPlus 是 DB2 数据服务器驱动程序包和客户端上的一个轻量级命令行处理器。CLPPlus 通过添加以下功能扩展了 DB2 CLP 的一些特性:

  • 支持连接到仅给定了数据库名称、端口、用户 ID 和密码(不需要 DB2 目录文件)的数据库
  • 存储脚本、脚本片段、SQL 语句、SQL PL 语句和 PL/SQL 语句的一个文本缓冲
  • 格式化脚本和查询输出的多个选项

CLPPlus 还提供一种可自定义的查询结果显示方式,其中在执行查询时以更友好的方式呈现数据,并且呈现数据的方式是可以定制的。例如,可以格式化数值结果、更改列标题,等等。

CLPPlus 也是接纳使用其他数据库管理产品的用户的一种不错方式。有了 CLPPlus,其他 RDMS 产品用户习惯于使用的大部分选项和功能仍然可用,外加 IBM DB2 的功能。

您可以从操作系统菜单访问 CLPPlus,或者在命令行终端输入命令 clpplus。在从命令行终端调用 CLPPlus 时还可以指定数据库连接,方式是输入以下命令:

$ clpplus userid@hostname:port_number/dbname

例如,如果您知道自己可以通过端口 50005 访问一个名为 SAMPLE 的数据库,并且您的用户 ID 是 idngf01,那么可以通过执行以下命令启动 CLPPlus,并建立到 SAMPLE 数据库的连接:

$ clpplus idngf01@localhost:50005/sample

图 9图 9 显示了调用 CLPPlus 后成功建立了数据库连接时生成的输出类型。

图 9. 图 9. 使用数据库连接信息启动 CLPPlus
图中显示了 CLPPlus 成功连接到一个数据库。

一旦启动了 CLPPlus,您可以使用以下命令获取提供的帮助主题的索引:

SQL> help index

图 10图 10 展示了显示帮助主题时生成的输出。

图 10. 图 10. CLPPlus HELP INDEX 命令的输出
图中显示了可在 CLPPlus 中使用的一些命令,以及 HELP INDEX 的输出

要获取有关任何可用命令的具体帮助,只需输入 HELP 然后输入命令。
例如:

SQL> help set

通过使用 SET 命令更改参数,可以在执行查询时更改显示数据的方式。还可以在执行命令之前(或收到错误消息之后)通过 EDIT 命令对其进行编辑。调用 EDIT 命令之后,会打开一个默认编辑器(在 Windows 上是 Notepad,在 Linux 上是 vi),您可以从中创建和保存脚本。编辑并保存脚本之后,编辑器将会关闭,您可以通过 CLPPlus RUN 命令运行编辑过的命令。

命令可以有多个行(斜杠符号 ("/") 是编辑器的一个完成指示符),而且因为有 CLPPlus 缓冲,所以您可以按下键盘上的向上和向下箭头键浏览输入的所有命令(因为启动了 CLPPlus)。

db2pd — 监控和问题诊断工具

DB2 问题诊断工具(或 db2pd)是一个具有命令行界面的强大工具,使您只需极少的系统交互即可监控和诊断您的数据库。(db2pd 直接附加到 DB2 共享内存集,用于检索系统和事件监控信息;因此,它不获取锁存器或消耗系统资源。)db2pd 工具在交互和非交互模式下均可运行。

图 11图 11 显示了使用 db2pd 在交互模式下检索有关 DB2 内存使用率的信息。

图 11. 图 11. 在交互模式下运行 db2pd
图中显示了在交互模式下运行的 db2pd。

要在非交互模式下运行 db2pd,只需发出命令 db2pd,该命令后面跟着一些适当的选项。

例如:db2pd -dbptnmem

数据复制工具

DB2 提供两种不同的解决方案供您复制数据到关系型数据库(包括一些非 IBM 数据库)或从关系型数据库复制数据:SQL 复制和 Q 复制。两种方法都可以由 复制中心(一个用于复制设置和维护的独立 GUI)和复制配置命令行处理器 (ASNCLP) 加以配置和维护。在 DB2 10 Express-C 和 Express 版本上没有提供这些工具。

SQL 复制的配置更简单一些,且不依赖于其他产品进行同构复制,而 Q 复制最常用于这样的情况,也就是说,需要复制数据库的很大一部分内容,或者需要将大量数据转移到数据集市/数据仓库。Q 复制要求安装 InfoSphere Replication 服务器以及 WebSphere® MQ(两者都是单独定价的)。由于可以在这两个产品之间划分工作负载,所以 Q 复制能够以极低的延迟复制大量数据。

其他工具

几乎任何 DB2 产品版本中都能找到的其他有用工具包括:

  • Visual Explain:对为一个查询(SQL 或 XQuery)选定的访问计划提供可视描述,从而帮助您更轻松地解决查询性能问题。Visual Explain 是 IBM Data Studio(稍后会讲到)的一部分。可用于格式化和显示 Explain 数据的其他两种工具是 db2expln 和 db2explnfmt。
  • db2look:该工具可用于为整个数据库、特定架构或一组表生成 DDL 语句。db2look 是一个命令行工具;不过,其功能在 IBM Data Studio 中也通过 “Generate DDL” 选项提供,可用于通过该工具可访问的大部分对象。
  • db2level:该工具用于显示与已安装 DB2 产品的当前级别(版本和发行版)相关的信息。
  • db2licm:该工具用于确定是否为已安装产品应用许可或显示许可信息。
  • db2cfexp / db2cfimp:使用这些实用程序,您可以一次性导出和导入数据库、数据库管理器实例和服务器的配置信息。
  • db2advis:使用这个极其有用的实用程序,您可以让 DB2 就要创建(或删除)哪些索引和 MQT 给出建议,从而提高性能。
  • db2top:该工具用于实时监控您的数据库(GUI / Windows 中不可用)。
  • db2diag:使用该诊断工具,您可以了解您的 DB2 环境现在发生了什么。

还有很多您可以了解和利用的其他工具。我建议您从 Information Center for DB2 10.1 了解更多有关这些工具的信息。


IBM Data Studio

每个经验丰富的 DBA 管理数据库服务器所必不可少的东西是强大而高效的命令行工具。那么新手呢?
图形用户界面 (GUI) 工具对于刚刚开始学习任何产品的用户来说是一个不错的选择,特别在涉及到数据库管理系统时。通常,GUI 工具对于大多数技能娴熟的专家来说也很有帮助,只是无法记住所需的所有命令!

IBM Data Studio 是用于 DB2 管理和开发的一个全新标准 GUI 工具。通过一个集成的模块化环境,Data Studio 为 DB2 for Linux, UNIX, and Windows、DB2 for z/OS、DB2 for i、Informix 和其他非 IBM 数据库产品提供协作式数据库开发工具,对若干编程语言提供支持。

您可以免费下载 Data Studio,或者可以在下载产品时随同 DB2 一起获取它(使用 Download Director 并选择 Data Studio)。也可以在通过 DB2 安装 launchpad 安装 DB2 时下载 Data Studio。当前可用的 Data Studio 版本(在编写本教程时)是 3.1.1。

图 12图 12 显示了该版本的启动面板。

图 12. 图 12. Data Studio 3.1.1 的启动面板
图中显示了 Data Studio 初始屏幕(程序启动)

Data Studio 组件

在下载 IBM Data Studio 时有 3 个不同的组件可供选择(全部免费):

  • IBM Data Studio Administration 客户端
  • IBM Data Studio Full 客户端
  • IBM Data Studio Web 控制台

Administration 客户端是一个轻量级的数据库管理工具,满足 DB2 for Linux, UNIX, and Windows 和 DB2 for z/OS 的大部分基本开发需求。Full 客户端扩展了 Administration 客户端的功能,可支持 Java、SQL PL 和 PL/SQL 例程、XML 和其他技术的开发。您必须确定哪个版本(Administration 或 Full 客户端)更能满足您的需求。Full 和 Administration 客户端组件都可以安装在 Linux 和 Windows 平台上。

Web 控制台是对 Data Studio 的补充,增加了监控和作业管理,两者兼可通过 Web 浏览器访问(稍后您将更多地了解该产品)。

开始使用 IBM Data Studio

如果您已经习惯使用基于 Eclipse 的应用程序,那么很可能在使用 Data Studio 界面时也会得心应手。接触该工具一段时间之后,来自 DB2 Control Center 的用户会发现 Data Studio 非常直观且易于使用。 图 13图 13 显示了 IBM Data Studio 的基本界面。

图 13. 图 13. IBM Data Studio 的基本界面
图中显示了 Data Studio 树和其他区域。

Data Studio 中的一个重要概念是,几乎所有功能都通过上下文菜单访问,每当您右键单击想操作的对象时,该菜单就会出现。要弄清任何对象的可用选项有哪些,只需突出显示该对象,然后点击鼠标右键!

首次启动 Data Studio 时,都会显示 Task Launcher 视图,它欢迎您使用 Data Studio,并向您提供可以执行的一些任务的列表。Task Launcher 视图图 14如图 14 所示。

图 14. 图 14. Task Launcher
图中显示了 Data Studio Task Launcher。

要从 Task Launcher 连接到一个数据库,请选择 Administer,然后是 Connect and browse a database。然后当 Select Connection 对话框出现时,单击 New。(您可以通过选择 Administration Explorer 视图并单击 New 按钮达到同样的目的)。 图 15图 15 描述了以这种方式建立新连接必须选择的菜单项。

图 15. 图 15. 建立新数据库连接
图中显示了创建新数据库连接的途径。

当 New Connection 对话框出现时,从最左边的框中选择 DB2 for Linux, UNIX and Windows(以连接到 DB2 for Linux, UNIX, and Windows 数据库),并输入适当的信息,比如数据库名称、主机名、端口、用户 ID 和密码。图 16图 16 显示了一个 New Connection 对话框,其中的输入字段已经填入相关信息。

图 16. 图 16. New Connection 对话框
尝试连接到一个新数据库时显示的对话框。

(在连接到任何数据库之前,首先需要创建数据库;DB2 附带了一个 SAMPLE 数据库,可以通过执行命令 db2sampl 或从 First Steps 实用程序进行适当的选择来随时创建该数据库。)

DB2 Control Center(已弃用)

在 DB2 10.1 之前的版本中,有一个名为 Control Center 的 GUI 工具,它提供向导来指导数据库管理员执行完成特定任务(比如备份一个 DB2 数据库)所需的步骤。Control Center 在 DB2 9.7 中被弃用,在 DB2 10.1 中也不受支持。

IBM Data Studio 和 Data Studio Web 控制台取代(在某些情况下,扩展)了 Control Center 的大部分功能;都提供了任务助理来取代 Control Center 的向导,帮助您执行数据库管理/开发任务(并且帮助您更好地理解完成每个任务需要些什么)。有关 Control Center 与 Data Studio 之间完成的特性和功能映射,参阅这篇 developerWorks 文章:从 DB2 Control Center 迁移到 IBM Data Studio

New Connection 对话框上的 Test Connection 按钮可用于检查输入的数据的有效性;按下该按钮时,它会尝试使用提供的凭据和连接信息连接到指定的数据库。

需要注意的是,无需安装 DB2 客户端/驱动程序包您就可以使用 Data Studio 的大部分功能。这是因为 Data Studio 自带的驱动程序(通常通过 JDBC)提供到若干数据库产品的连接。因此,如果您计划远程管理 DB2,或计划使用远程数据库服务器进行开发,只需本地安装 IBM Data Studio 即可。

了解了如何在 Data Studio 中建立数据库连接之后,下面我们看一下 Data Studio 的界面。

作为一个基于 Eclipse 的应用程序,IBM Data Studio 让您可以在不同透视图之间做出选择,从而使其使用更针对您的需求。例如,当您选择 Database Administration 透视图时,Data Studio 的界面会转而显示与数据库管理相关的视图元素,比如 Administration Explorer、Job Manager,等等。图 17图 17 显示了如何选择 Database AdministrationDataIBM Query Tuning 透视图。

图 17. 图 17. 透视图切换
图中显示了 Data Studio 中的透视图。

顾名思义,透视图仅影响您在 Data Studio 中所做任务的查看方式:在透视图之间切换时不会丢失任何信息,只会影响已完成任务的查看方式。有各种透视图可用。图 18图 18 显示了 Data Studio Full 客户端中存在的所有透视图。

图 18. 图 18. Data Studio Full 客户端提供的不同透视图
一列图标及其说明,描述了 Data Studio 中提供的透视图

接下来我们将注意力转向 Data Studio 中提供的一些基本功能。

图 19. 访问对象和数据

通常一个用户希望在一个数据库管理工具中看到的是查看数据库表和视图的功能。

要查看一个数据库内的表,您可以浏览 Administration Explorer 视图(Database Administration 透视图下面),并且在成功连接到一个数据库之后,Tables 文件夹会显示在屏幕左手边的树中。单击 Tables 文件夹后,您将能够得到 Editors 区域提供的所有表的列表。
通过 Data 透视图访问表有不同的路径:您必须经过 Data Source Explorer 视图并打开 Schemas 文件夹,获取选定架构内定义的一系列表。

图 19图 19 显示了如何使用 Database Administration 透视图访问 SAMPLE 数据库中的表。

图 19. 图 19 使用 Database Administration 透视图访问表
Data Studio 中的表及其内容

如您所见,使用 Database Administration 透视图时,Administration Explorer 视图中的每一个文件夹都会向您显示特定类型的所有现有对象(例如,所有表、所有架构、所有序列,等等)。但当您切换到 Data 透视图时,导航遵循一个自上而下的层次结构。在一个数据库内您可以看到架构,而在每个架构内您可以看到在该架构内定义的 表、视图、序列等。您可以选择导航方式。

右键单击一个表将显示上下文菜单,包含可以对该表执行的所有选项。使用这个上下文菜单,您可以随意操作指定的表。

Data Studio 还有一个图表编辑器,可用于更好地直观显示一个数据库的对象和它们之间的关系。图 20图 20 向您显示了调用图表编辑器时必须选择的菜单项。

图 20. 图 20. 调用图表编辑器
图中显示了用于打开图表编辑器的菜单

系统会提示您随需选择其他表,然后 Data Studio 会显示您选择的表,根据要求用图表排列。图 21图 21 显示了图表编辑器生成的一个图表。

图 21. 图 21. 图表编辑器界面
图表中显示的表对象。

通过使用表,比如图表编辑器生成的那个表,更容易让您理解结构和对象关系。

更改数据

使用上下文菜单,还可以浏览和编辑数据。(只需右键单击一个选定的表并选择 Browse DataEdit Data 菜单选项。)您可以联机编辑数据,在保存数据时,Data Studio 会向您显示用于进行更改的 SQL 语句。
Data Studio 将变更突出显示为黄色;图 22图 22 显示行和列数据发生了变化的一个示例。 图 23图 23 显示了用于进行更改的 SQL。

图 22. 图 22. 显示修改的值的方式
变更的数据用黄色突出显示。
图 23. 图 23. 用于进行如图 22 所示更改的 SQL
Data Studio 向您显示了执行更改所用的 SQL

对数据库执行查询

Data Studio 辅助您编写 SQL 或 XQuery 查询。要创建一个新的脚本(即不包含任何语句的脚本),只需突出显示一个数据库对象,右键单击它调出上下文菜单,然后选择 New SQL Script 选项。(通过右键单击您在 Data Project Explorer 下选择的任何项目中的一个 SQL Scripts 文件夹,您可以完成同样的工作,上下文菜单会显示为 “New SQL or XQuery Script”)。
当保存所选择的项目时,您创建的所有 SQL 或 XQuery 脚本会显示在项目内的 Data Project Explorer 中。

与其他集成开发环境 (IDE) 一样,Data Studio 可以通过自动完成对象名辅助您在脚本中输入查询。该功能通过 Content Assist 上下文菜单项提供。图 24图 24 显示了该菜单项的外观。

图 24. 图 24. 使用 Content Assist
Data Studio 使用 Content Assist 帮助您自动完成命令。

Data Studio 还可以帮助您格式化任何未格式化的 SQL。图 25图 25 显示了如何使用 “Format SQL” 菜单项向一个未格式化的 SELECT 语句应用适当的格式化。

图 25. 图 25. 使用 Format SQL
Data Studio 显示了如何格式化 SQL 来改善可视化效果。

还有一个 Content Tip 功能,在您编写脚本时辅助给出语法提示。图 26图 26 显示了 Content Tips 的显示方式。

图 26. 图 26. Content Tips
Content Tips 的显示方式。

完成脚本编写并准备提交脚本/查询到 DB2 以供执行时,您只需按下 Run SQL 按钮(类似于 Play 按钮的一个内含三角形的绿色圆圈)。这也可通过按下 F5 键来完成。另外,如果您的脚本包含多个查询,您可以只选择您希望执行的查询的文本来执行各个查询,然后按下 Run SQL 按钮或 F5 键。图 27图 27 显示了 Run SQL 按钮的外观( 在 Data Studio 工具栏上)。

图 27. 图 27. Run SQL 按钮
Run SQL 按钮外观( 在 Data Studio 工具栏上)。

通过该工具栏,还可以显示查询访问计划(Open Visual Explain 按钮),调优查询(Start tuning 按钮),导入或导出 SQL 脚本(In-Box 和 Out-Box 按钮),或者安排一个查询稍后执行(Clock 按钮)。

检索结果

在您执行查询时,Data Studio 以文本形式或在网格中显示结果。图 28图 28 显示了如何将查询结果返回为网格形式;图 29图 29 显示了作为文本返回的查询结果。

图 28. 图 28. 以网格模式显示的查询结果
如何将查询结果返回为网格形式。
图 29. 图 29. 以文本模式显示的查询结果
作为文本返回的查询结果。

在 Data Studio 内调优查询

在理想情况下,DB2 总是会在 “一眨眼之间” 返回某个查询的结果。但在现实世界中,您需要创建适当的索引和物化查询表 (MQT),保持统计数据最新,并(通过重组)消除数据中的任何碎片,DB2 才能提供最佳的查询响应时间。DB2 优化器可以出色地选择访问计划,检索解析一个查询所需的数据(并且随新版本的发布不断得到改善),但有时一些查询并没有像预期那样执行。对于这些类型的查询,Data Studio 可以帮助您识别问题,并建议采取适当的应对措施来解决性能问题。

Data Studio 免费提供基本的调优功能(统计数据建议程序、查询格式化、访问计划图和报告),而且许多这些功能可通过购买 InfoSphere Optim Query Tuner for Linux, UNIX and Windows 加以扩展。

与大部分 Data Studio 功能一样,您可以从许多地方调用查询优化器。一种可行的方式是通过 SQL 脚本编辑器(通过按下 Start tuning 图形按钮)进行调用。按下该按钮并与查询优化器助理之后,您应当会得到一个图 30如图 30 所示的屏幕。

图 30. 图 30. Query Tuner Workflow Assistant
屏幕中显示了查询访问计划和其他调优选项。

仔细看一下图 30图 30,您就看到为特定查询显示的一个数据访问计划。通过分析访问计划,您可以确定一个查询是否高效地使用了索引。Data Studio 还可以建议对一个查询频繁访问的表执行统计。在使用 InfoSphere Optim Query Workload Tuner(单独付费)或 DB2 Advisor 时,会有更多的调优选项可用,后者可以通过执行 db2advis 命令加以调用。

使用 Data Studio 进行数据库管理

之前,我们了解了如何切换到 Database Administration 透视图,使 Data Studio 内的数据库管理工作变得更方便。切换到这一透视图之后,您会看到 Administration Explorer 视图。

在 Administration Explorer 视图内,有很多操作对象可供选择。可以更改表、列、索引等对象,对于您所做的每个变更,Data Studio 都创建了一个分析影响的变更计划,该计划可用于实现变更或安排稍后进行变更。变更计划保存在 Administration Explorer 视图上的 “Change Plans” 文件夹中。拥有未决变更计划的对象的图标变为三角形符号(类似一个三角形),以直观方式表示它们有待解决的变更。

图 31图 31 显示了如何更改一个表中的列,以及查看生成的变更计划需要选择的菜单项。

图 31. 图 31. 修改一个表的结构,通过一个变更计划查看它
表的结构因列的变更而变更,而 Data Studio 为其创建了一个变更计划。

图 31如图 31 中所示,还有一个名为 Review Undo Script 的选项,您可以使用该选项按需恢复所有变更。当选中 Review and Deploy 菜单项时,生成的变更计划会显示在 Review and Deploy 对话框中,您可以选择立即执行计划或安排在稍后的日期和时间执行它。图 32图 32 显示了该对话框的外观。

图 32. 图 32. Review and Deploy 对话框
变更计划查看对话框。

如果您选择立即执行变更计划,执行结果将显示在 SQL Results 窗口中。图 33图 33 显示了该窗口的布局。

图 33. 图 33. 更改对象之后的 SQL Results 窗口
审查过后,变更计划被部署。

为执行管理任务,Data Studio 使用 Secure Shell (SSH) 连接到指定的数据库服务器。对于 Windows 操作系统,DB2 10.1 包括一个轻量级 SSH 服务器;在 Linux 和 UNIX 服务器上使用面向相应操作系统的 SSH 服务器。在 Windows 上连接到旧版 DB2 时,如果没有 SSH 支持,Data Studio 还可以利用 Database Administration Server (DAS)。(DB2 8.2 和早期版本只使用 DAS;在 DB2 9.7 中 DAS 被弃用,在后续版本中可能不会使用。)

通过 Web 控制台监控和管理作业

Data Studio Web 控制台可单独下载,且可用于监控数据库运行状况和可用性,并通过一个 Web 浏览器管理调度作业。Data Studio Web 控制台包含一个可从任何地方访问的 Web 服务器,即拥有 Web 服务器且可以连接到用于监控 DB2 数据库的 Web 控制台的任何设备。因此,您可以使用智能手机或平板电脑密切监视数据库,该操作并不仅仅局限于计算机。Data Studio Web 控制台可用于 Linux、AIX、HP-UX、Solaris 和 Windows 平台。图 34图 34 显示了 Data Studio Web 控制台的开始屏幕。图 35图 35 显示了如何使用 Data Studio Web 控制台监控数据库的运行状况。

图 34. 图 34. Data Studio Web 控制台
审查过后,变更计划被部署。
图 35. 图 35. Data Studio Web 控制台的 Health Summary 面板
Data Studio Web 控制台中的 Health Summary 面板。

DB2 中的非关系型数据概念

现在关系型数据库管理系统越来越被用于存储不太传统的数据类型,比如音频剪辑、视频剪辑、图像、图形、二进制文件以及您可以想到的几乎任何其他数据类型。可以通过使用大对象 (LOB)、扩展标记语言 (XML) 和结构化数据类型将这样的数据存储在 DB2 数据库中。虽然您会在本教程系列的其他部分更详细地了解数据类型,这里我们还将探讨 LOB、XML 和结构化数据类型。

大对象 (LOB)

DB2 有若干内置数据类型,可用于存储各种类型的 “传统” 信息,比如数字、字符和字符串、日期、时间和时间戳。不过有时候您可能想要或需要存储 “非传统的” 大数据块,这些数据太大,不宜于存储为更为传统的数据类型。对于这些情形,DB2 提供以下大对象 (LOB) 数据类型:

  • 二进制大对象 (BLOB),用于存储文件和任何可变长度二进制数据;
  • 字符大对象 (CLOB),用于存储大文本数据值;
  • 双字节字符大对象 (DBCLOB),用于存储大图形/双字节字符数据;
  • 国家字符大对象 (NCLOB),实际上与 DBCLOB 一样,支持与 Oracle 应用程序的兼容性。

从应用程序角度来看,大对象数据的访问有点不同,取决于所检索的 LOB 数据的类型。如果更为传统的字符数据类型不能满足数据存储需要时,可以考虑使用 CLOB 数据类型来进行存储。因此数据的定位、检索、插入、更新和删除是应用程序察觉不到的。

对于 BLOB 数据来说,由于二进制值通常是人眼无法理解的,所以需要编写应用程序来处理这样的数据。一些编程语言使用 SELECTBLOB 和 UPDATEBLOB 这样的语句来专门获取和更新二进制数据。

LOB 定位器

LOB 和 XML 值会非常大(高达 2 GB),而且将这样的值从数据库服务器传输到客户端应用程序主机变量会很耗时。因为这个原因,大部分应用程序倾向于分段(而非作为一个整体)处理 LOB 值。C/C++ 和嵌入式 SQL 应用程序可以使用大对象定位器引用一个 LOB 值。LOB 定位器表示存储在 DB2 数据库中的 LOB 资源的值,可以让应用程序一次操作该资源的一小部分,无需获取整个 LOB 数据值。它们就像是一部分 LOB 值的一个屏幕截图,而非指向数据库中的行或某个位置的指针。

XML 数据

之前,我们看到了 DB2 通过 pureXML 特性提供原生 XML 操作和存储,该特性在所有 DB2 Linux, UNIX, and Windows 版本中免费提供。pureXML 组件之一是 XML 数据类型,支持 DB2 将 XML 文档存储为其原生的层次格式,而非存储为文本或映射为不同的数据模型。

虽然其他数据库管理产品通过分解(Shredding)将 XML 数据存储为纯文本,DB2 支持通过 pureXML 高效地搜索、检索和更新存储在 DB2 数据库本地的结构完好的 XML 文档。可以通过使用 XQuery、SQL 或两者结合使用来访问和操作这样的 XML 数据。

结构化数据类型

结构化类型是包含一个或多个属性的用户定义的类型,可以将其映射到任何受支持的数据类型,包括 LOB 和 DB2 中提供的那些类型以外的数据类型。(您可以创建新的用户定义的结构化类型,将它们用作表中的列。)
可以将结构化类型与面向对象模型中的对象/类进行比较。可以实例化结构化数据类型对象、使用继承、创建/使用方法(操作),等等。结构化数据类型的存储方式与 LOB 和 XML 文档的存储方式大致一样。

XML、LOB 和结构化数据类型的存储

曾经 LOB、XML 和结构化数据类型存储在其表中的一个独立对象中,对于 LOB 数据,使用 LOB 描述符来引用存储的每个值的位置。(图 36图 36 显示了 LOB 数据的传统存储方式。)

图 36. 图 36. LOB 数据的存储方式
通过使用 LOB 描述符存储 LOB。

从 Db2 9.7 开始,我们可以存储这样的内联数据值。这表示,对于较小的值,可以将 LOB、XML 和结构化数据与表中的其他数据一同存储。在使用 CREATE 和 ALTER TABLE 语句定义 LOB、XML 和结构化数据类型列时,可以通过指定 INLINE LENGTH 子句来启用内联功能。图 37图 37 显示了内联 LOB 数据值的存储方式。

图 37. 图 37. 内联 LOB 数据值的存储方式
DB2 可以存储内联 LOB 来加速访问。

DB2 Linux, UNIX, and Windows 的更多内容

DB2 Information Center

如果不对 DB2 Information Center(也称为 DB2 Infocenter)加以评论,对 DB2 工具的任何描述都不会是完整的。每当需要有关特定 DB2 命令、SQL 语句、配置参数、注册表变量的特定信息,或者您想要更多了解 DB2 最新版本的新特性、如何从旧版本迁移数据库或者如何入手使用特定 DB2 特性/功能时,通常可以在 DB2 Information Center 找到相关信息。DB2 Information Center 是查找任何 DB2 信息的一个一站式服务点。其内容远远不止是产品文档,而是可以应对您可能遇到的任何情形的必读材料。

通过 Internet 访问 DB2 Information Center,还可以在 DB2 安装过程中本地安装它。由于 DB2 有若干不同的版本(对应于重大发布),从 Web 上访问 Information Center 时,需要确保您查看的 Information Center 与您使用的 DB2 版本相对应。(例如,在使用 DB2 10.1 数据库时,确保使用的是 Information Center 10.1。)如果需要通过 Internet 访问 DB2 Information Center,但又记不住链接(没有将链接保存为书签),只需通过您最喜欢的搜索引擎搜索 “db2 Infocenter 10.1” 即可(始终要包含版本号)。

Data Studio 也有一个 Information Center;该 Information Center 的链接是:http://publib.boulder.ibm.com/infocenter/dstudio/v3r1/index.jsp

First Steps

安装 DB2 产品后 DB2 First Steps 立即打开,可通过以下步骤帮助您开始使用 DB2:

  • 将您引向 DB2 文档网站 (Information Center)
  • 为您最新安装的产品检查是否有新的更新
  • 通过 db2samp 创建一个样例数据库(用样例数据填充)
  • 指出 IBM Data Studio 下载网站

图 38图 38 显示了调用的 First Steps 对话框的外观。

图 38. 图 38. First Steps
DB2 First Steps 窗口。

还可通过操作系统菜单或执行 db2fs 命令来访问 DB2 First Steps。

还有一个名为 “Technology Explorer for DB2” 的一个不错的独立工具,可通过命令样例等帮助您了解 DB2.可以通过 “参考资料” 部分的一个链接访问它。


结束语

本教程的目标是向您介绍 DB2 for Linux, UNIX, and Windows 10.1、其版本、工具,等等。现在全书已经结束了,您应当能够:

  • 说明不同 DB2 产品版本之间的异同点,了解哪个更适合于您可能遇到的情形/场景。
  • 识别通常在 DB2 数据库环境中看到的不同工作负载,了解应当使用哪个产品/功能来扩展 OLTP 或 OLAP/数据仓库环境。
  • 使用 DB2 提供的命令行工具。
  • 使用 IBM Data Studio 管理您的数据库并访问/操作存储在其中的数据。
  • 选择如何将非传统数据存储在 DB2 数据库中。
  • 知道需要帮助时到哪里求助。

由于 DB2 10.1 基础认证考试(考试 610)侧重于 DB2 10.1,本教程基于这个版本。由于 DB2 在不断演化,如果您有关于 DB2 未来版本的疑问,建议您访问 DB2 Information Center 了解有关的详细信息。

参考资料

学习

获得产品和技术

  • 在云中试用 DB2 10,亲身体验随时随地让 DB2 上线运行有多方便快捷。
  • 下载 DB2 Express-C 10,这是一款最为强大、限制最少的免费数据库产品。
  • 试用其他 DB2 产品,大致了解 Express-C 之外的更多产品。
  • 认识 Technology Explorer for DB2,这是一个教学工具,它通过一个直观、丰富的界面展示有关 DB2 命令和技术的具体细节。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=939806
ArticleTitle=DB2 10.1 基础认证考试 610 备考教程,第 1 部分: 规划
publish-date=08052013