使用 Rational Data Architect 和 Informix Dynamic Server 进行
开始之前
本节解释本教程讲授什么内容,以及如何从中获得最大的收益。
关于本教程
本教程介绍 RDA 中的各种特性,讲解如何对 IDS 使用 RDA。学习如何通过反向工程从数据库生成物理模型、把业务需求转换为(逻辑和物理)模型以及关联领域元素,从而帮助识别 IDS 数据库中的重要和机密信息。
目标
在本教程中,学习如何:
连接 IDS 服务器
通过反向工程从现有的数据库生成新的物理模型
从逻辑模型创建物理数据库模式
修改现有的逻辑模型并把修改应用于数据库
通过连接领域模型和数据库,保持数据的一致性和质量
先决条件
本教程假设读者了解 Informix 数据库服务器的基本知识,并且基本了解如何使用基于 Eclipse 的工具。如果希望了解基于 Eclipse 的工具的背景知识,可以阅读 RDA 欢迎页面包含的 Eclipse 平台概述。
系统需求
需要一个运行 Windows® XP 或 Windows Vista® 的系统,系统应该有大约 1GB 磁盘空间以便安装 RDA 和 IDS。在本教程中,我使用 Informix Dynamic Server version 11.10.TC2 和 RDA version 7.5。本教程使用 superstores_demo 数据库,这是通过 INFORMIXDIRbin 目录中的 dbaccessdemo9 脚本创建的。
对 Informix Dynamic Server 使用 RDA
Rational Data Architect 简介
IBM Rational Data Architect (RDA) 是一个协作式数据设计解决方案,可以发现各种分散的数据资产并对其进行建模、关联和标准化。在任何企业数据环境中,RDA 都是一种基本工具。它具有以下优点:
通过提供以下功能提高数据质量和一致性:
建立和重用逻辑数据模型,以逻辑模型作为企业体系结构的语义基础。
自动执行某些数据设计任务,比如能够根据逻辑设计生成数据源的物理设计;RDA 支持多种数据环境,包括 DB2、Informix、Oracle、Microsoft、Sybase 和 mySQL。
通过反向工程从现有的数据库模式生成物理模型,对比和同步数据模型。
分析和实施企业命名和数据元素定义标准。
通过创建规则生成符合标准的名称。
导入业务术语表或与 WebSphere Business Glossary 集成。
通过支持以下任务简化和加快数据集成设计:
显示现有的各种数据源的结构。
根据数据的性质或列元数据了解这些数据源的关系。
通过鼠标操作定义现有数据资产之间的关系。
通过以下功能更好地调整、控制和加快软件开发过程:
与其他 Rational Software Development 工具集成,包括 Rational RequisitePro、WebSphere Business Modeler、Rational Software Modeler、Rational Software Architect 和 Rational ClearCase。
简化业务分析师、架构师、开发人员和管理员之间的协作。
把各种工具组合在同一个 Eclipse 实例中,以便在与数据相关的不同团队之间转移或共享对象。
启动 RDA
通过 Start->All Programs->IBM Software Delivery Platform->IBM Rational Data Architect 7.5->IBM Rational Data Architect 启动 RDA,见图 1。
图 1. 启动 RDA
在此产品启动时,它会询问默认的工作空间位置。接受默认位置或指定一个合适的目录位置,然后单击 OK。这会启动此产品并打开默认的透视图。
连接 IDS 实例
在启动 RDA 之后,首先应该连接一个 Informix 数据库实例。为此,要确保已经打开了 Data 透视图,见图 2。Data 透视图的左上角显示 “Data Project Explorer”,左下角显示 “Data Source Explorer”。
图 2. Data 透视图
如果 Data 透视图没有打开,那么选择 Window-> Open Perspective->Data,或者选择 Window->Open Perspective->Other 并选择 Data,见图 3。
图 3. 切换透视图
找到屏幕左下角的 Data Source Explorer 视图,见图 4。
图 4. Data Source Explorer 视图
在 “Data Source Explorer” 视图中,右键单击 Databases->New。一个向导打开;在左边选择 Informix 并输入数据库服务器的其他详细信息,见图 5。
图 5. 连接 Informix
注意:要想添加 JDBC 驱动程序的位置,应该在 New Connection 向导中单击 JDBC Driver 下拉框旁边的三角形(图中以红色突出显示)。可以使用 Informix JDBC 驱动程序或者能够连接 Informix 和 DB2 的 JCC 驱动程序。注意,JCC 驱动程序可以连接 IDS 11.0 或更高版本。
单击 Test Connection 以确认连接参数是正确的,然后单击 Finish。这会对后面的所有步骤使用默认设置并连接到数据库。然后可以单击数据库并查看各种数据库对象,见图 6。
图 6. 查看 Informix 对象
通过反向工程从数据库生成模型
本节讲解如何从现有的数据库模式创建模型。如果您希望开始使用模型记录数据库更改并与团队的其他成员交流,那么执行以下步骤。
选择 File->New->Data Design Project。
把项目命名为 “storesModel” 并单击 Finish。应该能够在 Data Project Explorer 中看到此项目,见图 7。
图 7. Data Project Explorer
展开 storeModel 项目,右键单击 Data Models 并选择 New-> Physical Data Model。
在 New Physical Data Model 向导中执行以下步骤,从而从现有的数据库创建物理模型。
在 Database 下拉列表中,选择 Informix。
图 8. Physical Model 向导的步骤 1
确保选择 Create from Reverse engineering 单选按钮,然后单击 Next。
选择连接 superstores_demo(图 9)并单击 Next。
图 9. Physical Model 向导的步骤 2
在 Select Schema 页面上,选择一个模式并单击 Next。在图 10 所示的示例中,选择了 vgopal。
图 10. Physical Model 向导的步骤 3
在 Database Elements 页面中,取消除了 “Tables” 和 “Indexes” 之外的所有数据库元素,见图 11。(可以为多个元素创建模型。对于本教程,只希望为数据库中的所有表创建模型)。
图 11. Physical Model 向导的步骤 4
单击 Finish。
恭喜,我们已经从现有的数据库创建了一个物理模型。展开 Data Project Explorer 中的 Data Models,就可以看到创建的模型对象,见图 12。
图 12. superstores_demo 的物理模型
还可以看到此模型中元素的概况图。可以选择所有元素,也可以显式地选择要查看的元素。
我们来看看表的概况图:
在 Data Project Explorer 中,通过选择 storesModel->Data Models->Database Model.dbm->superstores_demo->vgopal->Diagrams 找到刚才创建的数据模型。右键单击 Diagrams 并选择 New Overview Diagram。
确保选中 Infer Implicit relationships 复选框。
选择 Customer、Orders 和 Items 表。
单击 Finish。因为在前一步中选中了 “Infer Implicit relationships” 框,所以可以看到图中也选择了 Stock 和 Location 表,这是因为它们与您选择的表之间存在外键关系。
在左边进行导航或单击图本身中的对象,就可以看到表定义、主键、外键和用户定义的类型。例如,如果单击 Customer 对象,就可以在屏幕底部的 Properties 视图中看到它的属性。Orders 表的属性见图 13。只需在图中单击 Orders 表并查看 Properties 视图中的各个选项卡。
图 13. 表的 Properties 视图
现在可以做什么?
本节讨论可以利用新的物理模型完成的几个任务:
分析模型,检查它是否符合企业标准
为 Informix Dynamic Server 等目标数据库生成适当的 DDL
发布物理模型
转换为逻辑数据模型
与原来的物理模型做比较
检查模型是否符合企业标准
通过分析模型,可以检查模型是否符合某些数据库设计规则、命名标准等。
右键单击模型(见图 14)并选择 Analyze Model。
图 14. 分析模型
选择分析所用的规则,见图 15。程序会执行详细的分析。
图 15. 分析模型
生成 DDL
右键单击模型并选择 Generate DDL。这会打开图 16 所示的向导。(注意,可以在模式级生成 DDL,也可以为整个数据库物理模型生成 DDL)。选择要为其生成 DDL 的模型元素,在向导的第三步中可以选择 Run DDL on Server 复选框。这样就可以在生成脚本之后直接在数据服务器上运行 DDL。在默认情况下,脚本存储在项目目录中。
图 16. Generate DDL 向导
发布物理模型
发布物理模型的方法是,在 Data Project Explorer 中突出显示模型文件(.ldm、.dbm 或 .ddm 文件),然后在主工具栏中单击 Data->Publish->Web 并指定一个目标文件夹,见图 17。然后,打开在目录文件夹中创建的 index.html 文件,就可以看到此模型。
图 17. 发布模型
转换为逻辑模型
创建逻辑模型可以保存数据模型的记录,而且模型架构师通常使用逻辑数据模型而不是物理模型。
在 Data Project Explorer 中单击物理模型(Database Model.dbm),然后单击图 18 中突出显示的主工具栏按钮。
图 18. 把物理模型转换为逻辑模型
对物理模型做比较
可以在数据库级或表级对物理模型和数据库做比较。假设在模型中的 Orders 表中添加了一个 deliver_date 列。通过右键单击 Orders 表并选择 Compare with -> Original source,与源数据库做比较。
在中间的编辑器中会弹出一个比较窗口,见图 19。
图 19. 比较物理模型和数据库
可以通过这个比较窗口对比物理模型和数据库之间的任何差异。还可以分析修改的影响、复制修改和生成差异 DDL。
通过单击 图 20 中最左边突出显示的按钮,把修改从左边复制到右边。
然后单击 图 20 中最右边突出显示的按钮,生成 ALTER DDL。
这个功能非常强大,允许用户有选择地管理修改。
图 20. 比较物理模型和数据库
从逻辑模型开始自顶向下的开发
逻辑建模过程收集业务需求并把这些需求转换为模型。逻辑模型体现业务的需求而不是数据库,尽管要使用业务需求建立数据库需求。建模架构师负责进行逻辑建模。当模型设计已经满足必要的需求时,把逻辑模型转换为物理模型,最终作为物理工件部署到数据库。这是新应用程序通常采用的开发流程。下面看看具体步骤。
右键单击 storesModel project 并选择 New->Logical Data Model。指定模型名称 storesLogicalModel 并单击 Finish。在屏幕右边会打开一个新的编辑器,见图 21。
图 21. 创建新的逻辑模型
注意:因为这是在逻辑模型级上,所以我们要使用逻辑模型级元素而不是数据库级元素。因此,在这个模型中,要添加实体、属性和关系等。在把此模型转换为物理模型时,实体被映射到表,属性映射到列,等等。
我们来为书店创建一个简单的逻辑模型,见图 22。此模型中的实体是 Book、Author 和 BookCategory。对于每个 Book 实体,可以有多个 Author;每个 Book 属于一个或多个 BookCategory 实体。因此,在 Book 与 Author 实体和 BookCategory 实体之间存在一对多关系。
图 22. 我们将创建的模型
使用图 23 所示窗口右边的 Palette 设计器创建实体和属性。
图 23. 创建实体
可以在实体中添加元素,方法是右键单击实体(或把鼠标停留在实体上),使用图 24 所示的两个按钮添加主键或属性。也可以在底部的 Property 对话框中添加属性。
图 24. 添加属性
按照以下步骤创建所有三个实体以及它们的主键和关系:
创建 Book 实体
添加主键 BookID
添加属性 ISBN、DatePublished、BookTitle 和 BookComments
按照图 25 设置类型
图 25. Book 实体的属性
创建 BookCategory 实体
添加主键 BookID
添加属性 CatCode 和 CatDes
按照图 26 设置类型
图 26. BookCategory 实体的属性
创建 Author 实体
添加主键 BookID 和 AuthorID
添加属性 AuthorName 和 AuthorBio