`
jayghost
  • 浏览: 441589 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

【转】ERwin Data Modeler 建模实践

    博客分类:
  • SQL
 
阅读更多

转自:http://blog.csdn.net/cs_xx_dn/article/details/5011397

ERwin Data Modeler 建模实践

ERwin Data Modeler (以下简称 ERwin)  CA公司 (Computer Associates) 的一款优秀建模工具,历经数年的开发和维护,享有很高的市场占有率。使用 ERwin,用户可以可视化的设计维护数据库、数据仓库,并对企业内部各种数据源模型进行统一规划管理。本文将向读者展示如何利用 ERwin7.3进行数据库建模。

IDEF1X简介

ERwin支持 IDEF1X IE两种建模方法,两种方法都适用于大规模企业级数据库建模。本文将采用 IDEF1X进行建模,它是由美国空军开发出来的一种建模方法,被广泛应用于政府机构的各种项目里,是在实践中逐渐成熟起来的一种建模方法。从需求规范开始,随着对项目了解的深入, IDEF1X用一系列逐步细化的模型来进行建模,直至生成最终物理数据库,如图 1所示:

在开始使用 ERwin之前,我们先来了解一下 IDEF1X的基本概念:

 

Area Model / Project Model  Area model覆盖了一个大的业务领域,通常难以用一个项目来解决业务中的所有问题,要细分成多个项目来实现。 Project Model侧重于整体业务的一个具体方面,能够在一个项目里面实现。

 

Logical Model / Physical Model: 即逻辑模型 / 物理模型。逻辑模型方便客户、项目管理人员、程序员之间的沟通;物理模型侧重于目标系统上的实现。

 

ERD  Entity relationship diagram,展现业务的关键实体以及它们之间的关系。在这个阶段中,只关心关键实体的定义以及实体之间的关系(业务规则),并不关心实体的具体属性。

 

举例来讲,在一个简化的在线购物的系统中,关键实体可能为:

产品( product),客户( customer),订单( order),订单明细( order line item),付款记录(Payment),这些实体间的关系为:

l  一个客户可以有多个订单。

l  一个订单包含多个产品明细。

l  一条产品明细对应一种产品。

l  一个客户可以有多次付款记录。

l  一次付款记录可以包含多个订单。

 

Key Based Model: 有了 ERD模型,下一步就是对 ERD模型进行细化,针对各个实体,找到一个属性来标志该实体的实例,也就是找到实体的主键。确定了主键以后,主键也就随着实体间的关系而迁移,形成其它实体的外键。

 

Fully Attributed Model  Key Based Model进一步细化,模型中加入项目所涉及到的所有实体、属性、关系以及各种完整性约束,形成 Fully Attributed Model。在这个阶段中,可能发现新的实体,因此整个建模过程是一个迭代的逐步完善的过程。

 

Transformation Model: 至此,细化的逻辑模型就和最终的数据库实现很接近了。因项目需要或者目标数据库系统的限制可能仍需做些调整,比如为了效率原因而引入一些冗余数据,或者改变数据类型长度等等,此模型有时不再满足第三范式。

 

DBMS Model: 经过上述模型,最终得到了适用于目标数据库系统的数据库结构,可以通过工具来生成 DDL脚本, ERwin中也可以直接连接到数据库服务器生成目标数据库。

使用 ERwin进行建模

下面我们开始使用 ERwin。打开 ERwin,点击工具条上的“ Create Model”按钮,在弹出窗口中选择“Logical/Physical”,目标数据库选择“ SQL Server”,版本选择 2005/2008(选择的数据库在后面过程中可以修改)。如图 2所示:

 2:创建模型

点击“ OK”之后出现 ERwin的工作区, ERwin缺省采用 IDEF1X表示法,如果想用 IE表示法可修改模型属性。

创建实体

实体分为 Dependent Entity Independent Entity两种, Dependent entity用普通的矩形表示,这类实体不依赖其它实体的属性来标志自己的实例。另一类实体则需要把外键做为主键的一部分,即依赖其它实体来标志该实体的实例,这类实体用圆角矩形来表示,这两种实体稍后都会用到。

 

创建第一个实体 Customer并为其添加属性:

点击工具栏上的“ Entity”按钮,然后点击工作区的任意部分就会创建一个新的实体,命名为“ Customer”。实体的属性区域分为键区(存放实体的主键)和非键区(存放非主键属性),当定义关系时, ERwin会自动根据关系类型,把外键摆放在键区或者非键区,用户也可以通过拖拽来调整属性的位置。

 

__

 3:创建实体

右键点击 Customer实体并从弹出菜单中选择“ Attributes...”菜单进入属性编辑对话框:

 _ 

 

 4:属性编辑对话框

点击按钮“ New”来添加“ customer id 属性,数据类型为 Number,并设为主键。如图 5所示。在该对话框中涉及到了“ Domain”这个概念,意思是具有相同数据类型的一组数据集合(有限多个,如省份的列表,或者无限多个,如电话号码等)。 ERwin中支持自定义 Domain,定义后可以在多个实体中使用,这样可以统一的表达属性的含义,并对属性数据进行验证。

 _

 5:创建属性

 

依次输入 Customer的其它属性,并照此方法输入其它实体及其属性,完成后如图 6

 _

 6:实体及属性

上图新增了 Employee实体, Employee实体定义为网站的工作人员,负责处理客户的订单以及付款信息(如果用户选择货到付款)。

 

对于付款方式,我们想支持信用卡付款和货到付款(用 type属性区分),对于信用卡付款,系统记录客户的信用卡号;对于货到付款,记录付款人的名字。这两种付款方式可以看成是付款信息( Payment)的子类型,我们可以用  _  sub-category)来定义这种关系,如下图:

 _

 7:付款信息及其子类型

Payment的主键 Transaction number自动迁移到两个子实体中, type属性被定义为 Discriminator(用来区分子类型的属性),定义方法如下:选择“ Subtype Properties....”,在弹出的属性窗口中“ type”属性前面打勾:

_

_

 8:定义 Discriminator

为实体添加关系

实体间的关系是展示业务规则的重要元素。首先定义 Customer Order实体间的关系。点击工具条上的  _ (non-identifying relationship)按钮,先单击 Customer实体,再单击 Order实体,建立关系:

 _

 9 non-identifying relationship

所谓 non-identifying,就是外键 customer id没有成为 Order实体主键的一部分。 Order是一个独立实体,但是它的存在却要依赖 Customer(订单中 customer id属性不能为空,需要双击关系打开属性对话框来编辑一下关系的属性:

 _

 10:编辑关系属性

将“ Nulls”(允许空值)设置为“ No Nulls”,同时可以在“ Verb Phrase”中键入表明关系含义的文字。(工作区上下文菜单中“ Relationship Display -> Verb Phrase”可以控制这些文字是否显示在工作区上。)结果如图所示,虚线一端靠近“ Customer”实体的菱形消失了,表示外键“ customer id”不允许为空。

 _

 11

 

照此方法定义其它实体间的关系,最终结果如图:

_ _

 12:实体关系图

有两点值得注意:

l  Order Line Item是一个非独立实体,用圆角矩形表示。

l  其中 Employee定义了一个递归关系,用来表达员工的上下级关系。为了更清晰的表达这种关系,这里定义了一个 Rolename(角色),打开关系属性对话框,切换到 Rolename 标签页,在 Rolename中键入角色的名字:

 _

 13:定义 Rolename

 

在一个大的应用中,如果所有实体都显示在同一个视图中,看起来会有些混乱。这时可以将相关实体按“Subject”组织起来,如图 14所示,创建了一个“ order subject(相关实体可以从树形目录“ Entities”节点中拖拽到这个 subject),当转到 order subject 视图时(右键点击“ order”并选择“ Switch to”),实体间的关系变得更清晰。

 _

 14 Subject

对于 Payment实体的两种子类型,我们可以将它们合并到 Payment实体中,这样最后可以少两张数据库表,这个转化在 ERwin中可以通过如图所示功能按钮实现,这里不再叙述:

 _

生成数据库

在菜单中选择“ Model”-> Physical Model”切换到物理视图,“选择 Tools -> Forward Engineer”->Schema Generation”出现属性对话框:

 _

 14:生成数据库

可以看到 ERwin提供了很多参数,例如用户可以选择是否生成触发器等等。点击“ Preview”可以预览 DDL脚本,点击“ Generate”就可以连接到数据库服务器来创建数据库。

 

结束语

ERwin涵盖了数据库设计所需的各种功能,包括数据库正向工程( forward engineer,根据数据模型来生成物理数据库)、数据库逆向工程( reverse engineer,根据已经存在的数据库来生成数据库的模型),完全比较(complete compare,比较模型、数据库之间的差异,在迭代开发过程中非常实用,可以检查各个版本之间的差异,并生成差异报表,便于后续的维护工作 ) 。本文只展示了很少一部分功能,读者可以从 CA公司的网站上下载ERwin Data Modeler的试用版本 (http://www.ca.com/us/data-modeling.aspx)。最后希望本文能对读者有一定帮助。

分享到:
评论

相关推荐

    Erwin data modeler12.1 官网下载的版本

    搜索到的erwin7不支持oracle12c ,激活了也没什么用 从官网下载的一个版本,方便大家快速下载

    ERWIN7.2.5 Data Modeler(五)数据库建模工具

    ERWIN7.2.5 Data Modeler(五)数据库建模工具

    erwin+Data+Modeler+2020+R1+SP1+(64-bit)_12392.exe

    erwin+Data+Modeler+2020+R1+SP1+(64-bit)_12392.exe 安装...主要产品Data Modeler,是业界领先的数据建模解决方案,使组织能够通过基于行业标准和最佳实践的直观式图形化工具发现、设计、可视化、标准化并部署企业数据

    erwin+Data+Modeler+2020+R1+(64-bit)_12275.exe

    erwin Data Modeler 2020 R1 (64-bit) 12275 erwin 的全称是erwin Data Modeler,是erwin公司的数据建模工具。支持各主流数据库系统。erwin数据建模市场占有率第一的产品,市场占有率33%。

    ERWIN7.2.5 Data Modeler(三)数据库建模工具

    ERWIN7.2.5 Data Modeler(三)数据库建模工具

    ERWIN7.2.5 Data Modeler(四)数据库建模工具

    ERWIN7.2.5 Data Modeler(四)数据库建模工具

    ERWin数据库建模工具破解版

    ERWin数据库建模工具破解版

    CA ERwin Data Modeler Implementation Guide

    **CA ERwin Data Modeler** 是一款强大的数据建模工具,广泛应用于数据库设计与管理领域。本实施指南(Implementation Guide)旨在为用户提供全面的指导,帮助用户更好地理解和应用 **CA ERwin Data Modeler** 以及...

    ERWIN7.2.5 Data Modeler(六)数据库建模工具

    ERWIN7.2.5 Data Modeler(六)数据库建模工具

    ERWIN7.2.5 Data Modeler(二)数据库建模工具

    ERWIN7.2.5 Data Modeler(一)数据库建模工具

    ERwin7.3.10下载地址

    ERwin Data Modeler(简称ERwin)是一款强大的数据库建模工具,它可以帮助用户轻松地创建、管理和维护复杂的数据库结构。ERwin 7.3.10版本作为该系列中的一个重要版本,提供了丰富的功能特性以及优化的用户体验。...

    ERWin标准操作手册.ppt

    Erwin操作手册(入门)--ERWin 的全称是ERwin Data Modeler,是CA公司的数据建模工具。支持各主流数据库系统。ERwin数据建模市场占有率第一的产品,市场占有率33%。

    ERWIN详细教程

    ERwin全称是AllFusion ERwin Data Modeler,是CA公司AllFusion品牌下的建模套件之一,采用IDEF1X数据库建模语言。

    ERWIN7.2.5 Data Modeler(一).Part1

    ERWIN7.2.5 Data Modeler(一)数据库建模工具

    erwin+Mart+Server+2020+R1+SP1+(64-bit).exe

    erwin 的全称是erwin Data Modeler,是erwin公司的数据建模工具。支持各主流数据库系统。erwin数据建模市场占有率第一的产品,市场占有率33%。

    ERwin学习教程大全

    1. 业务场景模拟:通过具体的业务场景,如电商平台或医院管理系统,实践ERwin的使用,提高实际操作能力。 这个ERwin学习教程大全包含了从基础到进阶的全方位教学,无论你是初学者还是有经验的数据库设计师,都能...

    ERwin详细教程

    ERwin全称是AllFusion ERwin Data Modeler,是CA公司AllFusion品牌下的建模套件之一,采用IDEF1X数据库建模语言。ERwin的详细教程,使用步骤很详细,直接上手,

    erwin4建模工具

    ERWin 的全称是AllFuusin ERwin Data Modeler,是CA公司AllFuusin品牌下的数据建模工具。支持各主流数据库系统。这个是erwin4建模工具,带注册码。

    erwin教程 教你用erwin设计模型图

    ERwin 全称是 AllFusion ERwin Data Modeler,采用 IDEF1X 数据库建模语言。 一、ERwin 简介 ERwin 是一种功能强大且灵活的数据库建模工具,能够帮助用户快速创建、设计和管理数据库模型。ERwin 采用 IDEF1X ...

    ERWin教程 数据建模

    最后,运行AllFusion Erwin Data Modeler 4.1.4 sp3.exe,即可完成安装。 ERWin的界面包含多个工具栏,例如MODEL MART工具栏,它提供了选择目标范围、放大显示、创建新模型、编辑主题区域、打印模型等功能。用户...

Global site tag (gtag.js) - Google Analytics