快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和记娱乐备用:利用您的 Microsoft SQL Server 2000 技能来学习 DB2 UDB V8



小序

在当今的信息技巧领域中,新信息在赓续地向我们冲击 - 新的软件产品、新的版本和新的功能。使您能跟上这些赓续发生的变更的措施之一便是使用您手中 现有的常识。我将向您展示若何应用您今朝的 Microsoft® SQL Server 2000 的常识来迅速得到有关 DB2 UDB V8 for Linux、UNIX and Windows 的技能。在本文中,术语“SQL Server”指的是 Microsoft SQL Server 2000,“DB2 UDB” 指的是 DB2 UDB V8 for Linux、UNIX and Windows。本文的重点主要集中在 Windows 平台。

第一个要留意的 SQL Server 和 DB2 UDB 之间的紧张差别是 SQL Server 仅在 Windows 平台(Intel 体系布局)上受支持。而另一方面,DB2 UDB 可以在 Linux、UNIX 和 Windows 平台以及许多硬件体系布局中获得支持。针对所有这些平台的代码基础上是相同的,只带有极少数特定于平台的模块。此外,DB2 UDB 产品还可以扩展到 iSeries®(AS/400® 和 z/OS®(大年夜型机))的领域。iSeries 和 z/OS 的 DB2 UDB 成员的代码库与 DB2 UDB for Linux、UNIX and Windows 的不合,由于这些产品使用了各自的硬件体系布局。然则,这些 DB2 系列的功能是异常相似的。在您认识了 DB2 UDB for Linux、UNIX and Windows 今后,您可以大年夜胆考试测验进修有关其它平台上的 DB2 的更多常识。

系统布局概述

下图 1 展示了基础的 SQL Server 布局。图 2 展示了 DB2 UDB 的布局,请把两者做一下对照。我将在整篇文章中引用这两幅图。

图 1. Microsoft SQL Server 2000 布局

图 2. Linux、UNIX 和 Windows 上的 DB2 UDB V8 系统布局

实例和办事器

只管在 SQL Server 术语中不常常应用“实例”这个术语,然则 实例的观点在 SQL Server 和 DB2 UDB 中是相似的。用户平日只把它称为“办事器”。对付这两个产品而言,实例供给一个自力的情况,数据库工具在此中创建,并且利用法度榜样在这些工具上运行。因为实例遵照一种“不共享”的体系布局,是以一个实例的工具平日不与其它实例的工具进行交互。图 1 和图 2 将 PROD 实例和 DEV 实例表示为两个观点上彼此自力的框。虽然实例的观点在这两个产品中是相同的,但它的实现却是截然不合的。在 SQL Server 中,您可以有一个“缺省”实例(仅有一个)和一些命名实例。 缺省实例在第一次安装 SQL Server 时创建,并由谋略机名来标识。而 命名实例在创建 缺省实例之后创建,并必须经由过程 c和记娱乐备用omputer_nameinstance_name 的款式来进行标识。

要在同一台机械上创建几个 SQL Server 命名实例,您必须对每个新的实例应用安装 CD,并且对每个新的安装都要应用安装 GUI。请留意,在这个历程中,为每个您创建的实例复制 SQL Server 代码,但应用的路径不合。只有某些文件是实例之间共享的。要删除一个实例,您必须应用安装 GUI 来卸载该实例。

在 DB2 UDB 中,当将产品安装在 Windows 平台后,将缺省地创建“DB2”实例。在 Linux 和 UNIX 中,缺省实例名为“db2instl”。要在同一台机械上创建另一个实例,您只须履行 db2icrt敕令。对付一台机械上的多个 DB2 UDB 实例,只有 DB2 UDB 代码的 一个副本。

图 3 显示了 DB2 UDB Control Center GUI 中的缺省 DB2 UDB 实例“DB2”和用 db2icrt 敕令创建的其它两个实例。

图 3. 显示 DB2 UDB 实例的 DB2 UDB Control Center GUI

