收藏 分享(赏)

ER模型详解.doc

上传人:HR专家 文档编号:6051491 上传时间:2019-03-25 格式:DOC 页数:10 大小:457KB
下载 相关 举报
ER模型详解.doc_第1页
第1页 / 共10页
ER模型详解.doc_第2页
第2页 / 共10页
ER模型详解.doc_第3页
第3页 / 共10页
ER模型详解.doc_第4页
第4页 / 共10页
ER模型详解.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、Entity Relationship Model - ER 模型 - 实体关系模型1976 年 Peter Chen 首次提出了 Entity Relationship Modeling(实体关系建模)概念,并发明了陈氏表示法 Peter Chens Notation,因此 ER 模型也可以叫做 Chens Model(陈氏模型) 。下面是一个 ER 模型(ERD - ER diagram - Entity Relationship diagram)示例:图:ER 模型 - Peter Chens Notation 图:ER 模型 - Peter Chens Model,实际上这是一个EER

2、 - Enhanced Entity-Relationship Model,扩展 ER 模型Entity 实体:使用方框表示Attribute 属性 :使用圆或椭圆表示。实体和实体关系都可以拥有属性,例如图中的 Order-Line 关系拥有 3 个属性Relationship 关联关系:使用菱形表示,菱形中写上关联关系的名字ER 模型中关联关系也可以拥有属性,在多对多关联关系中不需要使用额外中间关联实体来表示,关联关系本身就可以作为这个中间实体。另外 ER 模型的关联关系不限于 2 个实体之间,可以在多个实体间使用一个关联关系Unique Identifier 唯一标识陈氏表示法没有很好的解

3、决唯一标识问题,仅使用一种简单的标记方法,下图表示 Party 的 ID作为 Purchase Order 唯一标识一员的情况,关联关系名称改为 E,朝依赖实体方使用一个箭头,依赖实体使用一个额外的方框括起来图:ER 模型中唯一标识的表示方法图:ER 模型中唯一标识的表示方法Sub-type 子类型最初的陈氏表示法中不包含子类型概念,后来 Robert Brown 和 Mat Flavin 添加了子类型表示法,这种 ER 模型称为扩展 ER 模型。上图 ER 模型中有一个子类型例子,超类 Party 派生出子类 Organization 和 PersonConstraints between

4、relationships 关联关系的约束最初的陈氏表示法中关联关系的每一端只使用一个数字表示,比如一对多的关联关系,在一端使用 1,另一端实体上使用 n 表示,这对关联关系约束不充分。上图的 ER 模型在关联关系每一端使用 2 个数字表示,这与 Crows Foot 表示法以及 UML 中的 optionality(可选项) 、cardinality(关联基数)有些类似又有较大的区别,详细说明如下:上图中一个 Purchase Order 必须关联一个 Party,必须关联一个或多个 Order Line,每个Order Line 要么是一个 Product 要么是一个 ServicePur

5、chase Order 右边的(1,)1 表示一个 Purchase Order 有且必须有一个 PartyParty 左边的 (0,)n 表示一个 Party 可以拥有多个 Purchase Order,也可以没有Purchase Order 左边的(1,)n 表示 Purchase Order 必须有一个或多个 Order LineOrder Line 右边的(1,)1 表示每个 Order Lien 必须属于一个 Purchase OrderOrder Line 下面的(1,)1 和菱形符号一起表示每个 Order Line 要么是一个 Product 要么是一个 ServiceProd

6、uct 和 Service 上面的(0,)n 表示 Product 和 Service 可以属于 0 个或多个 Order LineEvent 和 Event Category 的关联关系稍特殊(实际中这种 n:1 的关系不多见) ,他不是一个普通的多对一关系。Event 可以关联一个 Event Category 也可以不关联,而 Event Category则必须关联一个或多个 EventOrder-Line 和 Product、Service 之间是一个 exclusive or 约束(异或、互斥约束,disjunctive mandatory 约束)关系,使用超类和子类一样的表示法来表

