ERWin经验小结_第1页
ERWin经验小结_第2页
ERWin经验小结_第3页
ERWin经验小结_第4页
ERWin经验小结_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ERWin 经验小结经验小结 1 版本版本 本文所述内容均在 ERWin Data Modeler 7 2 5 中实验通过 2 基本使用基本使用 2 1 常用快捷键常用快捷键 快捷键用途 Ctrl 放大视图 Ctrl 缩小视图 Ctrl 切换到逻辑模型视图 Ctrl 切换到物理模型视图 2 2 显示级别显示级别 在 ERWin 中可以显示实体 表 不同级别的视图 逻辑模型相关选项 物理模型相关选项 实体 表 级显示 逻辑模型相关选项 实体 表 级显示 物理模型相关选项 2 3 重新排列对象重新排列对象 3 使用使用 Name mapping 设计好逻辑模型后 利用 Name mapping 的设置 可以通过 2 个映射文件 在物理模 型里自动命名表名和列名 一般情况下逻辑模型中的实体 表 和属性 列 名都使用中文 以便于理解 而在 物理模型里一般使用英文 以实现比较优化的设计 3 1 映射文件范例映射文件范例 表名映射文件范例 纳税人信息 FACT nsrxxb 列名映射文件范例 纳税人电子档案号 nnsrdzdah 设立日期 dslrq 行业 HY 行业名称 CAPTION 行业代码 HYDM 3 2 Name mapping 设置设置 依次打开菜单项 Tools Names ModelNaming Options 选择 Name Mapping 选项卡 设置以下项目 项目值 Enity to Table Lookup B1 tableC2E txt EntityName Attribute to Column Decl test test Lookup B1 C2E txt AttName If Substr test 1 1 Substr test 2 e lse test 其中黑体字为映射文件名 这 2 个文件需要与 erwin 文件保存在同一目录中 3 3 常见问题常见问题 为什么在物理模型中不能通过映射文件自动修改表名 1 可能映射文件修改后 并没有被 ERWin 重新载入 把 ERWin 关闭后 重新打开再 试 2 物理模型的表名已经有值 所以没有通过映射文件自动修改表名 把表名清空后 再试 3 打开 erwin 文件后 提示映射文件找不到 这种情况可能发生在直接双击 erwin 文件时 在开始菜单中打开 ERWin 然后通过菜 单打开 erwin 文件即可解决 4 外键的使用外键的使用 在设计多维模型时 为维表和事实表建立外键关系 可以直观展示维表和事实表的关 联关系 观察一个事实表和与它直接相关联的维表 则可以看到一个清晰的星形模型 一般情况下维表与事实表的关系是 维表是主表 事实表是子表 维表中的一行数据 对应事实表中的多行数据 维表与事实表使用维表的唯一关键字 即主键 关联 在 ERWin 中建立外键关联时 前提条件是在主表上创建了主键 以下例子中均以事实表作为子表 维表作为主表建立外键关系 4 1 相同列名建立外键关联相同列名建立外键关联 建立外键关联最简单的情况是维表的主键列与事实表的维度列具有相同的名称 具体操作如下 1 点击工具条中的 然后再点击维表 主表 最后点击事实表 子表 2 此时将弹出如下提示框 直接点击 OK 按钮 3 这时外键关系已经建好了 在事实表中与维表主键列同名的列上会加上 FK 外 键标识 4 2 不同列名建立外键关联不同列名建立外键关联 在很多情况下 事实表的维度列列名往往与维表主键列列名不一样 这时的处理方法 有所不同 在下例中 我们希望将事实表的 行业 列与维表相关联 1 点击工具条中的 然后再点击维表 主表 最后点击事实表 子表 2 此时外键关系已创建 但是事实表上新建了一个与维表主键列相同的列 行业代 码 作为外键 并没有提示选择事实表使用的关联字段 3 双击两表之间的连接线 在 Relationships 提示框中 选择 Rolename 选项卡 在 Rolename 输入框中 输入期望的关联字段 行业 点击 OK 按钮 4 此时弹出提示框 直接点击 OK 按钮 5 自动增加的 行业代码 列删除 外键移到 行业 列上 注意 要在逻辑模型视图下做此操作 如果在物理模型做此操作 在逻辑模型中 事 实表的维度列名将会被修改为维表的主键列名 4 3 同一维表关联事实表的多个字段同一维表关联事实表的多个字段 有时候 事实表的多个维度列都需要与同一个维表关联 在下例中 事实表已经通过 行业代码 列与维表关联 我们还希望再将事实表的 行业 列与维表相关联 1 点击工具条中的 然后再点击维表 主表 最后点击事实表 子表 2 此时新增加了一个外键关系 但实际上关联字段仍是 行业代码 3 在新增加的外键关系上 把 Rolename 改为 行业 即可让新增的外键使用 行 业 列关联 在此步会有提示框 直接点击 OK 即可 4 4 维表关联到事实表上非默认列维表关联到事实表上非默认列 当事实表中有与维表主键列名相同的列时 新建的外键关系默认会放在此列上 如果 希望外键关系在其他列上 则在建立外键的对话框中 需要选择另一个选项 如 希望事实表使用 行业 列与维表关联 新建外键关系时 在弹出提示框中 选择第 3 项 Rolename migrating attribute 输 入 行业 点击 OK 按钮 在紧接着的提示框中 直接点击 OK 即可达到目标 4 5 删除外键关系删除外键关系 删除外键关系时 会自动删除事实表上的外键列 而往往此列并不希望被删除掉 可 以使用以下办法解决 1 复制实体 表 2 删除外键关联 3 将复制表中的列拖到原表中 4 删除复制表 5 使用使用 Subject Area 当模型里的表比较多 特别是事实表很多 又有很多维表 关联有关系很多时 在 ERWin 或其他建模工具 里显示比较混乱 不容易清晰地看到各主题和维表之间的关系 下图是农发行账户模型中的 E R 图的局部 下图是农发行账户模型中的 E R 图的整体 在我们常用的星型模型结构中 整个模型实际是由一个个相对独立的星形模型组成的 只是各个星形模型之间会共用许多维表 这样就形成了上图那样的蜘蛛网结构 实际上我们观察模型时 希望得到的效果是 关注哪个星形模型时 只需要显示出与 此星形相关的事实表和维表 其他无关的表不希望看到 实际上这种功能 在 ERWin 中是 可以提供的 ERWin 提供了 Subject Area 主题域 功能 主题域相当于一个视图区域 在此视图区 域里可以为各实体建立快捷方式 让指定的实体在此视图中显示 而实体上原先定义的各 种属性在此视图中可以正常显示 所有的 Subject Area 单个 Subject Area 视图 利用此功能 我们可以把一个星形模型中涉及的一个事实表和多个维表放到 Subject Area 中 此时即可以清晰地看到各表之间的关系 又不至于太乱 同时在此 Subject Area 中对实体做的任何修改都会反映到实体本身 在 ERWin 里 所有对象会全部显示在 Main Subject Area 中 在界面左侧树形菜单上 通过右键即可创建一个新的 Subject Area 如 测试 修改此 Subject Area 的属性 在 Members 选项卡中 加入实体到 Subject Area 中 添加时只需要选择事实表 再通 过 级联添加 的方式 即可把一个事实表和所有与其直接关联的维表加入到 Subject Area 中 在级联的选项中注意选择 Ancestors 1 Descendants 0 注意 不要使用复制 粘贴的方式从 Main Subject Area 中向新建的 Subject Area 中复 制对象 这种方式会复制出重复的对象 而不是创建快捷方式 这种方式也得不到我们预 期的原始对象与 Subject Area 中对象同步的效果 6 反向工程反向工程 6 1 使用反向工程创建使用反向工程创建 ERWin 模型文件模型文件 使用反向工程 可以从已有的数据库生成 ERWin 模型文件 6 2 将逻辑模型的名称显示为物理模型的将逻辑模型的名称显示为物理模型的 Comment 如果在数据库中 表和列上都已经写了 COMMENT 使用反向工程生成 ERWin 文件后 查看模型的时候 无论是物理模型还是逻辑模型都显示的是英文表名和列名 但实际上相 应的 COMMENT 信息实际已经读入并写入到了模型中 在物理模型中 列的 COMMENT 值保存在列的 Comment 属性上 在逻辑模型中 列的 COMMENT 值保存在列的 Definition 属性上 但是一般情况下为了便于理解 我们希望在逻辑模型中 表名和列名都能显示为中文 即 COMMENT 现在知道了 Comment 在哪里 需要做的事 就是在逻辑模型里把 Definition 的值写到 Name 上 为达到此目的 可以利用 ERWin API 编写一段小程序来实现 以下是一段 Python 脚本 此脚本在 python2 6 pywin32 214 调试通过 usr bin python coding cp936 import win32com client 创建 COM 对象 scapi win32com client Dispatch AllFusionERwin SCAPI conn win32com client Dispatch ADODB Connection 建立与持久装置中模型的连接 源文件 filename c adbcdw lx erwin 目标文件 newfilename c adbcdw lx2 erwin scPUnit scapi PersistenceUnits Add filename RDO yes 建立存取内存中模型数据的连接 scSession scapi Sessions Add scSession Open scPUnit 0 0 事务控制 scTranId scSession BeginTransaction 获取所有 Entity 模型对象 scMObjects scSession ModelObjects Collect scSession ModelObjects Root Entity 1 for scObj in scMObjects 取 Definition 属性的值 try scDefineName scObj Properties Definition Value except Exception ex scDefineName try scName scObj Properties Name Value except Exception ex scName 对象名赋值 scObj Properties Physical Name Value scName scObj Properties Name Value scDefineName 获取该 Entity 的所有 Attribute 对象 scAttrObjects scSession ModelObjects Collect scObj Attribute 1 for scAttrObj in scAttrObjects 取 Definition 属性的值 scAttrDefineName scAttrObj Properties Definition Value scAttrName scAttrObj Properties Name Value try scAttrDefineName scAttrObj Properties Definition Value except Exception ex scAttrDefineName try scAttrName scAttrObj Properties Name Value except Exception ex scAttrName 对象名赋值 scAttrObj Properties Physical Name Value scAttrName scAttrObj Properties Name Value scAttrDefineName scSession CommitTransaction scTranId 另存为一个新的文件 scPUnit Save newfilename OVF yes 7 在在 DW 项目中的应用方法项目中的应用方法 7 1 使用使用 ERWin 来生成模型文档来生成模型文档 在目前的项目实施过程中 建模工具还没有广泛使用 但作为项目文档资料 E R 模 型关系图还是一个比较通用 易于理解和交流的方式 因此建议使用 ERWin 来生成模型的 文档 这种方式主要适用于未使用 ERWin 的项目 包括进行中的项目和已经完成的项目 应用方式 1 使用反向工程生成 ERWin 模型文件 2 将逻辑模型中的表名 列名更新为中文 3 在逻辑模型中为各事实表和维表建立外键关系 4 以事实表为单位建立主题域 Subject Area 每个主题域中只包含一个星型模型 通过以上方式 将数据库中的表创建为模型文件中的星型模型 这种方式的缺陷是数据库中发生修改后 要同步到 ERWin 模型中比较麻烦 因为在 DW 项

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论