要从敕令行接口引用一个给定的 DB2 UDB 实例,请应用 DB2INSTANCE 情况变量。该变量让您指定所有敕令将利用到确当前的活动实例。例如,假如 DB2INSTANCE 被设置成 PROD,然后您发出 create database MYDB1 敕令,那么您将创建和实例 PROD 关联的数据库。假如您想在实例 DB2 上创建该数据库,则您必须首先将 DB2INSTANCE 变量的值变动为 DB2。

标识您想应用的实例的另一个简单措施是如图 3 所示的应用 DB2 UDB Control Center GUI。您可能必须经由过程右键单击 Instances并选择 Add来将实例添加到 GUI 中,这样就可以在这个对象中看到该新实例的条款。

在 Windows 中创建了一个 DB2 UDB 实例后,一个与实例名同名的响应办事也被创建。可以履行 db2idrop敕令来删除 DB2 实例。该敕令 不会撤除 DB2 UDB 代码。假如是 Windows 的话,它会撤除该实例的响应 Windows 办事。

总而言之,SQL Server 和 DB2 UDB 中的实例在观点上是相同的;不合的是在着实现上。SQL Server 对付每个新实例都必要一个不合的 SQL Server 代码的副本,而 DB2 UDB 则不必要。在 SQL Server 中,可以应用 Enterprise Manager GUI 来治理实例,而在 DB2 UDB 中,则应用 Control Center GUI 来达到类似的目的。

Windows 办事

表 1 描述了一些主要的 DB2 UDB Windows 办事。

表 1. DB2 UDB Windows 办事

办事名

描述

DB2 - -

这是一个给定实例的引擎。它处置惩罚所有的 SQL 语句并治理数据库。假如启用了分区支持,DB2 可以支持一个数据库在不合机械上的多个分区。是以,

注解您正在处置惩罚哪个分区。假如没有启用分区,分区号则不会呈现。

DB2 Governor

网络连接 DB2 数据库的利用法度榜样的信息,并且基于您定义的规则来监控操作并对一些操作采取行动。例如,您可以指定一条规则将某一事情单元应用的光阴限定在一个小时,并且假如跨越了这个限定,则强制连接到数据库。

DB2 JDBC Applet Server

为应用 JDBC 类型 3 驱动法度榜样的 DB2 利用法度榜样供给 JDBC 办事器支持。

DB2 License Server

监控是否相符 DB2 许可证。

DB2 Remote Command Server

支持多分区数据库的分区间通信。

DB2 Security Server

当在客户机上履行认证时,认证 DB2 数据库用户。

DB2DAS - DB2DAS00

这是 DB2 Administration Server。它支持本地的和远程的数据库治理哀求。DB2 Administration Server 的 Windows 缺省名称是 DB2DAS00。该办事器与对象目录办事器一路应用来治理功课、警告等。

图 4 显示了带出缺省 DB2 实例以及用 db2icrt 敕令创建的 PROD 和 DEV 实例的 DB2 UDB Windows 办事。

图 4. DB2 UDB Windows 办事

既然已司理解了 DB2 UDB 应用的 Windows 办事,让我们把这些办事与 SQL Server 上的办事逐一对应起来。请看下面的表 2。

表 2. 把 SQL Server Windows 办事映射到 DB2 UDB Windows 办事

SQL Server 办事

匹配的 DB2 UDB Windows 办事

MSSQLServer 办事。这个办事代表了缺省的 SQL Server 实例。

DB2 - DB2-0 办事。这个办事代表了缺省的“DB2”实例。

MSSQL$

DB2 -

SQLServerAgent

DB2DAS - DB2DAS00。这个办事代表了 DB2 Administration Server(DAS)*

SQLAgent$

DB2DAS - DB2DAS00。这个办事代表了 DB2 Administration Server(DAS)*

Microsoft Distributed Transaction Coordinator (MS DTC)

Sync Point Manager(SPM)用于支持散播式事情单元。数据库设置设置设备摆设摆设参数 SPM_NAME 向数据库治理器标识了同步点治理器实例的名称。

Microsoft Search

没有匹配的 DB2 UDB Windows 办事;然则,Net Search Extender 软件可用于类似的目的。

* 每台 DB2 机械仅可以有一个 DAS。

