【转】ERwinDataModeler建模实践

【转】ERwinDataModeler建模实践
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),这些实体间的关系为:
rsl⼀个客户可以有多个订单。教学一点通
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实体并从弹出菜单中选择“ ”菜单进⼊属性编辑对话框:
_
图 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(⽤来区分⼦类型的属性),定义⽅法如下:选择“ ”,在弹出的属性窗⼝中“ 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
照此⽅法定义其它实体间的关系,最终结果如图:

本文发布于:2024-09-23 07:24:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/293848.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实体   属性   关系   模型   数据库   付款   业务   建模
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议