您的位置:首页技术文章
文章详情页

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

【字号: 日期:2023-11-11 11:41:12浏览:6作者:猪猪
本文示例源代码或素材下载 概述将数据库变更治理过程想象成一套彼此相连的拼图。一块拼图是数据建模,另一块是数据库更改。我们将展示 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. 场景概述DB2 变更管理工具与Rational DA集成(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
标签: DB2 数据库