电脑技术学习

DB2 变更管理工具与Rational DA集成(1)

dn001
  本文示例源代码或素材下载   概述  将数据库变更治理过程想象成一套彼此相连的拼图。一块拼图是数据建模,另一块是数据库更改。我们将展示 IBM 为将这两块结合在一起而提供的解决方案。IBM DB2 Change Management Expert for Linux®, UNIX®, and Windows® 是一款新的数据库变更治理工具。它可以单独使用,也可以与 IBM Rational Data Architect 结合使用,后者是用于企业数据建模和集成设计的工具。在物理数据模型方面,这两种工具使用相同的语言,因而可以集成从设计和建模到数据库变更治理的过程。 物理数据模型使数据架构师、开发人员和数据库治理员面对同一个页面,而不必在个人与小组之间往返转换更改。  DB2 Change Management Expert 和 Rational Data Architect 都使用 Eclipse 框架。同时使用这两个产品的团队可以利用 Eclipse Team 组件来控制信息流。而且,Rational Data Architect 和 DB2 Change Management Expert 可以同时出现在同一个 Eclipse 框架中(也就是说,通过 “shared shell 安装)。在一人扮演多个角色的情况下,shared shell 可以提供一个单独的用户界面。  场景概述  本文通过一个场景来阐释客户如何使用这两种产品。我们将以一家虚构的公司 JK Enterprises 作为示例客户。JK Enterprises 已经开始使用 DB2 Change Management Expert 和 Rational Data Architect。JK Enterprises 的数据建模师 Tom 正在使用 Rational Data Architect,而身为公司 DBA 的 Eric 正在使用 DB2 Change Management Expert。但是请注重,在某些较小的工作室,可能一个人同时使用这两个工具。  假设由于 JK Enterprises 的业务需求,他们需要为他们的项目添加完成码。他们需要对数据库加以更改,添加一个完成码表,但是他们还希望在逻辑模型中反映这一更改。由于不确定逻辑模型是否是最新的,因此他们选择首先根据生产数据库创建一个物理模型。Eric 将在 DB2 CME 中创建这个物理模型,并将它发送给 Tom。然后,Tom 使用 Rational Data Architect 将这个物理模型转换为一个逻辑模型,并确定完成码实体、所需的关系和属性。然后,通过与 Eric 协商,他在 Rational Data Architect 中将这个逻辑模型转换成一个物理模型。然后,Eric 在 DB2 Change Management Expert 中使用这个更新后的物理模型,并将变更迁移到一个测试数据库中。 12345678910下一页   图 1. 场景概述    本场景分为以下 3 个主要部分:  Eric 使用 DB2 Change Management Expert 为 HR 数据库 创建物理模型。  Tom 使用 Rational Data Architect 将物理模型转换为逻辑模型,并对逻辑模型作出更改。  Eric 使用 DB2 Change Management Expert 将 Tom 作出的更改迁移至 HR 数据库。  假如您具有以下先决条件,那么可以通过完成以下小节中的步骤,尝试这些步骤。  先决条件  本场景使用 DB2 Change Management Expert Version 1.1 和 Rational Data Architect 7.0。假设数据库治理员已经在计算机上安装了 DB2 Change Management Expert,并且数据架构师已经在计算机上安装了 Rational Data Architect。(或者,假如一个人既是数据库治理员又是数据架构师,那么应该在同一台计算机上同时安装这两个工具。)  此外,必须在 DB2 Universal Database™ V8 (DB2 UDB) 或 DB2 V9 数据库中创建 JK Enterprises 的 HR 数据库。可以使用 DB2 Change Management Expert 来创建这个数据库。完成以下步骤,以创建并填充该数据库:  下载 CMERDADemo.zip package 到一个临时目录中。解压这个包。  使用 DB2 Change Management Expert 创建一个新的数据设计项目。  将 createCMERDADemo.chx 从临时目录复制到刚才创建的数据设计项目中的 SQL Scripts 文件夹中。  展开 SQL Scripts 文件夹。  右键单击 createCMERDADemo.chx 文件,然后单击 Run SQL。这时会弹出 Deploy Change Commands 向导。  完成 Deploy Change Commands 向导中的步骤,创建和填充 HR 数据库: 上一页12345678910下一页   确保选择了适当的数据库版本。  输入用户名和密码。  不选 “Create Deployment Project and Script file" 复选框,单击 Finish。  场景步骤  A 部分:创建 HR 数据库的物理模型  在本场景的第一部分,Eric(数据库治理员)创建一个新的部署脚本,它是跟踪变更治理进程的一个 DB2 Change Management Expert 资源。当他为 HR 数据库创建部署脚本时,会创建该数据库的两个物理模型。一个模型是基本模型,表示数据库的当前状态。第二个模型是目标模型,您要编辑这个模型,以指定更改后数据库的样子。  Eric 会将基本模型发送给 Tom。之后,Eric 将 Tom 在本场景第二部分作出的更改应用到目标模型。  和 Eric 一样,您将完成以下步骤来创建部署脚本和物理模型。  从主菜单栏中,单击 File --> New --> Deployment Script。这时会弹出 Deployment Script 向导。  完成 Deployment Script 向导中的步骤:  输入 "CMERDADemo" 作为项目名称,然后输入 "CMERDADemo_HR" 作为部署脚本的名称。单击 Next。  选择 Use Existing Connection,然后选择 JKENT。 单击 Next。  输入用户 ID 和密码。单击 Next。  选择 HR 作为模式。单击 Next。  确认选择了所有元素。单击 Next。  确认将用于 HR 模式的基本模型和目标模型的默认名称。单击 Next。 在这个场景中,默认名称为 CMERDADemo_HR_base.dbm 和 CMERDADemo_HR_target.dbm。  确认 Options 页面上没有选中任何复选框。单击 Finish。  DB2 Change Management Experts 创建部署脚本和 HR 模式的基本模型及目标模型。图 2 展示了当展开 Data Models 和 SQL Scripts 文件夹时出现的这些模型和脚本: 上一页12345678910下一页   图 2. Data Project Explorer    此时,通过电子邮件将基本模型发送给 Tom,Tom 是数据建模师和数据架构师,他那里有 Rational Data Architect。或者,也可以将它注册到一个版本控制系统中,这样 Tom 就可以通过 Rational Data Architect 在那里查看它。  B 部分:将物理模型转换成逻辑模型,并更改逻辑模型  在本场景的第二部分中,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 Markup,以显示 Data Type Map。  假如有一行中 Logical Data Type 为 ROWID,则删除该行。 上一页12345678910下一页   单击 OK。  复制 Eric 通过电子邮件发来的物理模型,将其粘贴到一个数据设计项目中。  完成以下步骤,将物理模型转换成逻辑模型:  在 Data Project Explorer 中,在数据设计项目的 Data Models 文件夹下,选择物理模型 CMERDADemo_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,其中显示关于该逻辑模型的信息。 逻辑模型 CMEDEMO_HR_base.ldm 创建成功,并出现在 Data Models 文件夹中,如图 3 所示:  图 3. Data Project Explorer    为逻辑模型创建一个数据图。您将使用数据图对逻辑模型进行更改。  Data Models 文件夹中的逻辑模型 CMERDADemo_HR_base.ldm。  右键单击 Diagrams(在 HR 下),然后单击 New Overview Diagram。  选择 HR 模式,以包括所有相应的元素,然后单击 OK。 该图在 Data Diagram Editor 中打开,如图 4 所示:  图 4. HR 模式的实体图   上一页12345678910下一页   将用于完成码的一个名为 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 文件夹。 上一页12345678910下一页   选择逻辑模型 CMERDADemo_base.ldm,然后单击 Data --> 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 通过 DB2 Change Management Expert 在那里查看它。  C 部分:将发回的更改应用到 HR 数据库上  在本场景的最后一部分,Eric 将 Tom 发回的对物理数据模型的更改迁移到 HR 数据库的目标模型上。之后,Eric 生成将这些更改应用到实际的 HR 数据库时所需的更改命令,并将更改命令部署到数据库。  和 Eric 一样,您将完成以下步骤:  启动 DB2 Change Management Expert。  复制 Tom 发回的物理数据模型(CMERDADemo_HR_changes.dbm),在 Data Project Explorer 中将其粘贴到 CMERDADemo 数据设计项目的 Data Models 文件夹中。  右键单击 SQL Scripts 文件夹中的 CMERDADemo_HR.deployxml,打开部署脚本。Deployment Script Editor 中显示部署脚本。  图 6 显示了 Deployment Script Editor:  图 6. Deployment Script Editor   上一页12345678910下一页   将 Tom 发回的物理数据模型(CMERDADemo_HR_changes.dbm)中的更改迁移到 HR 数据库的目标模型(CMERDADemo_HR_Target.dbm)上:  单击 Deployment Script Editor 的 Data Models 标签页,在 Data Models 页面上,单击 Add。  在 Source Models selection 对话框中,通过下钻选择有更改的模型(CMERDADemo_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 视图 上一页12345678910下一页     为了检查和修正这种错误:  为了使 Problems 视图中显示的问题仅限于所选择的元素(目标 HR 模型),单击 Filters 图标( ), 单击 On selected element only,然后单击 OK。  双击显示的第一个错误。单击 Properties 标签页,将主键的名称改为 COMP_CODES_PK。  单击 Problems 视图,然后双击显示第二个错误。单击 Properties 标签页,将外键的名称改为 COMP_PROJ_FK。  保存对目标模型的更改。  再次单击 Problems 视图,确认错误已修正。  生成更改命令,以实现这些更改。单击 Deployment Script Editor 的 Change Commands 标签页,然后在 Change Commands 页面上单击 Generate Change Commands。这时弹出 Generate Change Commands 向导。  在该向导中完成以下步骤:  在 DDL Generation Options 页面上,确认将作出正确的更改。确保 Enable Undo 复选框被选中,以生成必要时用于撤销更改的命令。单击 Next。  在 User Information 页面上,指定用户 ID 和密码。单击 Next。  在 Specify File Information 页面上,为导出和导入命令指定一个数据文件位置。这里必须指定完整的路径。指定数据文件格式,接受默认的导出和导入文件名。单击 Next。  Mapping Table 页面上显示应该从中导出数据然后再导入数据的表。单击 Next。  在本场景中,为了删除 ORGANIZATION 表中的 DEPTNAME 列,需要先导出数据,以确保数据不会丢失。通过使用 DB2 Change Management Expert,可以导出数据,删除表,重新创建一个新表,然后将数据导入到那个新表。还可以使用一个文件,将数据从该文件中导入到新表中。 上一页12345678910下一页   在 Customize Export Commands 页面上,单击 Default Query,确保要删除的列 DEPTNAME 不在 SELECT 列表中。单击 Next。  在 Customize Import Commands 页面上,检查导出列与 ORGANIZATION 表的导入列之间的映射。单击 Next。  在 DB2 Maintenance Command 页面上,检查是否要生成用于保留对象上的授权、重新绑定包、生成 runstats 或者刷新包缓存的命令。默认情况下没有选择任何选项。  假如选择重新绑定包,则在 Select Schema 页面上,需要为之重新绑定包的模式被默认选中。  在 Merge Change commands 页面上,单击 Next。  单击 Finish 生成更改命令。可以在 Deployment Script Editor 的 Change Commands 页面上查看生成的更改命令。  将更改部署到 HR 数据库中。在 Deployment Script Editor 的 Change Command 页面上,单击 Deploy Changes to the Target Database。这时弹出 Deploy Change Commands 向导。  完成 Deploy Change Commands 向导中的步骤。  在 Deploy Steps 页面上,输入用户 ID 和密码。选中复选框。单击 Next。  在 Check Base Model 页面上,单击 Next。  在 Change Commands 页面上,查看将被部署到数据库上的更改命令。单击 Finish。  Data Output 视图中包含对 HR 数据库作出的更改的状态。  结束语  本文演示了一个关于客户如何同时使用 DB2 Change Management Expert 和 Rational Data Architect 的场景。这两种工具之间可以共享相同的物理模型,从而答应从设计和建模到数据库变更治理的集成过程。这个逐步教程应该可以帮助新用户学会同时使用这两种工具。 上一页12345678910