IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management | Rational  >

信息集成: DBA 手中的 RDA

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Nelson King, 程序员, Freelance writer

2006 年 11 月 22 日

来自 DB2 Magazine 中文版。Rational Data Architect 让日常工作更轻松。

如果要我说出 IBM Rational Data Architect(RDA)的最佳特性,我会说是该产品的多面性。当然,创建联邦数据源的简便性和成熟的基于 Eclipse 的 Workbench 也是极好的高级特性,但是它们只是对 RDA 本身用处有贡献。真正使 RDA 与众不同的是,它从逻辑数据模型到物理数据模型的转换能力、对已有数据库的管理和反向工程能力、分析模式的能力、应用业务规则的能力、创建存储过程的能力、发布模式和报告(打印或放在网上)的能力以及处理大量其他与数据库相关的任务的能力。

RDA 就像是企业数据库管理方面的瑞士军刀。这是否意味着它无所不能?不是的,瑞士军刀也不能作为铲车的替代品。但 RDA 是一个精心组织的工具箱,可以迅速适应各种情况。

为了说得更明白一点儿,假设我们使用 RDA 来处理 DBA 或数据架构师的一些日常工作。虽然这些事件是虚构的,但这些场景在现实中都能碰到。

上午 8 点:一切正常

当检查完服务器监视器和数据库状态仪表板之后,DBA 或数据架构师会一边喝一天中的第一杯咖啡,一边打开 RDA。至于我们,一开始的工作是继续为气象产品线设计一个传感器数据库。一开始还比较小的传感器属性列表,随着产品的增多而逐渐变长。设计过程采用典型的 “哦耶(oh yeah)” 方法 —— 就像这样,“哦耶,我们需要将它转换成华氏温度。” 对此我们望而生畏,因为我们没有用计算属性,对吗?我们有过争论,但是由于有个存储过程将在一个繁忙的循环中使用这个数字,我们决定破例。


图1

进入 RDA,我们打开传感器数据库模型,它仍然处于逻辑设计阶段(见图 1),然后添加带大量注释的属性。我们使用 RDA workbench 为最终的存储过程创建一个桩模块,其中含有关于计算值的注释。RDA 有一个非常好的 Analyze Model 功能,它可以检查重复关系、范式、模型和 SQL 语法以及我们用 Object Constraint Language(OCL)创建的一些业务规则。验证例程可能会抱怨这个属性,所以我们需要有用的文档。RDA 可以存储关于设计的几乎所有东西,包括文本文件、图、书签 —— 它用来将工作编制成文档的一切素材。





回页首


上午 10 点:一个孤立的数据库

电话响起。是一位好心的新任部门经理打来的。她告诉我们,她在她的部门发现一个 “测试数据库”,这个测试数据库实际上用于跟踪重要的销售结果(通过手工录入数据)。她认为我们需要保留这些信息,但是又想知道是否不应该将它与公司数据库集成。我们通常不会像 Borg 那样做。然而,反对是徒劳的 —— 这个孤立的数据库将被吸收。经过艰难的协商,并就什么是数据定义交换了意见之后,在中午之前,RDA 投入了工作。(只有在虚构的故事中进展才会这么快。)

为了找到数据,我们使用 Data Connection Wizard。一般情况下并不是每个人都喜欢它们,但是 RDA 提供的大多数向导不仅对新手很有帮助,而且对于每个想快速完成例行工作的人来说帮助也很大。我们匆忙建立一个到那个孤立数据库的连接。这个数据库在内部网上,但是不在 DB2 中,幸运的是,RDA 可以用 JDBC 处理很多类型的数据源(DB2、Oracle、SQL Server、Informix 和 Sybase)。打了一通电话之后,我们最终获得了正确的密码。


图2

由于这个数据库没有模式或 DDL,所以我们使用 Physical Data Model Wizard 对数据库中的模型进行反向工程。我们一下子就看出这个模型与正式模式的类似之处,不过我们需要精确的映射。集成建模 —— 通过模式之间的映射发现关系 —— 是 RDA 很擅长的事情。我们还设置了一些转换例程和其他例程,它们将帮助清洗传入的数据。即使使用图形化 RDA 工具,这种映射也需要有经验的目测和大量细致的操作(见图 2)。这需要时间。





回页首


下午 2 点:19 个远程程序员

我们在工作台上一边会餐,一边讨论我们的 19 个开发人员的情况,他们刚走出校园。他们已经在抱怨,他们还没有融入到新项目中。所以我们决定将整套 RDA 模式和实体图发布到 Web 上。我们将给他们两天的时间来学习模式,然后举行一次培训会议,向他们解释什么以及为什么的问题。RDA 使发布工作简单到只需按一个按钮。

有些开发人员问过,他们是否可以自己处理 RDA。当然可以,我们说,RDA 可以为不同的角色(包括 Eclipse 开发者、Java 开发者和数据专家)改变功能和 UI。我们尽量让他们明白,理解基本的数据库管理和设计会有所帮助,但是 RDA 欢迎有一些数据库背景知识的新手。他们还需要得到团队的支持。





回页首


下午 4 点:CL_MXPRF_TO?

关于 RDA 最棒的事情就是从 UML 建模工具转而使用集成数据库设计工具很容易。我见过很多的建模工具,但是很少有工具在将逻辑数据库组件转换为物理数据库组件时能进行这么多的控制。

我们又回到传感器数据库的工作上来,它需要很快地成为一个真正的数据库。我们将用 RDA 根据模型生成一个特定于语法的 DDL 模式,并将其保存为一个脚本,提供给主 RDBMS(在这里就是 DB2)来执行。但是首先,我们继续对模型进行验证检查。今天下午,一次测试挑出了一个不符合公司标准的属性名称:CL_MXPRF_TO。我们不知道是谁将它放入到模式中的,当然我们也不知道它是什么,因为它没有带注释。会不会是用来考我们的圈套呢?

不,它是我们忘了加注释的一个什么东西。我们已经弄清楚,该属性是来自 WebSphere Information Integrator 联邦函数的很多属性中的第一个属性,但是我们还没有理清所有的联系。当我们理清这些联系之后,需要用 RDA Impact Analysis 窗口进行整体上的观察,以便研究依赖关系,确保所有引用都是有依据的。我们将这两样东西放入到 RDA Task List 中。我们还做了笔记,考虑 RDA 中可用的很多不同的验证测试(有些是显式的,有些是隐式的),并决定给它们排序。





回页首


忘乎所以

RDA 有如此丰富的特性,包括 UI 的细节,所以要学会它们并理解它们的用法需要不少时间。例如,我仍然在探索,RDA 是如何使用 Eclipse Modeling Framework(EMF)的,后者使 RDA 的功能扩展起来容易得多(虽然不一定很简单)。有空的时候我会想学习如何构建一些数据管理 Eclipse 插件。我已经有了一些想法。当然,这只是为了在闲暇时找点儿乐子……



参考资料



关于作者

Nelson King 是在编程方面有 25 年经验的老兵。他编写过 9 本关于应用程序开发的书籍,他的工具评测在很多地方发表。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款