转自: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)。最后希望本文能对读者有一定帮助。
相关推荐
搜索到的erwin7不支持oracle12c ,激活了也没什么用 从官网下载的一个版本,方便大家快速下载
ERWIN7.2.5 Data Modeler(五)数据库建模工具
erwin+Data+Modeler+2020+R1+SP1+(64-bit)_12392.exe 安装...主要产品Data Modeler,是业界领先的数据建模解决方案,使组织能够通过基于行业标准和最佳实践的直观式图形化工具发现、设计、可视化、标准化并部署企业数据
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(四)数据库建模工具
ERWin数据库建模工具破解版
**CA ERwin Data Modeler** 是一款强大的数据建模工具,广泛应用于数据库设计与管理领域。本实施指南(Implementation Guide)旨在为用户提供全面的指导,帮助用户更好地理解和应用 **CA ERwin Data Modeler** 以及...
ERWIN7.2.5 Data Modeler(六)数据库建模工具
ERWIN7.2.5 Data Modeler(一)数据库建模工具
ERwin Data Modeler(简称ERwin)是一款强大的数据库建模工具,它可以帮助用户轻松地创建、管理和维护复杂的数据库结构。ERwin 7.3.10版本作为该系列中的一个重要版本,提供了丰富的功能特性以及优化的用户体验。...
Erwin操作手册(入门)--ERWin 的全称是ERwin Data Modeler,是CA公司的数据建模工具。支持各主流数据库系统。ERwin数据建模市场占有率第一的产品,市场占有率33%。
ERwin全称是AllFusion ERwin Data Modeler,是CA公司AllFusion品牌下的建模套件之一,采用IDEF1X数据库建模语言。
ERWIN7.2.5 Data Modeler(一)数据库建模工具
erwin 的全称是erwin Data Modeler,是erwin公司的数据建模工具。支持各主流数据库系统。erwin数据建模市场占有率第一的产品,市场占有率33%。
1. 业务场景模拟:通过具体的业务场景,如电商平台或医院管理系统,实践ERwin的使用,提高实际操作能力。 这个ERwin学习教程大全包含了从基础到进阶的全方位教学,无论你是初学者还是有经验的数据库设计师,都能...
ERwin全称是AllFusion ERwin Data Modeler,是CA公司AllFusion品牌下的建模套件之一,采用IDEF1X数据库建模语言。ERwin的详细教程,使用步骤很详细,直接上手,
ERWin 的全称是AllFuusin ERwin Data Modeler,是CA公司AllFuusin品牌下的数据建模工具。支持各主流数据库系统。这个是erwin4建模工具,带注册码。
ERwin 全称是 AllFusion ERwin Data Modeler,采用 IDEF1X 数据库建模语言。 一、ERwin 简介 ERwin 是一种功能强大且灵活的数据库建模工具,能够帮助用户快速创建、设计和管理数据库模型。ERwin 采用 IDEF1X ...
最后,运行AllFusion Erwin Data Modeler 4.1.4 sp3.exe,即可完成安装。 ERWin的界面包含多个工具栏,例如MODEL MART工具栏,它提供了选择目标范围、放大显示、创建新模型、编辑主题区域、打印模型等功能。用户...