7、示。因为 exclusive or 的语义本身已经已经表明 Order Line 必须是 Product 或者 Service 其中之一,因此上图中 Order Line 右边和下面的(1,)1 是多余的EER - Enhanced Entity-Relationship Model 扩展ER 模型上面已经有些内容不属于最初的陈氏表示法,是后来其他人扩展的。陈氏表示法出现的早也存在一些不足,因此存在一些扩展以弥补缺陷,不同文档中使用的 ER 图也不尽相同,例如下图是 wiki 上的一个示例 ER 模型图:Wiki 上的 ER 模型示例图:Wiki 上的 ER 模型示例属性带下划线表示主键属性;

8、关联关系连接线为两条线的表示“最少一个,或多个“ (用于 n 的一端) ;实体和关联关系使用两个框的,可能是上面讲到的唯一标识表示法,也可能是“最少一个,或多个“表示法的一部分(这一点有待确认) 。还有一些,例如属性与实体间用两条线连接的表示该属性为多值属性(上图中 Region 实体的 Foliage 属性) 。图中的部分解释如下:1 Account has n(at least one) Character, Account 的 AcctName 属性将成为 Has 的唯一标识的一员;1 Region contains n(at least one) Character, Region 的

9、 RegionName 属性将成为 Character的唯一标识的一员;Information Engineering - IE 模型Information Engineering 采用 Crows Foot 表示法(也有叫做 James Martin 表示法的) ,中文翻译中对使用了 Crows Foot 表示法的模型也有笼统的称做鸭掌模型的(关联关系的关联基数中采用到了一个鸭掌形的三叉线来表示) 。他由 Clive Finkelstein 发明,与 James Martin 一起推广,后来两人各自做了些修正形成两份版本前面示例模型的 Information Engineering 表示如下

10、:图:Information Engineering - IE 模型 - Crows Foot Model - 鸭掌模型图:Information Engineering - IE 模型注意 IE 模型与 ER 模型的区别。Purchase Order 与 Party 是多对一 n:1 的关联关系,在ER 模型中 n 被放置在了 Party 的左边,而 IE 模型中 n 被放置在了 Purchase Order 的右边。两种表示法的形式(相当于语法)不一样,但语义是一致的。这一点也只有 ER 模型是特殊的,其他模型表示法中都与 IE 模型一致Entity & Attribute:实体属性并不出

11、现在 IE 模型中,而是单独使用另外的文档记录RelationshipCrows Foot 的可选项 optionality 和关联基数 cardinality 表示法:图:Crows Foot 的可选项 optionality 和关联基数 cardinality 表示法图:Crows Foot 的可选项optionality 和关联基数 cardinality 表示法Optionality 可选项:用来表示该关联关系是可选的,还是必须的。对于可选的关联关系,通常表现为用于关联的外键字段允许为 null 值,或者对于使用中间关联关系表的情况下可以不出现关联数据,而必须的关联关系则不允许外键为

12、null 或者必须存在关联数据Cardinality 关联基数:用来表示关联实体的数量上限,为 1、n 等图中右边部分表示的意义如下:1 个 A 必须关联到 1 个或多个 B,一个 B 可以关联 0 个或 1 个A关联的约束如图所示,Product 和 Service 通过一个圆连接到 Order Line。如果是实心圆则表示Product 和 Service 是 exclusive or;如果是空心圆则表示 Product 和 Service 是 inclusive or(相容的,conjunctive) ,表示可以是其中之一或者多个在上面 IE 模型图中,Order Line 右侧是 Fi

13、nkelstein 的一个特殊符号,表示一个 Purchase Order 初始时有 0 或 n 个 Order Line,但最终必须有 1 或 n 个 Order LineMartin 以动词命名关联关系,只命名一个方向(遵循从左到右、从上往下的方式) ,而Finkelstein 不对关联关系命名Sub-type:图中 Party 子类的表示方法由 Martin 采用,Finkelstein 则对每个子类使用单独的实体,使用 ISA 关联关系(关联关系名称为 ISA,也有采用类似 UML 继承的三角形符合,在关联线上使用一个三角形的)表示其为子类Richard Barkers Notatio

