将 ERwin 数据模型迁移至 Rational Data Architect
IBM® Rational® Data Architect 提供了当前市场上很多数据建模工具所没有的独特特性。将 CA ERwin Data Modeler 中创建的已有数据模型迁移至 Rational Data Architect,并探索数据建模师和数据架构师日常使用的一些 Rational Data Architect 特性。
简介
Rational Data Architect 是一种数据建模和集成设计工具,可以帮助数据架构师理解信息资产,建立资产之间的映射,以及创建集成模式。
作为一名数据建模师或数据架构师,不仅需要使用数据建模工具,还需要使用版本控制工具、一些必备工具和多个数据模型。很多数据建模工具,例如 ERwin,都无法像 Rational Data Architect 一样提供高度集成。Rational Data Architect 集成了跨整个软件开发周期的各种应用程序,有了它,就可以降低风险,增加可预测性。而且,Rational Data Architect 中提供了很多企业数据建模特性,例如联邦设计、惟一映射和映射发现功能。要使用 Rational Data Architect 中的这些新特性,第一步是将 ERwin 中创建的已有数据模型迁移至 Rational Data Architect,并了解日常工作中最常用的特性。
Rational Data Architect 图形用户界面概述
Rational Data Architect 的 GUI 基于 Eclipse (Eclipse 是用 java 语言编写的一个开源软件框架)。 如果您使用过 Eclipse 或基于 Eclipse 的其他工具,那么就应该熟悉这种公共界面所提供的用户体验。 Rational Data Architect 可以在 Windows® 和 Linux® 中运行,并且在这两种系统上使用相同的界面,因此当您使用其中任何一种底层操作系统时,都不会感到陌生。
第一次打开 Rational Data Architect 时,它自动为数据透视图设置环境。您可以通过选择图 1 右上角的图标来验证这一点。
图 1. Rational Data Architect 中被选中的数据透视图
下面的图 2 显示了数据透视图模式下 Rational Data Architect 环境概览:
图 2. Rational Data Architect 的环境
在数据透视图中,GUI 有以下 6 个主要区域:
- 数据项目浏览器: 该面板显示同一个工作区中的所有项目,以及它们的对象层次结构。同一个工作区中可以有不同类型的项目(即数据设计和数据开发项目)。项目的对象是由您通过一些操作创建(例如在一个数据设计项目中创建一个新的数据模型,等等)。
- 数据库浏览器: 该面板显示在 Rational Data Architect 之内或之外设置的所有数据库连接(即编目的 DB2 数据库)。在这个面板中,可以随时创建到任何受支持的数据库系统的新数据库连接。
- 属性面板: 该面板显示打开且活动的对象(即一个逻辑数据模型中的数据模型或实体)的属性。除了主选项卡 properties 外,这个面板还有其它一些选项卡(例如 error log 等)。
- 编辑器: 每当打开一个数据模型或一个数据图时,它就显示在该面板中,位于屏幕的中间。
- 对象选项板: 它本身不是一个真正的面板,但是依赖于前面提到的面板。这个选项板提供了所有可添加的对象。
- Outline: 该面板显示在编辑器面板打开的图中的所有对象。可以通过整个数据模型的缩略图查看信息,其中灰色阴影表示编辑器中的可见区域,也可以以层次结构的形式查看。
两种工具之间的主要差别
在导入 ERwin 文件之前,需要知道这两种工具之间的主要差别。在 Rational Data Architect 中,可以在同一个工作区打开多个项目,每个项目可以有多个数据模型。这是因为 Rational Data Architect 为每个项目创建一个文件夹或目录,如果进行指定,可以将项目的对象(即数据模型)创建到同一个目录中。
最重要的不同点是,Rational Data Architect 在单独的文件中创建数据模型 —— 逻辑数据模型使用一个文件,物理数据模型使用另一个文件。
如 果您以前使用的是 ERwin,那么数据模型处理方法的不同可能会让您感到头痛,但是 PowerDesigner 也使用了相同的方法。这种方法迫使您在逻辑与物理数据模型之间进行同步,本文后面会讲到。乍一看来,这似乎是件坏事,但是这使您可以从一个逻辑模型生成多 个物理数据模型。那些物理数据模型可用于不同的数据库系统(例如 DB2 和 Informix)和环境。
Rational Data Architect 支持的建模符号有:
- 逻辑数据建模
- IE - Information Engineering
- 物理数据建模
- IE - Information Engineering
- UML
术语方面的差异:
表 1. 术语方面的差异
ERwin | Rational Data Architect |
---|---|
存储显示和主题区 | 数据图 |
注释 | 文档 |
迁移数据模型
在导入数据模型之前,必须创建并至少打开一个工作区,以便能够导入或创建数据模型。
让我们创建一个工作区,以便导入 ERwin 数据模型。
选择 File > Switch Workspace 。 在图 4 中,注意屏幕上没有提示创建工作区,而是切换工作区。但是,如果指定一个不存在的工作区,则 Rational Data Architect 将创建一个工作区。
这样就有了一个可以使用的工作区。现在需要创建一个项目。由于我们要使用数据模型,因此需要指定项目类型为数据设计项目。
要创建一个项目,选择 File > New > Project 。然后可以看到如图 5 所示的向导:
图 6 显示了刚才创建的项目。
导入过程本身非常简单。
要开始导入,选择 File > import 。 这时会打开导入向导(如图 7 所示)。
选择 Data 类别下的 Data Model Import Wizard ,然后选择 Next 。
接下来的屏幕要求提供关于要导入的数据模型的信息。要求的信息有:
-
Model format:
需要从下面几样中选择您创建的 ERwin 数据模型的版本:
- CA ERwin, Version 3.x (ERX format)
- CA AllFusion ERwin Data Modeler, Version 4.x (ER1 format)
- CA AllFusion ERwin Data Modeler, Version 4.x (XML format)
- Model: 指定要导入的文件的名称和完整路径
- Target project: 指定将数据模型导入到哪个项目
- Model type: 可以使用自动选择选项,指定从 ERwin 文件中导入逻辑数据模型还是物理数据模型,还是两者都导入。如果想导入整个文件,那么这是最好的选项,这样就不必打开该文件来查看它是只包含逻辑数据模型还是只包含物理数据模型。
-
File Name:
指定新的数据模型文件的名称。如果同时导入逻辑数据模型和物理数据模型,那也不必担心,因为这两个文件虽然使用相同的名称,但是使用不同的后缀。
后缀为:- ldm - 逻辑日志文件
- pdm - 物理日志文件
输入必要的信息,然后选择 Next 。
图 9 中的屏幕显示可用的导入选项(要了解关于导入选项的更多信息,请参阅 “导入选项 ” 小节)。单击 Next 。
如图 10 所示,接下来的屏幕显示一个概述,同时还显示导入过程中可能出现的错误和警告。 选择 Finish 。
数据模型在数据设计项目下创建,本例中命名为 Migrate,如图 11 所示:
在导入期间,需要选择一些导入选项。我们来仔细研究这些导入选项:
屏幕上的第一部分是 Options 和 Values 表:
- Apply binary characters filter (默认值:True):只有在使用 XML 文件作为源文件时才有效。指定在导入前是否过滤文件中无效的二进制字符。 注意,应用该过滤器时可能会删除一些 Unicode 字符
-
Import views
(默认值:As view):指定如何导入视图:
- As View: 作为视图对象导入
- Both as Table and View: 对于 ERwin 模型中的每个视图,Rational Data Architect 都在导入的数据模型中创建一个表和视图。 如果导入 Meta Integration Repository 中的模型,并且想使用视图作为数据移动源,那么该选项可能有用
- Import IDs (默认值:True): ERwin 4 XML 文件中每个已有的对象都有一个惟一的 id。如果选择 True,那么 Rational Data Architect 将把 NativeId 属性设为那个惟一的 id
-
Import UDPs
(默认值:As Metadata): 用户定义属性(user-defined property,UDP)是一个属性定义对象,它有一个默认值。可以指定如何将属性定义和值导入
Rational Data Architect:
- As metadata: 只导入显式的值,并将它们设置为属性值。默认值只以属性类型存放
- As metadata, migrate default values: 将显式的和隐式的值都导入为属性值对象
- In description, migrate default values: 只将属性名称和值附加到对象的描述属性后面,即使对于隐式属性也是如此
- Both, migrate default values: 将 UDP 值导入为元数据,并导入到对象的描述中
-
Import relationship name
(默认值:From relationship name):
指定 Rational Data Architect 如何命名导入的关系。如果希望名称更具描述性,那么可以使用该选项:
- From relationship name: 来自 ERwin 文件中已有的名称属性
- From relationship description: 来自 ERwin 文件中的描述属性
- Import subject areas(默认值:Imported as diagrams):
可以指定 Rational Data Architect 如何处理来自 ERwin 的项目区
- Imported as diagrams: 只作为数据图导入。如果选择这个选项,则导入后只有一个包,包的名称与原始数据模型的名称相同,所有导入的项目区都成为这个包中的数据图
- Imported as packages and diagrams: 导入为包和数据图。如果想为每个项目区创建包和数据图,可以使用这个选项
- Do not import subject areas: 不导入项目区
屏幕的第二部分内容为:
- Validity check (默认值:basic validity check): 有效性检查,验证数据模型是否遵从模型格式的语义规则
- Target database (默认值:Auto Detect): 选择要作为生成模型的目标的数据库系统。如果选择 Auto Detect,Rational Data Architect 将使用 ERwin 文件中指定的 DBMS
现在,您已经导入了数据模型。试着通过面板进行导航,并检查对象。本文下一节将讨论数据建模师在日常工作中可能用到的一些特性。
最常用的特性
本节讨论数据建模师在日常工作中最常用的特性。
导入和创建数据模型之后,就可以对它进行导航,我们来看看一个数据建模师在日常工作中使用的主要特性。理解这些特性可帮助您在导航和使用工具时感到更加舒适。
如前所述,当更改逻辑数据模型或物理数据模型时,它们中的另一方并不会自动更新。例如,在逻辑数据模型中,假设在雇员实体中创建一个新的属性。如果这个新属性不是 logical-only 属性,那么当您选择转换物理模型中的逻辑模型时,Rational Data Architect 只在物理数据模型中创建该属性。
为了完成转换过程,首先需要选择要转换的数据模型:
然后选择 Data > Transform > Logical Data Model 。 这里只能选逻辑数据模型,因为我们选择了转换物理数据模型。
每当选择执行这个过程时,可以选择创建新的物理数据模型,或者更新已有的物理数据模型。如果选择创建新的数据模型,则 Rational Data Architect 要求提供文件名和目标文件夹(如图 15 所示):
如果选择更新已有的数据模型,那么 Rational Data Architect 要求提供要更新的文件(如图 16 所示):
无论选择创建新的数据模型还是更新已有的数据模型,Rational Data Architect 都要求提供一些附加信息,根据选择的转换的不同,需提供不同的信息:
图 17. 物理到逻辑转换选项
图 18. 逻辑到物理转换选项
选择 Next 之后,转换过程开始运行,并告诉您何时完成(如图 19 所示):
如果要从同一个逻辑模型实现多个目标数据库,那么可以使用创建新模型的选项。如果要对数据模型做简单的版本控制,那么该选项也比较适合。但是请记住,Rational Data Architect 可以使用 CVS,因此您可以拥有健壮的、功能完备的版本控制软件进行版本控制。
Rational Data Architect 已经为您设计了一些示例报告。那些报告的输出可以是 PDF 或 HTML,所以很容易在企业或项目的其他成员之间分发或共享数据模型,他们不需要知道如何使用工具,也不必将它安装在工作站上。
为了生成 HTML 格式的报告,首先选择需要的数据模型,然后 单击 Data > Publish > Web 。 在 Rational Data Architect 中,HTML 输出称作 “Web”。该输出类似于 JavaDoc 工具产生的输出。
在图 20 中,可以看到用于生成报告的选项。请熟悉这些选项,以便选择最适合您要求的选项。
为了生成 PDF 格式的报告,首先选择需要的数据模型,然后 单击 Data > Publish > Report 。 根据所选择的数据模型类型,可用的报告模板有所不同。
在图 21 中,可以看到用于生成报告的选项。您要熟悉它们,仔细分析不同的报告模板,以便选择最适合自己的模板。
可以从已有的数据模型创建一个 DDL。只需选择目标数据库或模式名称,然后单击右键,选择 Generate DDL (如图 22 所示):
现在,您已经选择了要为之生成 DDL 的数据库,接下来必须选择要在 DDL 脚本中包括的内容(如图 23 所示)。
接下来的步骤是选择要为什么对象生成 DDL(如图 24 所示)。
另外还必须选择只在服务器上运行 DDL,还是打开它进行编辑(如图 25 所示)。
接下来的屏幕将显示所有选择了的选项的摘要(如图 26 所示):
很多时候,在开发阶段或更早的阶段,您并没有为数据库创建数据模型,但是这不能作为没有数据模型的借口。
通过使用 Rational Data Architect 的反向工程特性,很容易为数据库创建数据模型。 Rational Data Architect 将检查编目表(在某些数据库系统中也称系统表),并根据该信息创建数据模型。但是根据数据库的编目表创建数据模型并不是惟一的选择。还可以选择根据一个 DDL 文件进行反向工程。
首先,对于要创建反向设计的新数据模型的项目,选择 Data Models ,然后在选项上单击右键,选择 New > Physical Data Model (如图 27 所示):
现在需要提供一些信息:
- Destination folder: Rational Data Architect 将数据模型文件实际保存在该位置
- File name: Rational Data Architect 如何命名数据模型文件
- Database: 物理数据模型的目标数据库系统
- Version: 物理数据模型的目标数据库系统的版本
- Create from template: 创建一个空白的数据模型,本例不使用
- Create from reverse engineering: 根据反向工程过程中获得的信息创建一个数据模型
提供所需的信息,然后选择 Create from reverse engineering 选项,并选择 Next (如图 28 所示):
在接下来的屏幕中,需要指定源。在数据库与 DDL 之间作出选择:
我们先看看数据库选项。(后面会谈到 DDL 脚本选项。)
数据库选项
当选定数据库选项时,接下来的屏幕要求提供连接信息。可以创建新的连接,也可以使用已有的连接。但是要清楚,这里的已有连接是指之前设置的、当时已打开的连接。
这个例子使用已有的连接。 选择 Use an existing connection
,然后指定要使用的连接。 准备好后,选择
Next
(图 30)。
在接下来的页面上,可以选择特定的模式名称,以便只将对象导入到那个模式下。 选择 Next (图 31)。
由于这个例子是要从一个 DB2 for z/OS 数据库中导入,因此也可以根据数据库名称进行过滤。选择 Next 图 32)。
选择要导入的元素,然后选择 Next (图 33)。
最后一步 是数据模型选项。选择 Next (图 34)。
选择 next 后,向导将在项目下创建数据模型。
现在我们回到 DDL 脚本选项。
DDL 选项
决定了 DDL 选项后,需要提供文件名和文件的完整路径,以便 Rational Data Architect 能访问到它(图 35)。
如图 36 所示,Rational Data Architect 在创建数据模型之前,会要求提供一些选项。选择 Next ,Rational Data Architect 开始这个过程。
这个过程完成后,Rational Data Architect 显示一个摘要,同时还显示可能出现的警告和错误(图 37)。
至此,您通过对一个数据库或 DDL 脚本的反向工程,创建了一个数据模型。
可以用三种不同的方式进行比较和同步:
- 数据模型之间的比较和同步
- 数据模型与数据库的比较和同步
- 数据模型与 DDL 文件的比较和同步
所有信息都显示在一个表中,所以很容易看出不同之处,并且可以将更多的时间花在分析信息的正确性方面,从而使之同步。
要进行对象之间的比较,首先需要选择要比较的那两个对象(图 38)。
选择比较后,会生成一个表,其中包含了两个数据模型之间的不同点。本例中,整个表都不同。但是,如果两个模型中都包含同一个表,那么只显示不同的列(图 39)。
在比较面板上,需要选择 6 个选项(图 40):
- Copy from left to right: 将对象从左边复制到右边,或者,如果它不在左边,则将它从右边删除。
- Copy from right to left: 将对象从右边复制到左边,或者,如果它不在右边,则将它从左边删除。
- Analyze left impact: 在应用变更之前,分析变更的影响
- Analyze right impact: 在应用变更之前,分析变更的影响
- Generate left delta DDL: 只有在使用比较面板作出更改之后,才能启用该选项。该选项生成在数据库中应用更改所需的 DDL。
- Generate right delta DDL: 只有在使用比较面板作出更改之后,才能启用该选项。该选项生成在数据库中应用更改所需的 DDL。
例如,我们让 PDP 模式等于 DENISV 模式。
选择 Area
,然后选择 copy from right to left (图 41)。
最后,表被从 PDP 模式中删除,并且 generate left delta DDL 选项被启用(图 42)。
图 42. 启用 Generate left delta ddl
如果选择 generate left delta DDL 按钮,则会显示应用更改所需的 DDL(图 43)。
选择 next 时,Rational Data Architect 显示脚本被保存到何处(图 44)。
除了比较同一个项目中的对象外,还可以选择将数据模型与一个数据库或 DDL 脚本进行比较。但是,只有通过反向工程创建的数据模型可以选择该选项。
要执行这种类型的比较,可以选择一个模式或数据库,通过反向工程创建的数据模型存放在该模式或数据库中,然后单击右键,并选择 Compare With > Original Source 。它寻找用于创建数据模型、数据库连接或 DDL 脚本的相同方法,然后执行比较,并在比较面板中显示结果。
结束语
本文对 Rational Data Architect 的 GUI 作了概述,并描述了 Rational Data Architect 如何通过一些简单的步骤导入 ERwin 文件,从而使您可以很快地使用这个很棒的工具。本文还演示了数据建模师日常工作中常用的主要特性。
完成迁移后,就可以利用 Rational Data Architect 特有的一些特性和优点。例如:
- 与跨越整个软件开发生命周期的应用程序进行集成,减少风险的同时增加了可预测性:
- IBM Rational RequisitePro - Rational Data Architect 可以将数据模型与 RequisitePro 库的需求相关联。
- IBM Rational ClearCase - Rational Data Architect 可以与 ClearCase 或 CVS 一起使用,以便进行版本控制,这提供了更好的团队支持和对数据模型的版本控制。
- IBM Rational Software Architect - 通过它可以在类模型与逻辑数据模型之间进行转换。
- 独特的映射和映射发现功能:
- Rational Data Architect 可以自动或手动发现数据资产(表中的列)之间的关系,这些数据资产可来自不同的数据库,甚至可以来自不同供应商的数据库。通过 Rational Data Architect,还可以将数据结构映射到 SOA 接口和 XML 模式。Rational Data Architect 还具有 thesaurus 支持,因此可以建立列名之间的连接(即 Id = customer = account = cust_id)
- 联邦设计:
- 通过 Rational Data Architect 独有的映射和映射发现功能,或者通过一个手动过程,可以联邦数据模型, 换句话说,也就是可以更好地关联和集成不同的、甚至来自不同数据库的数据模型。
- 强大的 DB2 支持 - Rational Data Architect 使您可以在同一个环境(工具)中生成、编辑、导入、测试、调试、部署、比较、导出和批量部署 SQL 代码,包括存储过程和用户定义函数。
- 对不同操作系统平台的支持 - Rational Data Architect 在最常用的客户机操作系统 Linux 和 Windows 中都受支持,并且使用相同的界面。
- 对多种工具进行导入和导出 - Rational Data Architect 可以从 Sybase PowerDesigner、Rational Data Modeler 和 ERwin 等工具导入数据模型,或者将数据模型导出到这些工具。
- 与 IBM Information Server 的集成 - Rational Data Architect 可以从 WebSphere Business Glossary 导入指定的模型,或者将指定的模型导出到 WebSphere Business Glossary,还可以将物理数据模型导出到 WebSphere DataStage。
可以看到,太多的理由支持您迁移至 Rational Data Architect,并使用它独有的特性。