数据库

正如图 1 所示,在 SQL Server 中,一个实例可以包孕多个数据库。每个数据库都是一个自力的单元;然而,有关所有用户数据库的元数据都保存在 master数据库中,是以查询可以造访两个不合数据库中的表。当创建一个实例的时刻,同时也缺省创建了几个数据库,例如 tempdb、master、model 和 Northwind 等等。

SQL Server 采纳两个级别来存储元数据:实例级(应用 master 数据库中的系统表)和数据库级(应用用户数据库本身的系统表)。master 和 tempdb 这两个数据库可以被实例中的其它数据库共享。其它例如视图(view)这样的工具在创建用户数据库时也被缺省创建。

正如图 2 所示,在 DB2 UDB 中,一个实例也可以容纳多个数据库,每个数据库是真正封闭、自力的单元。每个数据库都有自己的目录表空间(存储元数据)、临时表空间和用户表空间。但没有一个数据库能够像 SQL Server 中的 master数据库那样可以跨数据库共享元数据信息。同样,也没稀有据库能够像 SQL Server 中的 tempdb 那样可以在其它数据库中被共享以维持临时数据。DB2 UDB 包孕了一个称作 系统数据库目录的二进制文件,里面有您从 DB2 机械连接的所稀有据库的条款。这个目录在实例级别保存。

图和记娱乐备用 2 显示了 DB2 UDB 中的每个数据库的自力性。此外,您从图中还可以看到每个数据库都有自己的事务日志,这一点与 SQL Server 也很类似。

当创建一个实例时,缺省环境下不创建数据库。您必要应用 create database 敕令显式地创建数据库。您也可以应用如图 5 和图 6 所示的 Control Center 来创建数据库。

图 5. 应用 Control Center GUI 创建 DB2 UDB 数据库

图 6. 应用 Control Center GUI 创建 DB2 UDB 数据库(续)

在图 6 中,您也可以看到当单击了 Show Command时会发生什么环境。所有的 DB2 UDB Control Center GUI 屏幕都邑显示实际上在后台履行的 SQL 语句或敕令。这些敕令能够保存在脚本中以供往后履行,或者被复制并从敕令行处置惩罚器(Command Line Processor,CLP)对象或 Command Center GUI 对象中履行。这两个对象分手等同于 SQL Server 的 iSQL 和 Query Analyzer。

一个实例内的数据库平日不会互订交互;然而,假如利用法度榜样有这样的要求,那么可以经由过程启用 联邦(federation)支持来实现此目的。

容器、表空间和文件组

在 DB2 UDB 中, 容器是数据实际存储的地方,并可以分为文件、目录和裸设备。在和记娱乐备用 SQL Server 中不存在“容器”的观点;而是用文件来存储数据。

在 DB2 UDB 中, 表空间是逻辑工具,用作逻辑表和物理容器之间的层。当创建一个表空间时,您可以将它和一个特定的缓冲池(数据库高速缓存)关联起来,并关联到特定的容器。这给了你治理和机能上的机动性。例如,假如有一个“热门”的表,您可以在它自身的表空间中定义它,而这个表空间又关联到其自身的缓冲池。这样就赞助确保了该表的数据老是在内存中高速缓存。

当用缺省选项创建 数据库时,将创建三个表空间,如表 3 所述。

表 3. 当创建数据库时,缺省创建的 DB2 UDB 表空间

表空间名称

描述

SYSCATSPACE

包孕元数据的目录表空间。

TEMPSPACE1

用于履行诸如连接和排序操作的系统临时表空间。该表空间的名称可以变动。

USERSPACE1

这个表空间是可选的,用于在创建表时没有显式指定表空间的时刻存储用户表。

由于数据库是自力的单元,是以不能跨数据库共享表空间。又由于表空间只在一个数据库中是已知的,以是两个不合的数据库可以有同名的表空间。您可以在图 2 中看到,数据库 MYDB1 有一个名为 MYTBLS 的表空间,而数据库 MYDB2 也有一个同名的表空间。