14、n这个表示法最早是英国咨询公司 CACI 发明,经过了 Richard Barker 的推广,后来 Richard Barker 去了 Oracle,开发了相关的建模工具,因此也叫做 Oracle 表示法(Oracles Notation)示例模型的 Barker 表示法如下:Richard Barkers Model 图:Richard Barker 模型Entity & Attribute:实体试用圆角的方框表示,属性出现在实体框中。可选属性(允许 null)前面带一个空心圆,必须的属性(不允许 null)前面带一个实心圆,唯一标识属性前面带一个 #符号(因为制图工具原因,有时可选属性前面

15、不使用任何符号,必须属性前使用一个点)Relationship:Barker 表示法中可选项通过半边连接线的虚实线表示,表示法如下图所示。上面的模型中Purchase Order 必须关联到一个 Party,所以关联线在 Party 一侧的那一半是实线表示;而Party 可以关联到 0 或多个 Purchase Order,所以关联线在 Purchase Order 一侧的那一半是虚线表示图:Richard Barkers Notation 图:Richard Barkers Notation关联基数为 n 时采用一个三叉线,线条末端没有符号时表示关联基数为 1另外 Barker 表示法中有一

16、个表示 aggregation、composition 的特殊符号,例如示例模型中的Purchase Order 和 Order Line 的关系,在 Order Line 右侧的三叉线边上添加一个竖线,注意与 Crows Foot 表示法之间的区别Sub-type:Barker 表示法中子类型显示在父类型的实体框中Constraint:Barker 表示法仅支持 exclusive or 约束,如示例模型中所示,用一条弧线划过 2个关联关系IDEF1X 模型IDEF1X 是美国联邦政府广泛使用的一种模型,前面示例模型的 IDEF1X 等效模型如下:图:IDEF1X 模型图: IDEF1X 模

17、型Entity & Attribute:实体使用方框和圆角框表示,独立实体(Independent entities,主键不包含其他实体主键值)使用方框,非独立实体(dependent entities,主键包含其他实体主键值)使用圆角框。属性出现在实体框中,主键用线隔开Relationship:外键不是使用关联线表示,必须在实体属性中明确的标注外键属性如果关联关系一方的唯一标识将作为另一方唯一标识的一部分(即 identifying relationship) ,关联线使用实线,否则(即 non-identifying relationship)使用虚线不同于 IE 模型,IDEF1X 中可

18、选项和关联基数是分开表示的,关联线的一端表示关联基数,另一端表示可选项图:IDEF1X Cardinality 关联基数图示图: IDEF1X Cardinality 关联基数图示如 IDEF1X 示例模型中,关联基数的图示都是出现在关联关系的左端或者上面,可选项出现在右端或者下面。对于可选的关联关系(即类似外键允许为 null 值的情况) ,在可选项一端使用一个菱形,例如示例模型中 Event Category 左边的菱形;对于必须的关联关系(即外键必须为有效的实体标识值的情况) ,则在可选项一端直接将关联线与实体连接。对于多对多的情况,两端均使用关联基数符号,可选项问题在模型中通过其他文档

19、标注关联关系的名称有几种表示方法。默认情况下遵循从左至右从上至下的顺序,关联关系从左至右的名称放在关联线上方,从右至左的名称放在关联线下方。也可以使用一个反斜杠将两个方向的名称分开,从左至右从上至下的在反斜杠前面,否则在后面Sub-type & ConstraintIDEF1X 中的子类和关联约束分别如示例模型中所示。另外一点,示例模型中的子类和关联约束图例中,小圆圈下面都是使用 2 条横线,这表示模型中已经列举了所有的子类和约束情况,如果模型只是部分列举子类和约束情况,则使用 1 条横线Domain:IDEF1X 中定义了 domain,domain 即数据类型的定义,比如数据类型、取值范围

