7种数据建模的方法.doc
10页1. Entity Relationship Model - ER 模型模型 - 实体关系实体关系模型模型1976 年 Peter Chen 首次提出了 Entity Relationship Modeling(实体关系建模)概念,并发明 了陈氏表示法 Peter Chen's Notation,因此 ER 模型也可以叫做 Chen's Model(陈氏模型) 下面是一个 ER 模型(ERD - ER diagram - Entity Relationship diagram)示例:图:ER 模型 - Peter Chen's Notation 图:ER 模型 - Peter Chen's Model,实际上这是一个 EER - Enhanced Entity-Relationship Model,扩展 ER 模型 Entity 实体实体:使用方框表示 Attribute 属性属性:使用圆或椭圆表示实体和实体关系都可以拥有属性,例如图中的 Order- Line 关系拥有 3 个属性Relationship 关联关系关联关系:使用菱形表示,菱形中写上关联关系的名字 ER 模型中关联关系也可以拥有属性,在多对多关联关系中不需要使用额外中间关联实体来 表示,关联关系本身就可以作为这个中间实体。
另外 ER 模型的关联关系不限于 2 个实体 之间,可以在多个实体间使用一个关联关系Unique Identifier 唯一标识唯一标识 陈氏表示法没有很好的解决唯一标识问题,仅使用一种简单的标记方法,下图表示 Party 的 ID 作为 Purchase Order 唯一标识一员的情况,关联关系名称改为 E,朝依赖实体方使用 一个箭头,依赖实体使用一个额外的方框括起来图:ER 模型中唯一标识的表示方法图:ER 模型中唯一标识的表示方法Sub-type 子类型子类型 最初的陈氏表示法中不包含子类型概念,后来 Robert Brown 和 Mat Flavin 添加了子类型表 示法,这种 ER 模型称为扩展 ER 模型上图 ER 模型中有一个子类型例子,超类 Party 派 生出子类 Organization 和 PersonConstraints between relationships 关联关系的约束关联关系的约束 最初的陈氏表示法中关联关系的每一端只使用一个数字表示,比如一对多的关联关系,在 一端使用 1,另一端实体上使用 n 表示,这对关联关系约束不充分上图的 ER 模型在关 联关系每一端使用 2 个数字表示,这与 Crow's Foot 表示法以及 UML 中的 optionality(可 选项) 、cardinality(关联基数)有些类似又有较大的区别,详细说明如下:上图中一个 Purchase Order 必须关联一个 Party,必须关联一个或多个 Order Line,每个 Order Line 要么是一个 Product 要么是一个 ServicePurchase 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 要么是一 个 ServiceProduct 和 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 约束)关系,使用超类和子类一样的表示法来表示因为 exclusive or 的语义本 身已经已经表明 Order Line 必须是 Product 或者 Service 其中之一,因此上图中 Order Line 右边和下面的(1,)1 是多余的EER - Enhanced Entity-Relationship Model 扩展扩展 ER模型模型上面已经有些内容不属于最初的陈氏表示法,是后来其他人扩展的陈氏表示法出现的早 也存在一些不足,因此存在一些扩展以弥补缺陷,不同文档中使用的 ER 图也不尽相同, 例如下图是 wiki 上的一个示例 ER 模型图:Wiki 上的 ER 模型示例图:Wiki 上的 ER 模型示例 属性带下划线表示主键属性;关联关系连接线为两条线的表示“最少一个,或多个“(用于 n 的一端) ;实体和关联关系使用两个框的,可能是上面讲到的唯一标识表示法,也可能是 “最少一个,或多个“表示法的一部分(这一点有待确认) 。
还有一些,例如属性与实体间用 两条线连接的表示该属性为多值属性(上图中 Region 实体的 Foliage 属性) 图中的部分解 释如下:1 Account has n(at least one) Character, Account 的 AcctName 属性将成为 Has 的唯一标识 的一员;1 Region contains n(at least one) Character, Region 的 RegionName 属性将成为 Character 的 唯一标识的一员;2. Information Engineering - IE 模型模型Information Engineering 采用 Crow's Foot 表示法(也有叫做 James Martin 表示法的) ,中文 翻译中对使用了 Crow's Foot 表示法的模型也有笼统的称做鸭掌模型的(关联关系的关联基数中采用到了一个鸭掌形的三叉线来表示) 他由 Clive Finkelstein 发明,与 James Martin 一起推广,后来两人各自做了些修正形成两份版本 前面示例模型的 Information Engineering 表示如下:图:Information Engineering - IE 模型 - Crow's Foot Model - 鸭掌模型图:Information Engineering - IE 模型注意 IE 模型与 ER 模型的区别。
Purchase Order 与 Party 是多对一 n:1 的关联关系,在 ER 模型中 n 被放置在了 Party 的左边,而 IE 模型中 n 被放置在了 Purchase Order 的右边 两种表示法的形式(相当于语法)不一样,但语义是一致的这一点也只有 ER 模型是特 殊的,其他模型表示法中都与 IE 模型一致Entity & Attribute:实体属性并不出现在 IE 模型中,而是单独使用另外的文档记录 Relationship Crow's Foot 的可选项 optionality 和关联基数 cardinality 表示法:图:Crow's Foot 的可选项 optionality 和关联基数 cardinality 表示法图:Crow's Foot 的可选 项 optionality 和关联基数 cardinality 表示法Optionality 可选项可选项:用来表示该关联关系是可选的,还是必须的对于可选的关联关系, 通常表现为用于关联的外键字段允许为 null 值,或者对于使用中间关联关系表的情况下可 以不出现关联数据,而必须的关联关系则不允许外键为 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 右侧是 Finkelstein 的一个特殊符号,表示一个 Purchase Order 初始时有 0 或 n 个 Order Line,但最终必须有 1 或 n 个 Order Line Martin 以动词命名关联关系,只命名一个方向(遵循从左到右、从上往下的方式) ,而 Finkelstein 不对关联关系命名Sub-type:图中 Party 子类的表示方法由 Martin 采用,Finkelstein 则对每个子类使用单独的 实体,使用 ISA 关联关系(关联关系名称为 ISA,也有采用类似 UML 继承的三角形符合, 在关联线上使用一个三角形的)表示其为子类3. Richard Barker's Notation这个表示法最早是英国咨询公司 CACI 发明,经过了 Richard Barker 的推广,后来 Richard Barker 去了 Oracle,开发了相关的建模工具,因此也叫做 Oracle 表示法(Oracle's Notation) 示例模型的 Barker 表示法如下:Richard Barker's Model 图:Richard Barker 模型Entity & Attribute:实体试用圆角的方框表示,属性出现在实体框中。
可选属性(允许 null)前面带一个空心圆,必须的属性(不允许 null)前面带一个实心圆,唯一标识属性前 面带一个#符号(因为制图工具原因,有时可选属性前面不使用任何符号,必须属性前使用 一个点)Relationship: Barker 表示法中可选项通过半边连接线的虚实线表示,表示法如下图所示上面的模型中 Purchase Order 必须关联到一个 Party,所以关联线在 Party 一侧的那一半是实线表示;而 Party 可以关联到 0 或多个 Purchase Order,所以关联线在 Purchase Order 一侧的那一半是虚 线表示图:Richard Barker's Notation 图:Richard Barker's Notation关联基数为 n 时采用一个三叉线,线条末端没有符号时表示关联基数为 1 另外 Barker 表示法中有一个表示 aggregation、composition 的特殊符号,例如示例模型中的 Purchase Order 和 Order Line 的关系,在 Order Line 右侧的三叉线边上添加一个竖线,注意 与 Crow's Foot 表示法之间的区别 Sub-type:Barker 表示法中子类型显示在父类型的实体框中 Constraint:Barker 表示法仅支持 exclusive or 约束,如示例模型中所示,用一条弧线划过 2 个关联关系4. IDEF1X 模型模型IDEF1X 是美国联邦政府广泛使用的一种模型,前面示例模型的 IDEF1X 等效模型如下:图:IDEF1X 模型图:IDEF1X 模型Entity & Attribute:实体使用方框和圆角框表示,独立实体(Independent entiti。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