SQL Server 经由过程与 DB2 UDB 表空间类似的要领来应用文件组。两个不合的数据库可以有同名的文件组,这一点和表空间类似。如图 1 中所显示的,数据库 MYDB1 有一个名为 MyFileGroup 的文件组,而数据库 MYDB2 也有一个同名的文件组。

DB2 UDB 表空间可以被分为 SMS(系统治理空间)或 DMS(数据库治理空间)。SMS 表空间由操作系统治理并仅可所以目录。它们会跟着必要自动地增长,是以供给了较好的机能并且不必要太多治理。这与 SQL Server 数据文件的行径(假如您容许自动增长)千篇一律。DMS 表空间由 DB2 UDB 治理,可所以文件或裸设备。这种类型的表空间能得到最佳机能,但必要必然的治理。例如,您必要提前指定盼望分配给表空间的空间量,由于增长不是自动进行的。

事务日志的位置和大年夜小可以在数据库 设置设置设备摆设摆设文件中指定。

下表 4 显示了 SQL Server 数据库若何与 DB2 UDB 数据库或表空间逐一对应。

表 4. SQL Server 数据库若何与 DB2 UDB 数据库或表空间逐一对应

SQL Server 数据库

DB2 UDB 数据库或表空间

Master

SYSCATSPACE(目录表空间);在 DB2 UDB 中,仅在数据库级别保存该信息。

model

没有等同的数据库/表空间;然而,DB2 供给了一个名为“db2look”的对象,它用来将数据库的布局复制到一个脚本文件以便往后履行它来创建一个新的数据库。

msdb

对象目录数据库,它可以在安装时创建,也可以在安装后经由过程敕令 create tools catalog 创建

Northwind

SAMPLE 数据库

pubs

SAMPLE 数据库

tempdb

TEMPSPACE1 表空间

distribution

DB2 UDB 为所有的 DB2 UDB 系列供给内建的复制支持。涉及非 DB2 的关系治理系统的复制必要 Information Integrator 软件。

工签字称

SQL Server 工签字称的布局由四部分组成,如下所示:

[SQL Server Instance].[Database Name].[Owner].[object name]

请留意:这些名称的头三个部分是可选的,取决于应用工具的高低文。

在 DB2 UDB 中,工具的布局由两部分组成:

Schema_name.object_name

模式名用来从逻辑上对工具进行分组。模式名不必然和用户标知趣匹配。任何具着名为 IMPLICIT_SCHEMA 特权的用户都可以应用不存在的模式创建工具。例如,假设“Peter”具有 IMPLICIT_SCHEMA 特权,并履行了以下敕令:

CREATE TABLE WORLD.TABLEA (lastname char(10))

在这种环境下,创建了表 WORLD.TABLEA,此中 WORLD 是新创建的模式。假如 Peter 没有显式地指明该模式,那么表 PETER.TABLEA 也会被创建,由于缺省应用了连接标识。

在 DB2 UDB 中,在发出敕令之前您老是显式地连接至一个数据库,这就说清楚明了为什么数据库名称不是工签字称布局一部分的缘故原由。

表、视图和索引

表、视图和索引在 SQL Server 和 DB2 UDB 中基础上是相同的。就创建 GUI 而言,应用 SQL Server 的 Enterprise Manager GUI 对象时,您必须在创建索引之前创建一个图表,而应用 DB2 UDB Control Center 时,您无需中心步骤就可以直接从 GUI 中创建一个索引。

SQL Server 应用 master 数据库来存储有关其它用户数据库的信息,然则用户数据库本身是自力的单元,就象在 DB2 UDB 中一样。是以,在两种产品中,表、视图或索引都可以在两个不合的数据库中拥有相同的名称。SQL Server 容许连接不合数据库(和 SQL Server)的表;DB2 UDB 仅在显式激活联邦的时刻才供给此支持。

存储历程、触发器和用户定义函数(UDF)

本文的主要目的是经由过程与 SQL Server 情况的对照来描述 DB2 UDB 情况。讨论应用存储历程、触发器和 UDF 的数据库办事器的逻辑是一个相称广泛的话题,是以这里只是简要地先容一下。

