级别: 中级 Carolyn Henry, 信息开发人员,
IBM
Leila Johannesen, 可用性工程师,
IBM
Don Langworthy, 软件工程师,
IBM
Patti Tonello, 信息开发人员,
IBM
2007 年 4 月 05 日 更新 2008 年 10 月 13 日 本文重点阐述 Data Studio Administrator(以前称为 DB2 Change Management Expert)与 Rational® Data Architect 的集成。您将学习这两种工具共同的观感、各自的优点,以及将它们结合起来使用的好处。本文包括一个逐步的说明和演示这两种工具之间的触点的示例。
注意:本文是以前发表的文章 “DB2 Change Management Expert” 的更新。本文解释了新的名称 “IBM Data Studio Administrator”,以及其他可用于 Data Studio Administrator Version 1.2 的变更。
概述
将数据库变更管理过程想象成一套彼此相连的拼图。一块拼图是数据建模,另一块是数据库更改。本文将展示将这者结合在一起的 IBM 解决方案。IBM Data Studio Administrator 是一款数据库变更管理工具。它可以单独使用,也可以与 IBM Rational Data Architect 结合使用,后者是用于企业数据建模和集成设计的工具。在物理数据模型方面,这两种工具颇为相似,因而可以集成从设计和建模到数据库变更管理的过程。物理数据模型将数据架构师、开发人员和数据库管理员统一起来,而不是在个人与组之间转换更改。
Data Studio Administrator 和 Rational Data Architect 都使用 Eclipse 框架。同时使用这两个产品的团队可以利用 Eclipse Team 组件来控制信息流。此外,Rational Data Architect 和 Data Studio Administrator 可以同时出现在同一个 Eclipse 框架中(通过 “共享的 shell” 安装来实现)。如果在一人需要完成多个任务,共享的 shell 还可以提供一个单独的用户界面。
场景概述
本文演示客户如何在同一个场景中使用这两种产品。我们将以一家虚构的公司 JK Enterprises 作为示例客户。JK Enterprises 已经开始使用 Data Studio Administrator 和 Rational Data Architect。JK Enterprises 的数据建模师 Tom 正在使用 Rational Data Architect,而公司的 DBA Eric 正在使用 Data Studio Administrator。但是请注意,在某些较小的工作室,可能一个人同时使用这两个工具。
假设 JK Enterprises 决定为项目添加完成代码。他们需要对数据库加以更改,添加一个完成代码表,但是他们还希望在逻辑模型中反映这一更改。由于不确定逻辑模型是否是最新的,因此他们首先根据生产数据库创建一个物理模型。Eric 将在 Data Studio Administrator 中创建这个物理模型,并将它发送给 Tom。然后,Tom 使用 Rational Data Architect 将这个物理模型转换为一个逻辑模型,并指定完成代码实体、所需的关系和适当的属性。然后,通过与 Eric 协商,他在 Rational Data Architect 中将这个逻辑模型转换成一个物理模型。然后,Eric 在 Data Studio Administrator 中使用这个更新后的物理模型,并将变更迁移到一个测试数据库中。图 1 展示了这个过程:
图 1. 场景概述
本场景分为以下 3 个主要部分:
- Eric 使用 Data Studio Administrator 为 HR 数据库 创建一个物理模型。
- Tom 使用 Rational Data Architect 将物理模型转换为逻辑模型,并更改逻辑模型。
- Eric 使用 Data Studio Administrator 将 Tom 的更改迁移至 HR 数据库。
如果您具备以下的先决条件,那么可以通过完成以下小节中的步骤来尝试这个场景。
先决条件
本场景使用 Data Studio Administrator Version 1.2 和 Rational Data Architect 7.0。假设数据库管理员已经在计算机上安装了 Data Studio Administrator,并且数据架构师已经在计算机上安装了 Rational Data Architect。(如果一个人既是数据库管理员又是数据架构师,那么应该在同一台计算机上同时安装这两个工具)。
此外,必须在 DB2 Universal Database™ V8 (DB2 UDB) 或 DB2 V9.1 数据库中创建 JK Enterprises 的 HR 数据库。可以使用 Data Studio Administrator 来创建这个数据库。完成以下步骤,以创建并填充该数据库:
- 下载 DSARDADemo.zip package 到一个临时目录,并解压缩这个包。
- 使用 Data Studio Administrator 创建一个新的数据设计项目。
- 将 createDSARDADemo.chx 从临时目录复制到刚才创建的数据设计项目中的 SQL Scripts 文件夹中。
- 展开 SQL Scripts 文件夹。
- 右键单击 createDSARDADemo.chx 文件,然后单击 Run SQL。这时会弹出 Deploy Change Commands 向导。
- 完成 Deploy Change Commands 向导中的步骤,创建和填充 HR 数据库:
- 确认选择了适当的数据库版本。
- 输入用户名和密码。
- 取消复选框 Create Deployment Project and Script file 并单击 Finish。
场景步骤
A 部分:创建 HR 数据库的物理模型
在本场景的第一部分,Eric(数据库管理员)创建一个新的部署脚本,它是一个跟踪变更管理进程的 Data Studio Administrator 资源。当他为 HR 数据库创建部署脚本时,会创建该数据库的两个物理模型。第一个模型是基本模型,表示数据库的当前状态。第二个模型是目标模型,您要编辑这个模型,以指定更改后数据库的样子。
Eric 会将基本模型发送给 Tom。之后,Eric 将 Tom 在本场景第二部分进行的更改应用到目标模型。
如果您处于 Eric 的位置,请完成以下步骤来创建部署脚本和物理模型。
- 从主菜单栏中,单击 File --> New --> Deployment Script。这时会弹出 Deployment Script 向导。
- 完成 Deployment Script 向导中的步骤:
- 输入 “DSARDADemo” 作为项目名称,然后输入 “DSARDADemo_HR” 作为部署脚本的名称。单击 Next。
- 选择 Use Existing Connection,然后选择 JKENT。单击 Next。
- 选择 Change in Place 作为过程,然后取消 Migrate table data 复选框。单击 Next。
- 如果提示,则输入用户 ID 和密码。单击 Next。
- 选择 HR 作为模式。单击 Next。
- 确认选择了所有元素。单击 Next。
- 确认基本模型的默认名和 HR 模式的目标模型。单击 Finish。在这个场景中,默认名称为 DSARDADemo_HR_base.dbm 和 DSARDADemo_HR_target.dbm。
Data Studio Administrator 创建部署脚本和 HR 模式的基本模型及目标模型。图 2 展示了当展开 Data Models 和 SQL Scripts 文件夹时出现的模型和脚本:
图 2. Data Project Explorer
-
此时,通过电子邮件将基本模型发送给 Tom,Tom 是数据建模师和数据架构师,他安装了 Rational Data Architect。或者,也可以将它签入到一个版本控制系统中,这样 Tom 就可以通过 Rational Data Architect 查看它。
B 部分:将物理模型转换成逻辑模型,并更改逻辑模型
 |