20、等各种需要运用到属性值上的约束详尽的 IDEF1X 规范参考 IDEF1X 标准: Integration Definition for Information ModelingEXPRESS-G 表示法EXPRESS-G 是一个 ISO 标准 ISO 10303-11。示例模型的 EXPRESS-G 表示法如下(省略了Event、Event Category 部分):图:EXPRESS-G 表示法图:EXPRESS-G 表示法Entity & Attribute:实体使用方框表示,实体名称出现在方框中属性通过空心圆结束的线条连接到属性值类型,属性名称出现在线条上。可选属性使用虚线条连接,必须

21、属性使用实现连接属性值类型使用右边多一条竖线的方框表示,ISO 规范中确定的简单数据类型(String, Binary, Logical, Boolean, Number, Integer, Real 等)均使用上图中所示的实体框表示。扩展或者自定义的数据类型使用虚线框表示,例如上图示例中 order_date 属性的 DATE 类型。枚举类型的表示方法如下图:图:EXPRESS-G 的枚举表示方法图:EXPRESS-G 的枚举表示方法Relationship:使用空心圆结束的线条连接关联实体关联关系的名称出现在关联线上,朝空心圆一端的方向为正向,相反则为反向,反向的关联关系名称前面使用(IN

22、V)表示关联基数紧随关联名称之后,第一个字符可以是 S、B、L、 A,分别表示Set、Bag、List 、Array ,后面中括号的内容即为关联基数,问号表示多个。默认情况下(没有明确标注)关联基数都为1:1 ,因此上图中出现1:1 的地方都可以省略前面提到过的 exclusive or 约束,EXPRESS-G 中使用 Select(可选类型)表示,如上图中的order_line_itemSub-type:如上图中 Party、Person、Organization 所示,连接线使用粗线条ORM - Object-Role Modeling下面是 ORM2 的部分表示法基本元素下面是 ORM

23、 模型几个基本元素图示:图:ORM 模型基本元素图:ORM 模型基本元素唯一性约束表示法ORM 中唯一性约束是在相应角色上使用带箭头的线条表示,线条在哪些角色上,则这些角色的组合必须唯一,例如下图:图:ORM 模型唯一性约束表示法图:ORM 模型唯一性约束表示法图中 Person is of Gender 的关系中,Person 必须唯一,因此这是一个 n:1 的关系。同样Person was born in Country 是 1:n,Person speaks Language 是 n:m,Person is president of Country 是 1:1下面表格是用于理解 Pers

24、on is of Gender、Person was born in Country 的数据示例:图:数据示例关联关系中必须的角色使用带圆点的线条表示,如上图中 Person was born in Country上面示例中的唯一性约束都是位于一个关联关系(包括二元和多元关系)中,这种唯一约束叫做内部唯一约束 Internal UC。多个关联关系组合起来形成的唯一约束称为外部唯一约束External UC,例如下图所示图:ORM 模型 External UC 图:ORM 模型 External UC图中 State 具有 2 个外部唯一约束,一个是 Country+StateCode,圆圈中使

25、用 2 跟线条表示这个唯一约束作为 State 的主键;另一个是 Country+StateNameInclusive or (disjunctive mandatory role)图:ORM Inclusive or 表示每个 Visitor 必须有护照 Passport 或者驾驶执照 DriverLicence,或者两样都有Exclusive图:ORM Exclusive 约束表示 Person 不可能同时是 married 和 widowed 状态exclusive or 则是 inclusive or 和 exclusive 的结合,即必须是其中之一图:ORM Exclusive or

26、 约束详细的 ORM2 图形表示法参考 ORM 2 Graphical Notation Summary使用 ORM 建模的过程示例参考 Object Role Modeling: An OverviewORM2 的完整介绍参考 ORM2参考Wiki - Entity-relationship modelWiki - IDEF1XData Modeling 101Wiki - EXPRESS (data modeling language)Information modelling - Getting started with EXPRESS-GWiki - Object-Role ModelingObject Role ModelingA Comparison of Data Modeling Techniques

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报