首先,两个产品都支持所有这些工具。只是SQL Server 应用它专有的 Transact-SQL(T-SQL),而 DB2 应用的是 SQL 历程说话(SQL Procedural Language,SQL PL),两者都是 SQL/PSM 标准的扩展。在 SQL Server 中,Transact-SQL 实际利用于每一件工作,包括实和记娱乐备用现 SQL Server 敕令。在 DB2 UDB 中,环境却不是这样。DB2 应用不合的 API 来实现其敕令,并且由于 SQL PL 存储历程被首先转换为 C,以是它必要一个 C 编译器来开拓这些存储历程。Transact-SQL 是在 SQL Server 引擎中本机履行的一种解释说话。当运行它时,会变成颠末解释的字节代码,并在每次运行时都必要优化。存储历程的 C 说话实现可以供给机能上风,由于代码只编译一次(尤其当运行在无保护要领下);然而,它也增加了对 C 编译器的需求。在 DB2 UDB 的未来发行版中,在供给现有功能的根基上,盼望能在无需 C 编译器的环境下支持 SQL PL 存储历程,这将容许用户选择他们想要实现 SQL PL 存储历程的要领。

应用 DB2 UDB,您可以在触发器和函数中应用 内联SQL PL,这意味着您不必要 C 编译器。经由过程这种措施可以支持 SQL PL 语句的一个子集。

设置设置设备摆设摆设文件

SQL Server 在实例级别和数据库级别存储它的设置设置设备摆设摆设信息。应用 Enterprise Manager GUI,右键单击一个给定的实例或数据库并选择 Properties就可以显示一个带有所有可能设置设置设备摆设摆设选项的窗口。在 DB2 UDB 中,设置设置设备摆设摆设参数同样存储在实例级别(称为 数据库治理器设置设置设备摆设摆设文件)和数据库级(称为 数据库设置设置设备摆设摆设文件)。

应用 Control Center,假如右键单击一个给定的实例并选择 Configure Parameters,您将会看到图 7 所示的窗口。

图 7. DB2 UDB 数据库治理器设置设置设备摆设摆设参数(实例级别)

在数据库级别,右键单击一个给定的数据库并选择 Configure Parameters,将显示图 8 所示的窗口。

图 8. 数据库设置设置设备摆设摆设参数(数据库级别)

DB2 UDB 供给了许多可以用来设置设置设备摆设摆设系统的参数;然而,假如您爱好用一种简单的措施来自动设置设置设备摆设摆设系统,请应用 autoconfigure 敕令(或 Configuration Advisor GUI),它根据您供给的一些信息,将数据库治理器和数据库设置设置设备摆设摆设参数设置成最佳值。图 9 显示了 Configuration Advisor。

图 9. DB2 UDB Configuration Advisor

除了设置设置设备摆设摆设文件之外,DB2 UDB 平日还把 DB2 注册表变量用于特定于平台的设置设置设备摆设摆设。留意, DB2 注册表变量与 Windows 注册表没有任何关系。用户可以应用 db2set 敕令来查看并变动这些变量。

安然性

SQL Server 应用认证、角色和特权的观点来实现安然性。

支持两种要领的认证:

Windows 认证。

Windows 操作系统认证登录标识和密码,并仅将和记娱乐备用登录标识通报给 SQL Server,后者再将这个标识与 sysxlogins 系统表匹配。

混杂要领的认证。

SQL Server 根据它在 sysxlogins 系统表中的信息认证登录标识和密码。

一旦颠末认证,用户还不能对 SQL Server 进行任何操作,除非他/她被分配了一个角色或一个给定的特权。 角色被用于将用户分组为一个自力的单元,在这个单元上将利用许可权。是以,您不用将零丁的许可权赋予几个用户,相反,您可以创建一个包括所有这些许可权的角色,然后再把这个角色分配给用户。