插入版本控制
通过 the Eclipse Team 功能,用户可以在 Eclipse 工作台中访问版本控制系统。欲了解更多信息,请参阅关于该主题的 developerWorks 文章,见 本系列中的更多文章。
|
|
在本场景的第二部分中,Tom 将从 Eric 那里收到的 HR 数据库的物理模型添加到一个数据设计项目中。他将该物理模型转换成一个逻辑模型,然后使用一个数据图对逻辑模型作出以下更改:
- 添加一个新实体 COMPLETION_CODES,它有两个属性:COMP_CODE 和 DESCRIPTION。
- 将一个新属性 COMP_CODE 添加到 PROJECT 实体。
- 创建 COMPLETION_CODES 和 PROJECT 实体之间的一个外键关系,其中 COMPLETION_CODES 是父实体。
- 删除 ORGANIZATION 实体的 DEPTNAME 属性,因为 ORGANIZATION 中的 DEPTNAME 与 DEPARTMENT 实体中的 DEPTNAME 是重复的。
更改逻辑模型之后,Tom 将逻辑模型转换成物理模型,并将这个更改过的物理模型发送给 Eric。
如果您处于 Tom 的位置,请完成以下步骤:
- 启动 Rational Data Architect。
- 确认设置了首选项,以去掉模型转换期间 ROWID(作为逻辑数据类型)与 CHAR(作为物理数据类型)之间的数据映射。为了检查首选项设置,完成以下步骤:
- 单击 Window --> Preferences,以显示 Preferences 窗口。
- 单击 Data --> Transform --> Data Type Map,以显示 Data Type Map。
- 如果有一行中 Logical Data Type 为 ROWID,则删除该行。
- 单击 OK。
- 复制 Eric 通过电子邮件发来的物理模型,将其粘贴到一个数据设计项目中。
- 完成以下步骤,将物理模型转换成逻辑模型:
- 在 Data Project Explorer 中,在数据设计项目的 Data Models 文件夹下,选择物理模型 DSARDADemo_HR_base.dbm,然后从主菜单栏中单击 Data --> Transform --> Logical Data Model。这时会弹出 Transform to Logical Data Model 向导。
- 完成向导中的步骤:
- 在 Target Logical Model 页面上,单击 Create new model,然后单击 Next。
- 在 Logical Data Model File 页面上,接受用于逻辑模型的默认数据设计项目和逻辑模型的默认名称。单击 Next。
- 在 Options 页面上,指定 “HR” 作为包名。单击 Next。
- 在 Output 页面上,可以看到物理模型已经被转换成逻辑模型,单击 Finish 保存逻辑模型。
这时会打开 Logical Data Model Editor,显示关于该逻辑模型的信息。逻辑模型 DSADEMO_HR_base.ldm 在 Data Models 文件夹中创建并显示,如图 3 所示:
图 3. Data Project Explorer
- 为逻辑模型创建一个数据图。您将使用数据图更改逻辑模型。
- 在 Data Models 文件夹中展开逻辑模型。
- 右键单击 Diagrams(在 HR 下),然后单击 New Overview Diagram。
- 选择 HR 模式,以包括所有相应的元素,然后单击 OK。该图在 Data Diagram Editor 中打开,如图 4 所示:
图 4. HR 模式的实体图
- 将用于完成代码的名为 COMPLETION_CODES 的实体添加到模型中。
- 右键单击 Data Diagram Editor 的背景,然后单击 Add Data Object -> Entity。这样将添加一个实体到图中。
- 在 Properties 视图中,单击 General 选项卡。将实体重新命名为 COMPLETION_CODES。
- 单击 Attributes 选项卡,然后使用 New 按钮添加两个新的属性。将第一个属性重新命名为 COMP_CODE,将它指定为主键,并确保它的数据类型为 CHAR(5)。将第二个属性重新命名为 DESCRIPTION,并将它的数据类型改为 VARCHAR(1024)。
图 5 显示了更改后的 Data Diagram Editor 和 Properties 视图:
图 5. HR 模式的实体图
- 创建 COMPLETION_CODES 与 PROJECT 之间的一个外键关系,其中 COMPLETION_CODES 是父实体,PROJECT 是子实体。
- 从 Data Diagram Editor 中的 Palette 中,选择 Data --> Non-Identifying Optional。然后选择作为主键和父实体的 COMPLETION_CODES 实体,将其拖放到作为子实体的 PROJECT 实体上。
在 PROJECT 中会自动创建一个外键属性 COMP_CODE。
- 从 ORGANIZATION 实体中删除 DEPTNAME 属性。
- 选择 ORGANIZATION属性。
- 在 Properties 视图中,单击 Attributes 选项卡。选择 DEPTNAME,然后单击 Delete 将它删除。
- 保存对模型的所有更改。
- 将逻辑模型 CMERDADemo_HR_base.ldm 转换成名为 CMERDADemo_HR_changes.dbm 的物理模型。
- 在 Data Project Explorer 中,进入逻辑模型所在的 Data Models 文件夹。
- 选择逻辑模型 DSARDADemo_base.ldm,然后单击 Data --> Transform --> Physical Data Model。这时弹出 Transform to Physical Data Model 向导。
- 完成 Transform to Physical Data Model 向导中的步骤:
- 单击 Create New Model,然后单击 Next。
- 在 Physical Data Model File 页面上,接受数据设计项目的默认值,指定 CMERDADemo_HR_changes 作为物理模型的名称,然后指定数据库类型。单击 Next。
- 在 Options 页面上,检查用于转换的选项。确保 HR 被指定为模式名称。单击 Next。
- 单击 Finish 保存物理数据模型。
- 此时,将有更改的物理模型通过电子邮件发回给数据库管理员 Eric。或者,也可以将它签入到版本控制系统中,以便 Eric 通过 Data Studio Administrator 查看它。
C 部分:应用发送到 HR 数据库的更改
在本场景的最后一部分,Eric 将 Tom 发回的对物理数据模型的更改迁移到 HR 数据库的目标模型上。然后,Eric 生成将这些更改应用到实际的 HR 数据库时所需的更改命令,并将更改命令部署到数据库。
如果您处于 Eric 的位置,请完成以下步骤:
- 启动 Data Studio Administrator。
- 复制 Tom 发回的物理数据模型(CMERDADemo_HR_changes.dbm),在 Data Project Explorer 中将其粘贴到 CMERDADemo 数据设计项目的 Data Models 文件夹中。
- 双击 DSARDADemo_HR.deployxml 在 SQL Scripts 文件夹中打开部署脚本。部署脚本会显示在 Deployment Script Editor 中。
图 6 显示了 Deployment Script Editor:
图 6. Deployment Script Editor
- 将 Tom 发回的物理数据模型(CMERDADemo_HR_changes.dbm)中的更改迁移到 HR 数据库的目标模型(CMERDADemo_HR_Target.dbm)上:
- 单击 Deployment Script Editor 的 Data Models 选项卡,在 Data Models 页面上,单击 Add。
- 在 Source Models 选择对话框中,通过下钻选择有更改的模型(DSARDADemo_HR_changes.dbm),然后单击 OK。该模型显示在 Define Source Models 字段中,如图 7 所示:
图 7. Data Models 页面
- 选择这个模型,并单击 Migrate。Comparison Editor 的左边显示已更改的模型,右边显示 HR 目标模型。
- 使用工具条中的上下箭头,在这两个模型中的各个差别之间进行切换。
在这个演示中,Comparison Editor 表明要迁移的变更是从 ORGANIZATION 表中删除 DEPTNAME 列,在 PROJECT 表中添加新的外键 COMPLETION_CODE_PROJ_FK,以及增加新表 COMPLETION_CODES。
当转移外键时,外键列 COMP_CODE 将自动转移。如果在转移 COMPLETION_CODES 表之前转移 PROJECT 中的外键,则 COMPLETION_CODES 表将自动转移。
- 当选中差别时,单击向右箭头,将这些更改转移或应用到目标 HR 模型上。
- 单击 File --> Save 保存所有更改。
- 关闭 Comparison Editor。
- 单击 Problems 视图,更正目标 HR 模型的所有错误。
DB2 UDB V8.2 用户注意:您将收到错误消息,即 Rational Data Architect 为新的主键和外键创建的标识符太长。在 DB2 V8.2 中,这些标识符不能超过 18 个字符。图 8 显示了一个例子:
图 8. Problems 视图
为了检查和修正这种错误:  |
共享的 shell 提示
提示:如果您将 Data Studio Administrator 和 Rational Data Architect 安装在相同的 Eclipse IDE 中,那么需要确保关闭 Design Suggestion 验证,以免步骤 5 中收到很多警告。
为了关闭该选项,进入 Windows > Preferences > Model Validation > Constraints > Physical data model,取消复选框 design suggestions。然后,要么关闭并重新打开该模型,要么进入到 Data Project Explorer 中,单击目标模型数据库,右键单击 Analyze Model。
|
|
- 为了使 Problems 视图中显示的问题仅限于所选择的元素(目标 HR 模型),单击 Filters 图标(
),单击 On selected element only,然后单击 OK。
- 双击显示的第一个错误。单击 Properties 选项卡,将主键的名称改为 COMP_CODES_PK。
- 单击 Problems 视图,然后双击显示第二个错误。单击 Properties 选项卡,将外键的名称改为 COMP_PROJ_FK。
- 保存对目标模型的更改。
- 再次单击 Problems 视图,确认错误已修正。
- 生成更改命令,以实现这些更改。单击 Deployment Script Editor 的 Overview 选项卡,然后单击 Generate。这时弹出 Generate Change Commands 向导。
- 在该向导中完成以下步骤:
- 如果提示,则在 User Information 页面上指定您的用户 ID 和密码。单击 Next。
- 在 Command Generation Options 页面上,查看最初生成的命令,并保证进行正确的更改。单击 Next。
- 在 Specify Data Unload 和 Reload Information 页面上,为导出和导入命令指定一个数据文件位置。这里必须指定完整的路径。指定数据文件格式,接受默认的导出和导入文件名。单击 Next。
- 在 Unload 和 Reload Information 页面上,显示了应该从中导出数据然后再将数据导入其中的表。单击 Next。
在本场景中,为了删除 ORGANIZATION 表中的 DEPTNAME 列,需要先导出数据,以确保数据不会丢失。使用 Data Studio Administrator,可以导出数据,删除表,重新创建一个新表,然后将数据导入到那个新表。还可以使用一个文件,将数据从该文件中导入到新表中。
- 在 Customize Export Commands 页面上,单击 Default Query,确保要删除的列 DEPTNAME 不在 SELECT 列表中。单击 Next。
- 在 Customize Reload Commands 页面上,检查导出列与 ORGANIZATION 表的导入列之间的映射。单击 Next。
- 在 DB2 Maintenance Command 页面上,检查是否要生成一些命令,用于重组表、重新绑定包、生成 runstats 或刷新包缓存。
如果选择重新绑定包,则在 Select Schema 页面上,需要为之重新绑定包的模式是默认选中的。
- 在 Review Generated Change Commands 页面上,参看命令并单击 Finish。
- 如果提示查看更改报告,您可以选择查看它。Summary of Changes 报告描述将要对数据库进行的更改、这些更改的影响,以及更改后需要采取的措施。有一个禁止该提示的选项,因此,如果提前禁用了它,在这里将不出现提示。您可以从 Data Project Explorer 查看 Summary of Changes Report。
- 现在,可以在 Deployment Script Editor 的 Change Commands 页面上查看生成的更改命令。
- 将更改部署到 HR 数据库。在 Deployment Script Editor 的 Overview 选项卡上,单击 Deploy。这将弹出 Deploy Change Commands 向导。
- 在 Deploy Change Commands 向导中完成以下步骤。
- 在 Deploy Steps 页面上,输入用户 ID 和密码。选中复选框。单击 Next。
- 在 Check Base Model 页面上,单击 Next。
- 在 Change Commands 页面,查看将要部署到数据库的更改命令。单击 Finish。
Data Output 视图包含对 HR 数据库进行的更改的状态。
结束语
本文演示了如何结合使用 Data Studio Administrator 和 Rational Data Architect。这两种工具之间可以共享相同的物理模型,从而允许从设计和建模到数据库变更管理的集成过程。本文这个逐步操作说明可以帮助新用户学会结合使用这两种工具。
下载 | 描述 | 名字 | 大小 | 下载方法 |
|---|
| 创建本文但示例数据库 | DSARDADemo.zip | 5KB | HTTP |
|---|
参考资料 学习
获得产品和技术
讨论
作者简介  | 
|  | Carolyn Henry 是加利福尼亚州圣何塞市 IBM 硅谷实验室 DB2 and IMS Tools 小组的一名信息开发人员。她从 2004 年开始在 DB2 Change Management Expert 小组工作。 |
 | 
|  | Leila Johannesen 是加利福尼亚州圣何塞市 IBM 硅谷实验室的一名可用性工程师。她致力于 DB2 Tools 家族的易用性方面的研究。 |
 | 
|  | Don Langworthy 是加利福尼亚州圣何塞市 IBM 硅谷实验室的一名软件工程师。他从 2004 年起从事 DB2 Change Management Expert 方面的工作。在从事 DB2 Change Management Expert 之前,Don 担任高中棒球比赛的裁判。 |
 | 
|  | Patti Tonello 是加利福尼亚州圣何塞市 IBM 硅谷实验室 DB2 and IMS Tools 小组的一名信息开发人员。她从事 DB2 Tools 产品方面的工作,为数据库管理和变更管理提供方便,其中就包括 DB2 Change Management Expert。 |
对本文的评价
|