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

developerWorks 中国  >  Information Management | Rational  >

DB2 Magazine 中文版: 通过设计获得灵活性

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Eric Michiels, 高级 IT 架构师

2006 年 8 月 31 日

来自 DB2 Magazine 中文版。IBM Rational Data Architect 使得满足那些几乎不可能的设计需求的可能性大大增加。

在 3 月 16 日,IBM 宣布了 Rational Data Architect (RDA),这是一种新的基于 Eclipse 的工具,通过它可以发现、建模、可视化、关联和开发不同格式的分布式数据资产。

RDA 是 WebSphere Information Integration 平台的一部分,它是 IBM Information On Demand 图景中信息集成服务层的具体实现。

WebSphere Information Integration 公文包使企业可以执行五大关键集成功能:

  • 连接存储在任何地方的数据或内容
  • 理解和分析信息、它的意义以及关系
  • 清洗信息,以保证信息的质量和一致性
  • 转换信息,以提供丰富的、经过定制的信息
  • 将信息组成联邦,使需要它的人、过程和应用程序能够访问它

在这些功能之下是一个公共元数据和并行处理基础设施层。通过发布的共享服务,这些功能可以放在一个面向服务架构(SOA)中使用。

RDA 属于 Understand(理解)功能。它帮助创建整个信息基础设施的“大图画”。有了 RDA,您可以设计新的数据库,对已有的数据源进行反向工程,执行数据源之间的相互映射,以及生成实现数据库中联邦概念所需的代码。

RDA 可以运行在 Windows (2000, XP, 2003) 和 Linux (SUSE Linux 9, RedHat ES Linux 3.0) 平台上,它使用与其他 Rational 设计和构造工具相同的平台,因而具有可扩展性和熟悉的用户体验。例如,Workspace 是 RAD 将永久保存的所有信息的根位置,而它也是所有 Rational 工具所共有的。项目(project)是 Rational 用户熟悉的另一个概念,项目是为描述将被处理的工作类型而创建的。例如,在一个 Workspace 中,您将发现一个 Data Design Project 和一个 Data Development Project。这种结构显示在 Project Explorer 中,后者是用于 RDA 和大多数基于 Eclipse 的工具的导航工具。

在本文中,我将 RDA 的一些关键功能分为以下几类进行概述:

  • 设计和建模
  • 理解关系
  • 变更管理

设计和建模

设计和建模功能包括逻辑数据建模、物理数据建模和不同数据源的相互映射以及将不同数据源集成到一个联邦模式中。标准(例如命名)可以与其他规则(例如第一、第二和第三范式以及索引的过度使用)可以一起实施。

逻辑数据建模。RDA 允许数据架构师执行逻辑数据建模任务,例如定义带属性、键、约束和特性的实体。通过定义关系,实体之间可以相互关联,实体之间的关系可以是等同关系(identifying)、非等同关系(nonidentifying)、多对多关系,或者表示一种泛化(generalization)。设计人员可以创建一个实体关系图,这个实体关系图一开始是一个空白的逻辑模型,或者是一个模板,或者是包含标准或核心企业实体的可重用的模型。这些实体关系图中可以加入对实体和属性的描述,并带上注释(见图 1)。


图 1. 这个逻辑数据模型阐释了属性、主键、外键、等同关系、非等同关系和基数。
图 1. 这个逻辑数据模型阐释了属性、主键、外键、等同关系、非等同关系和基数。

RDA 为逻辑数据模型提供了一组预定义的数据类型。除了这些预定义数据类型外,还可以增加用户定义数据类型,即所谓的域(domain)。域可以在逻辑模型中定义,也可以在一个不同的域模型中定义,其他模型可以重用这个域模型。RDA 允许创建含有用户数据类型的标准化数据字典,不同项目的数据模型可以共享这个数据字典。域的种类包括原子域(基于逻辑数据类型,并带有约束)、列表域(带约束的枚举值)和联合域(逻辑数据类型的联合体,并带有约束)。

通过使用约束和关系,可以定义简单的业务规则。但是 RDA 还可以做更多的事情。Analyze Model 功能可以显示一个模型分析窗口,通过这个窗口可以指定应该执行哪些预定义的分析窗口。内置的 RDA 规则包括:

  • 重复关系
  • 第一范式
  • 第二范式
  • 第三范式
  • 过度索引
  • 模型语法检查
  • SQL 语法检查

您可以使用 Java 或对象约束语言(OCL)添加用户可定义的验证规则或业务规则,OCL 是统一建模语言(UML)的一部分。

RDA 还允许根据命名标准为新元素(实体、属性、关系)生成名称。

物理数据建模。物理数据建模将逻辑数据模型与一个特定的 RDBMS 和所有约束链接起来。对于逻辑数据模型中指定的同一个解决方案,可以有任意数量的物理实现。有了 RDA,对于相同的物理模型,您还可以有任意数量的逻辑模型。在一些人数不多的小组做一个大型数据库项目,并且需要在小组之间同步更新的情况下,这种功能会比较有用。

取决于 RDMS,物理数据模型将包含表(带有约束、索引和触发器)、视图、函数、存储过程、用户定义数据类型、别名、物化查询表、昵称、序列、表空间、缓冲池、存储建模图等对象。

RDA 提供了三种方式来创建一个物理数据模型:

  • 从头开始创建(在少数情况下会这样做)
  • 通过反向工程
  • 将逻辑模型转换成物理实现

每种 RDBMS 都会在实现上施加一组不同的约束,这些约束是在一个转换对话框中指定的,RDA 支持的 RDBMS 包括:

  • DB2 UDB for Linux, Unix, and Windows 8.1 and 8.2
  • DB2 UDB for iSeries V5R2 and V5R3
  • DB2 UDB for z/OS 7 and 8
  • IBM Cloudscape 10.0
  • Informix versions 9.2、9.3、9.4 and 10
  • Oracle versions 8, 9 and 10
  • Microsoft SQL Server 2000
  • Sybase ASE 12
  • WebSphere Information Integrator (Standard Edition, Advanced Edition)

所有连接都是通过 JDBC 接口建立的,这需要在工作站上安装特定的 JDBC 驱动程序。

RDA 可以根据模型、通过一个代码生成对话框来生成特定于语法的 DDL 或 XML 模式,DBA 可以在代码生成对话框中选择将哪些元素包括在代码生成中。生成的代码放在一个脚本中,并保存在项目的脚本文件夹下,RDBMS 可以执行该脚本。RDA 还可以生成示例测试数据。

RDA 还支持联邦数据库(这种技术允许对不同数据源进行实时访问)。以多个源数据库表为基础,通过使用源和目标之间的映射发现,可以创建一个物理目标数据模型。RAD 根据映射编辑器中定义的映射来生成代码,其中包含用于创建视图和昵称的语句。





回页首


理解和通信基础设施

RDA 允许创建关系数据源,并且还允许对关系数据源进行反向工程。此外,用户可以发现、暴露和导航已有数据源的结构,这些结构可以可视化为实体关系图。RDA 能够与软件生命周期的其他方面集成,以支持设计小组环境。例如,RAD 可以访问存储在 IBM Rational RequisitePro 中的需求,并将其与相应的建模元素关联。IBM Rational ClearCase 或 CVS 可以管理 RDA Modeling 文件,提供无缝的版本控制、分支管理和变更的同步。

DBA 或数据架构师常常会碰到这样的情况:一些数据库包含相同类型的数据。于是,他们必须理解数据库之间的关系,以便提供可靠的数据质量。这种理解需要拥有对关系的反向工程、发现、可视化和导航的能力以及集成可用数据资产的能力。

在反向工程中,以一个已有的物理数据库实现为基础,根据这个物理数据库实现生成一个图形化的物理数据模型。这个图形化模型可以作为应用增强以创建新版本的物理数据模型的起点。RDA 还可以发现不同级别上的信息源:服务器、JDBC 连接、数据库结构、选定元素的属性和示例数据内容。图 2 展示了 RDA 如何在拓扑或概要图中为发现的结构提供导航和可视化支持。


图 2. 显示数据库结构的一个视图的拓扑图
图 2. 显示数据库结构的一个视图的拓扑图

有了 RDA,您可以发现新创建的目标模式与被反向工程的源模式之间的所有映射,并将这些映射编制为文档。RDA 的映射编辑器就是专门为这个目的而设计的。映射可以是基于列的(有转换或者无转换),可以是基于表的(连接),甚至可以生成代码(SQL 或 XML)。

有了映射发现后,RDA 使用一些算法(取决于结构或内容)来比较源结构与目标结构,并推荐可能的映射。然后,DBA 可以接受或拒绝推荐的映射。当然,也可以创建更多的映射。甚至还可以定义源列与目标列之间的转换表达式。可以连接多个源表,并将它们映射到一个目标表。对于数据库设计和已有数据库的同步,例如对于主数据管理来说,这些映射具有巨大的价值。

RDA 允许将多个源模式映射到一个目标模式。这种映射必须是在一个单步过程中可执行的,并且这个单步过程包含源和目标之间可执行的转换。目标可以被实现为新的表、视图、物化查询表或昵称(对源表的引用),它们都可以以联邦的方式来访问。

RDA 使用一个可扩展的开放标准,即基于 Eclipse 建模框架(EMF)的 SQL 模型,它提供了对数据库信息的结构化表示,并提供了一些供应商中立的、对于多种数据库类型和 SQL 方言都是可扩展的功能。这种基于 EMF 的 SQL 模型起初是由 IBM RDA 小组开发的,之后被 Eclipse 开放源代码社区的数据工具项目(Data Tools Project,DTP) 采纳。Oracle 和 Sybase 等供应商也已经采纳了这种基于 EMF 的 SQL 模型。





回页首


变更管理

RDA 允许在两个模型(逻辑模型或物理模型)之间、物理模型与数据库之间甚至在两个数据库之间进行比较。在比较之后,RDA 可以执行一次同步,这种同步由生成的 DDL(更新目标以包含源的选定特征)组成,或者由对图形化目标模型的更新(反映源的特征)组成。一个典型的例子就是比较一个开发数据库与一个生产数据库。

当然,您可以使用 RDA,通过对数据库进行反向工程,或者从其他工具导入模型,来发现已有数据库是什么模式。RDA 还可以有选择性地使新的数据模型与一个企业数据模型同步,或者将一个数据模型与其他数据库设计人员开发的工作成果进行比较。

RDA 能够与项目生命周期的其他方面集成。业务需求是不断变化的;数据架构师需要立即知道这些变化将产生怎样的影响。

RDA 能与源代码控制管理系统,例如 Rational ClearCase LT 和 CVS 集成,因此数据架构师和 DBA 可以与负责软件配置管理的开发人员合作。RDA 还可以与 Rational RequisitePro 和 Rational ClearQuest 集成,因而提供了从需求到设计再到实现的自动化可跟踪性。

这些集成使 RDA 成为为由不同角色的成员组成的大型小组提供支持的理想选择。大型企业数据模型可以划分为多个包或主题,根据各自的职责,不同的小组成员可以创建和管理不同的包或主题。

通过应用反向工程,进行必要的更新,考虑目标 RDBMS 类型,以及生成和执行 DDL,RDA 允许将一个模式从一种类型的 RDBMS 迁移到另一种类型的 RDBMS。这样的例子有从 Oracle 到 DB2 UDB for z/OS 的模式迁移,以及从关系模式到 XML 模式的迁移。





回页首


满足相互冲突的需求

RDA 是一种数据建模和集成设计工具,适用于很多类型的信息架构挑战。它简化了理解当前数据源与设计新数据源时涉及到的过程。

数据库设计通常必须满足两个相互冲突的需求:数据库必须足够健壮,从而不需要进行重大的结构上的修改,但是另一方面,数据库又必须足够灵活,以满足新的业务需求。RDA 提供了一种稳定的建模和设计环境,以帮助数据架构师满足这些需求。

本文从 DB2 Magazine 期刊取得授权并进行翻译,参见 DB2 Magazine 站点 上的 英文原文



关于作者

Eric Michiels 是 IBM Software Group 的一名高级 IT 架构师,同时也是一名 IBM 认证的专家。他负责为银行和公有企业中的 IBM 客户设计解决方案。他曾经担任过开发人员、系统工程师、数据架构师、DBA和 DB2 UDB for Linux, Unix, and Windows, and z/OS 环境的教师。




对本文的评价

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

建议?




回页首


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