在 DB2 UDB 中,用户不存在于数据库中,而是由操作系统进行治理的。是以,DB2 UDB 的认证在某种程度上有点类似于 SQL Server 的 Windows 认证;然则,在任何数据库表中都不会保存数据库登录信息。任何操作系统用户都有可能潜在地应用 DB2 UDB;然而,除非他们被付与了给定的 DB2 UDB 权限或特权,否则他们能做的并不是很多。经由过程 Control Center GUI 可以很方便地处置惩罚权限和特权的付与和撤销。您可能首先必须将一个用户或组从可用的操作系统用户或组中添加到 Control Center。

别的,在 DB2 UDB 中不应用术语“角色”;而是应用术语“权限(authority)”,这类似于 SQL Server 的固定的办事器和数据库角色。DB2 UDB 不支持 MS SQL Server 的用户定义的数据库角色;然则,一个操作系统组可以被付与权限和特权来实现角色功能。DB2 UDB 支持的权限有:SYSADM、SYSCTRL、SYSMAINT、DBADM 和 LOAD。

应用 GRANT SQL 语句不能付与 SYSADM、SYSCTRL 和 SYSMAINT 权限。这些特殊的权限只能从数据库治理器设置设置设备摆设摆设文件来设置。

具有 SYSADM 权限的 DB2 UDB 用户相称于具有 sysadmin 角色的 SQL Server 用户。

DB2 UDB 还应用术语“特权”,这等同于 SQL Server 的许可权。稀有据库 特权(connect、createtab 等)和 数据库工具特权(schema、table、view 等)。图 10 显示了从 Control Center GUI 中得到的 DB2 UDB 安然性信息。图中大年夜部分的选项卡对应了 DB2 UDB 所支持的特权。

图 10. DB2 UDB 安然性

下表 5 将 SQL Server 的安然性观点和 DB2 UDB 中的逐一对应起来。

表 5. 将 SQL Server 的安然性观点和 DB2 UDB 中的逐一对应起来

SQL Server

DB2 UDB

两种认证要领:Windows 认证和混杂要领认证

由操作系统处置惩罚的一种认证要领;异常靠近于 SQL Server 的 Windows 认证。

角色

权限(都是预定义的,没有用户定义的权限。)

许可权

特权

对象

我们已经简单地评论争论了 SQL Server 和 DB2 UDB 中应用的一些对象;然而,还有许多对象在本文中并没有涉及到。图 11 显示了 DB2 UDB 的菜单。这应该让您对本文中没有评论争论到的对象和主题有一个大年夜致的熟识。

图 11. DB2 UDB 菜单

应用敕令行

假如您更爱好应用敕令行接口,那么对付 SQL Server,您应该习气应用 iSQL 实用法度榜样。在 DB2 UDB 中的对应接口是敕令行处置惩罚器(CLP)。

图 12 显示了 DB2 UDB CLP 实用法度榜样。我们首先从敕令提示窗口履行敕令 db2cmd 来打开敕令窗口。这将初始化运行 CLP 所必要的 DB2 情况。然后,我们经由过程履行敕令 db2 来调用 CLP。

图 12. DB2 UDB CLP(敕令行处置惩罚器)

SQL Server 和 DB2 UDB 都供给了同样是 GUI 对象的敕令行接口。SQL Server 中有 Query Analyzer。而在 DB2 UDB 中对等的是 Command Center,如图 13 所示。

图 13. DB2 UDB Command Center

停止语

本文使用您现有的 Microsoft SQL Server 2000 常识向您先容了 DB2 UDB V8 for Linux、Windows and UNIX。既然 SQL Server 只受 Windows 平台的支持,是以本文就着重于这个平台;然而,此处所有您进修到的关于 DB2 UDB 的常识(不是很具体)也可以利用于 Linux 和 UNIX 平台。而且,因为应用的是 Windows 平台,以是我们采纳了两个产品的 GUI 对象来解释大年夜多半的观点。然则,所有已经解释过的内容都有一个等同的敕令。

作为对 SQL Server 和 DB2 UDB 体系布局的着末回首,让我们对照一下图 14 和图 15。它们分手应用 SQL Server Enterprise Manager 和 DB2 UDB Control Center 显示了各自的数据库工具。

图 14. MS SQL Server Enterprise Manager - 总结

图 15. DB2 UDB Control Center - 总结

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: