25年DBA讲述数据库管理的"瑞士军刀"
如果要我说出 IBM Rational Data Architect(RDA)的最佳特性,我会说是该产品的多面性。当然,创建联邦数据源的简便性和成熟的基于 Eclipse 的 Workbench 也是极好的高级特性,但是它们只是对 RDA 本身用处有贡献。真正使 RDA 与众不同的是,它从逻辑数据模型到物理数据模型的转换能力、对已有数据库的管理和反向工程能力、分析模式的能力、应用业务规则的能力、创建存储过程的能力、发布模式和报告(打印或放在网上)的能力以及处理大量其他与数据库相关的任务的能力。
原文出自Nelson King 他是一位超过25年开发经验的程序员,他现在为widely出版社签约技术作者。
为让各位专才能够更加准确的了解RDA,我在译文后附上了原文,供大家甄别。
DBA 手中的 RDA
如果要我说出 IBM Rational Data Architect(RDA)的最佳特性,我会说是该产品的多面性。当然,创建联邦数据源的简便性和成熟的基于 Eclipse 的 Workbench 也是极好的高级特性,但是它们只是对 RDA 本身用处有贡献。真正使 RDA 与众不同的是,它从逻辑数据模型到物理数据模型的转换能力、对已有数据库的管理和反向工程能力、分析模式的能力、应用业务规则的能力、创建存储过程的能力、发布模式和报告(打印或放在网上)的能力以及处理大量其他与数据库相关的任务的能力。
RDA 就像是企业数据库管理方面的瑞士军刀。这是否意味着它无所不能?不是的,瑞士军刀也不能作为铲车的替代品。但 RDA 是一个精心组织的工具箱,可以迅速适应各种情况。
为了说得更明白一点儿,假设我们使用 RDA 来处理 DBA 或数据架构师的一些日常工作。虽然这些事件是虚构的,但这些场景在现实中都能碰到。
上午 8 点:一切正常
当检查完服务器监视器和数据库状态仪表板之后,DBA 或数据架构师会一边喝一天中的第一杯咖啡,一边打开 RDA。至于我们,一开始的工作是继续为气象产品线设计一个传感器数据库。一开始还比较小的传感器属性列表,随着产品的增多而逐渐变长。设计过程采用典型的 “哦耶(oh yeah)” 方法 —— 就像这样,“哦耶,我们需要将它转换成华氏温度。” 对此我们望而生畏,因为我们没有用计算属性,对吗?我们有过争论,但是由于有个存储过程将在一个繁忙的循环中使用这个数字,我们决定破例。
进入 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)。打了一通电话之后,我们最终获得了正确的密码。
由于这个数据库没有模式或 DDL,所以我们使用 Physical Data Model Wizard 对数据库中的模型进行反向工程。我们一下子就看出这个模型与正式模式的类似之处,不过我们需要精确的映射。集成建模——通过模式之间的映射发现关系——是 RDA 很擅长的事情。我们还设置了一些转换例程和其他例程,它们将帮助清洗传入的数据。即使使用图形化 RDA 工具,这种映射也需要有经验的目测和大量细致的操作(见图 2)。这需要时间。
下午 2 点:19 个远程程序员
我们在工作台上一边会餐,一边讨论我们的 19 个开发人员的情况,他们刚走出校园。他们已经在抱怨,他们还没有融入到新项目中。所以我们决定将整套 RDA 模式和实体图发布到 Web 上。我们将给他们两天的时间来学习模式,然后举行一次培训会议,向他们解释什么以及为什么的问题。RDA 使发布工作简单到只需按一个按钮。
有些开发人员问过,他们是否可以自己处理 RDA。当然可以,我们说,RDA 可以为不同的角色(包括 Eclipse 开发者、Java 开发者和数据专家)改变功能和 UI。我们尽量让他们明白,理解基本的数据库管理和设计会有所帮助,但是 RDA 欢迎有一些数据库背景知识的新手。他们还需要得到团队的支持。
- 本文关键词:

