跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

使用 IBM Infosphere Data Architect 维护企业数据库

陶佰明, 软件工程师, IBM
陶佰明,2010 年毕业于北京交通大学,于 2010 年 7 月加入 IBM 中国软件开发中心 Data Studio development 项目组,从事 Infosphere Data Architect 产品开发工作。

简介: 目前,企业级数据库有数据量大,结构复杂,维护困难的特点。当面临数据库变更的时候,为了不丢失已有的数据、约束,以及影响已有数据结构,DBA 往往要耗费大量的时间和精力。即便如此,仍不可避免地导致一些人为错误。在本文中,将介绍如何使用 Infosphere Data Architect( 简称 IDA) 对已有数据库进行快速的、正确的修改。

发布日期: 2011 年 12 月 01 日
级别: 初级
访问情况 : 1719 次浏览
评论: 


免费下载:IBM® InfoSphere Data Architect V7.5.2 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

InfoSphere Data Architect ( 简称 IDA) 是一个综合的开发环境,用于对企业数据进行建模 , 并可用于企业数据的关联和标准化等操作。 IDA 提供了下列功能:

  • 逻辑、物理、存储、域和集成数据建模
  • 通过信息工程(IE)数据图和拓扑图进行可视建模
  • 验证模型和已部署的数据库,包括命名标准、语法和一致性、规范化以及其他最佳实践验证
  • 生命周期管理功能,包括模型之间的影响分析以及扩展比较和同步功能
  • 组支持,包括对分区、交叉模型引用和源代码管理系统集成的支持
  • 独特的映射编辑器,可帮助您通过发现功能使不同的数据结构彼此相关以检测关系
  • 用于 SQL 语句、存储过程和用户定义的函数的数据库 CODE 设计器
  • 支持在数据库中运行语句
  • 支持对 DB2 存储过程和用户定义的函数进行调试

困扰客户的问题

数据是企业宝贵的财富,任何数据的丢失,都可能减缓企业的发展步伐,甚至使企业陷入困境。随着时间的积累,企业数据库中数据量日渐庞大,数据结构也越来越复杂,对已有数据库维护也就变得越来越复杂。为避免丢失已有数据、约束,以及错误的改变已有数据结构,往往需要全面考虑,谨慎操作。

通常,在 DBA 对数据库进行维护的时候,需要熟悉已有数据结构,熟悉数据库变更的内容,以及变更将会产生的影响,为了稳妥,可能需要备份数据库数据,海量数据备份不仅无法保留实时数据,而且将耗费更多的时间。将变更部署到目标数据库之后,需要反复测试成功后,才可以允许数据库上线。在这个过程中,DBA 会耗费大量的时间和精力,但仍很难避免一些人为导致的错误。


图 1.DBA 对数据库的维护
图 1.DBA 对数据库的维护

IDA 在数据库维护中的作用

维护已有数据库,IDA 举重若轻。DBA 仅需在界面上进行简单的操作,即可快速、准确的将变更部署到在线数据库中。

首先,IDA 可以通过反向工程,在已有数据库基础上生成数据模型,该模型中的元素与数据库对象一一对应;然后,根据需求修改数据模型,做模型验证、影响分析,确保变更部分的正确性;最后将模型与已有数据库进行比较,合并差异,直接生成增量 DDL。生成的 DDL 可以直接在目标数据库上执行,进而达到维护数据库的目的。


图 2.使用 IDA 对数据库进行维护
图 2.使用 IDA 对数据库进行维护

使用 IDA 维护已有数据库

环境准备

  1. 安装 IDA,当前 IDA 最新版本为 IDA7.5.3.1,读者可在 IBM 官方网站获取 下载信息。启动 IDA 安装包 , 如图 3 所示,通过默认设置完成安装即可。

    图 3.安装 IDA
    图 3.安装 IDA

  2. 安装数据库,IDA 支持当前所有主流数据库厂商,读者可以在 IDA 信息中心获取更多信息。本文中以 DB2 V9.7 为例,读者可在 IBM 官方网站上获取 下载信息。
  3. DB 准备。在 SAMPLE 数据库上创建模式 EXERCISE,在模式 EXERCISE 中创建数据库表 STUDENT, CLASS, SC,数据结构如下图:

    图 4.DB 准备
    图 4.DB 准备

使用反向工程获取已有数据库信息

IDA 创建数据模型的方法有两种,分别为正向工程和反向工程。其中反向工程主要是在已有数据库基础上,抓取数据库中的数据结构信息,将其转换为物理数据模型。该数据模型是源数据库结构的完整描述,其中的模型元素和数据库元素一一对应。

可以按照如下步骤使用 IDA 反向工程,生成数据模型:

  1. 启动 IDA,在左侧数据项目资源管理器 (Data Project Explorer) 中,创建数据设计项目 SAMPLE。如图 5:

    图 5.创建数据设计项目
    图 5.创建数据设计项目

  2. 在数据模型节点上,点击右键 -> 新建 -> 物理数据模型,打开新建物理数据模型向导。
  3. 在模型文件页面,输入模型文件名,选择数据库厂商及版本,选择从反向设计创建,进入下一步。
  4. IDA 反向工程支持数据库和 DDL 脚本,在本页面,选择数据库,进入下一步。
  5. 在选择连接页面,新建对 SAMPLE 数据库的连接,输入 SAMPLE 数据库的连接信息。进入下一步。
  6. 在选择对象页面,IDA 支持在模式级别的过滤,用户可以选择必要的模式生成到数据模型中,避免一次性操作所有数据库对象。本例中选择模式 EXERCISE,进入下一步。
  7. 在之后的步骤中,选择默认设置即可。
完成上述步骤后,IDA 自动生成如图 6 所示的数据模型。
图 6.通过反向工程生成的数据模型
图 6.通过反向工程生成的数据模型

模型变更

更改模型:

  1. 新建数据库表 TEACHER, 包含字段 T_ID,T_NAME。
  2. 在表 TEACHER 中创建外键 C_ID,指向表 CLASS。
  3. 为 SC 表添加新列 GRADE,非空,缺省值为 0。
  4. 为 PHONE 表添加新列 PHONE。

变更后的模型图如下:


图 7.变更后的数据模型
图 7.变更后的数据模型

数据模型和源数据库之间的比较合并

在数据资源管理器视图中,确定对 SAMPLE 数据库的连接。


图 8.连接 SAMPLE 数据源
图 8.连接 SAMPLE 数据源

在数据项目资源管理器中,选择模式 EXERCISE,在右键菜单中,选择比较对象 -> 另一数据对象,选择数据源 SAMPLE 中的模式 EXERCISE。点击下一步进入细节配置,或者使用默认配置,直接点击完成打开比较结果页面。

注意:此处要选择与已有数据库中的模式进行比较,能够显示出数据库与模型之间的所有区别。


图 9.选择数据源中的模式进行比较
图 9.选择数据源中的模式进行比较

如图 10,在比较页面中,左侧为数据库模型中的元素,右侧为当前源数据库对应的模型。根据比较结果,新增的表和列在源数据库中没有对应项目。可以通过 IDA 提供的合并功能,将更改的模型中的元素同步到源数据库一边。


图 10.比较结果
图 10.比较结果

如图 11,选中需要合并的行,点击复制按钮,将差别从左边复制到右边。对于其他差异,也可以通过类似操作完成。

注意:此时仅是将修改的元素映射到源数据库对应的模型中,并未部署在数据库上。


图 11.复制变更
图 11.复制变更

针对变更部分的影响分析

通过比较合并功能,将变更部分映射到源数据库模型中,此时的源数据库模型包含了原有的数据库元素和变更部分的元素。可以在此模型中作影响分析,即可看到变更部分对其他已有元素的影响。

如图 12, 在比较页面,选中变更的元素,点击“分析右边影响”。


图 12.分析右边影响
图 12.分析右边影响

IDA 将自动打开“受影响的对象”视图,将变更显示在视图中, 通过右键 -> 在资源管理器中显示, 可以在资源管理器中定位变更部分, 如图 13:


图 13.在数据源资源管理器中定位变更表
图 13.在数据源资源管理器中定位变更表

右键 TEACHER 表 -> 分析影响,可得到 TEACHER 表对已有数据库表的影响关系, 如图 14 所示。


图 14.变更对已有数据结构的影响
图 14.变更对已有数据结构的影响

通过影响分析,IDA 可以帮助 DBA 搜集变更所带来的影响,避免遗漏。DBA 可以查看这些影响,并根据实际需要,变更设计或者接受影响。

将变更部署到数据库中

当 DBA 决定接受影响后,可以进入最后一步:将变更部署到实时数据库中。

在比较页面,点击按钮栏中的“生成右边 Delta DDL”按钮,IDA 将根据同步内容,对右边产生的变更生成增量 DDL 脚本,如图 15 所示:


图 15.生成增量 DDL 脚本
图 15.生成增量 DDL 脚本

DDL 脚本将默认保存在当前项目路径下。此处可以选择直接在数据库中运行脚本,也可以选择在新窗口中打开、编辑脚本后,再将其部署到数据库中。

总结

  • IDA 中的模型验证功能,能够确保模型满足基本范式,保证数据模型的正确性;
  • 影响分析,能在 UI 界面上直观地显示出当前变更对已有数据结构的所有影响,避免遗漏,使 DBA 对更改有全局的把握;
  • 模型与数据库的比较,能显示当前模型与数据库中的差异,这些差异便是在模型中变更,用户可以进一步确认哪些变更可以同步到数据库中,并将变更部分拷贝到数据库对应的模型中;
  • 生成增量 DDL 脚本,是在拷贝变更的基础上,指针对比较界面中的差异,生成增量脚本,在部署变更的时候,只需要在数据库上运行增量脚本,即可完成对数据库的变更维护。

总之,IDA 可以全方位的减少 DBA 的工作量,同时避免人为错误,使整个 DB 维护举重若轻,快捷准确。


参考资料

学习

获得产品和技术

讨论

关于作者

陶佰明,2010 年毕业于北京交通大学,于 2010 年 7 月加入 IBM 中国软件开发中心 Data Studio development 项目组,从事 Infosphere Data Architect 产品开发工作。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=777759
ArticleTitle=使用 IBM Infosphere Data Architect 维护企业数据库
publish-date=12012011

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。