资源预览内容
第1页 / 共66页
第2页 / 共66页
第3页 / 共66页
第4页 / 共66页
第5页 / 共66页
第6页 / 共66页
第7页 / 共66页
第8页 / 共66页
第9页 / 共66页
第10页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Entity Sets实体集Relationship Sets联系集Design Issues 模型设计Mapping Constraints 映射约束Keys码E-R Diagram E-R图Extended E-R Features 扩展E-R功能Design of an E-R Database Schema E-R数据库模式的设计Reduction of an E-R Schema to Tables E-R模式转换成表时的缩减,Chapter 2: Entity-RelationshipModel第二章:实体-联系模型,Entity Sets实体集,数据库可由下列内容模型化:实体的集合实体间的关系实体:是现实世界中可区别于其他对象的“事件”或“物体”。例如:指定的人、公司、事件、工厂实体集:是拥有相同特性的同类型实体的集合。例如所有人、公司、树、节假日的集合组成实体集的各实体称为实体集的外延。,Entity Sets customer and loan实体集:客户和贷款,customer-id customer- customer- customer- loan- amount name street city number,实体由属性集表示,该集合描述了实体集中所有成员所拥有的特性。Example: customer = (customer-id, customer-name, customer-street, customer-city) loan = (loan-number, amount) 贷款=(贷款号,贷款金额)域每个属性的取值范围。属性类型:单个和组合属性单值和多值属性(一组值)例:多值属性:电话号码,0个、1个或多个Null attributes 空属性Derived attributes派生属性由其他属性计算而得例如“年龄”可以得出“出生年份”,Attributes属性,Composite Attributes组合属性,复合属性可以是有层次的。,Relationship Sets联系集,联系:是若干实体间的关联。例如:Hayes depositor A-102 姓名(客户实体) 储户(联系集) (帐目实体)联系集:是两个以上实体间的数学关系(所有实体来自实体集)。(e1, e2, en) | e1 E1, e2 E2, , en En其中(e1, e2, , en) 是联系。例如: (Hayes, A-102) depositor,Relationship Set borrower,实体集间的关联被称为参与,既实体集E1 ,E2, ,En参与联系集 R. E-R模式中的联系实例代表真实世界中被抽象化的实体间的关联。在联系中实体所起的功用称为实体的角色。联系也可能具有描述性属性。Binary relationship sets 二元联系集Nonbinary relationship sets,such as ternary relationship sets 非二元联系集 三元联系集参与一个联系集的实体集的数目被称为联系集的度。,Relationship Sets (Cont.)联系集(续),Mapping Cardinalities映射基数,映射基数或映射比例表达通过一联系集能同时与另一个实体相关联的实体数目多用于描述二元关系集。二元关系集的映射有下列类型:One to one一对一One to many一对多Many to one多对一Many to many 多对多,Mapping Cardinalities映射(基数),(a)一对一: A中的一个实体至多与 B中的一个实体相关联, B中的一个实体至多与 A 中的一个实体相关联 。(b)一对多: A中的一个实体可以与 B中的任意多个实体相关联, 然而,B中的一个实体至多与 A 中的一个实体相关联 。注意: A和B中的元素也可以没有对应元素(找不到映射关系),Mapping Cardinalities映射(基数),Many to one多对一,Many to many多对多,注:A和B中的元素可以没有映射关系,Existence Dependencies存在依赖,如果实体X的存在依赖于实体Y的存在,则X存在依赖于Y。Y是支配实体dominant entity (如下例中的贷)X是从属实体subordinate entity (如下例的付款) 如果贷款实体被删除,则其相关的付款实体也必须删除。Total participation 全部参与 loan对borrow联系集Partial participation 部分参与 customer对borrow,Keys:Entity Sets码:实体集,实体集的“超码” super key是属性集,其值可以唯一的标识一个实体。实体的“候选码” candidate key是最小的超级码客户id号是客户的候选取码帐户号是帐户的候选取码虽然可以有多个候选取存在,但只有一个候选作为“主码” primary key,Keys:Relationship Sets码:联系集,假设所有主码的属性名称是唯一的并且每个实体集仅参与联系集一次。联系集的主码成员依赖于和联系集R相关联的属性的结构。如果联系集R没有属性与之相关联,那么属性集合primary-key(E1)U primary-key(E2)UU primary-key(En)表示集合R中一个独立的联系。如果联系集R有属性a1,a2 ,am 与之相关联,那么属性集合primary-key(E1)U primary-key(E2)UU primary-key(En)Ua1,a2 ,am表示集合R中一个独立的联系。对于以上两种情况,属性集合primary-key(E1)U primary-key(E2)UU primary-key(En) 构成了联系集的超码。,如果在不同的实体集中出现了主码属性名不唯一的情况,属性应该改名以区分它们;实体集的名字加上属性名可以形成唯一的名称。如果一个实体集不止一次地参与某个联系集,则角色名可以代替实体集的名称形成唯一的属性名。联系集主码的结构依赖于联系集的映射基数。多对多一对多 多对一 一对一对于非二元联系,如果没有度的限制,前面描述的超码成为唯一的候选码,并被选为主码。,Design Issues设计问题,是用实体集还是属性?选择主要与企业模型结构有关,与相关的属性语义有关一个常见的错误是用实体集的主码作为另一个实体集的属性,而不是联系。例如,将customer-id作为loan的属性是不正确的,即使每笔贷款只有一个客户也是如此。用borrower联系代表贷款和客户直接的连接关系才是正确的方法,因为这样可以明确地表示出两者之间的关系而不是将这种关系隐含在属性中。另一个常犯的错误是将有关系的实体集的主码属性作为联系集的属性。这样做是不对的,因为在联系的表示中已经包含了这些主码属性。,使用联系集还是实体集? 指导方针是用联系集来描述实体集间的相互作用。举例:一法:贷款作为一个实体来建模二法:不将贷款作为一个实体,而作为客户和银行分支机构之间的一个联系的描述性属性。每次贷款用这个联系表示。如果每笔贷款正好为一个客户所有,并且正好同一个分行相联系,用联系表示贷款可以。但不能方便地表示多个客户共有一笔贷款。为此,为共有贷款的每个人分别定义一个联系,并且具有相同的描述性属性值。这种重复有两个问题:数据多次存储,浪费空间;更新可能导致不一致状态。一法就没有这种问题。,branch,二元还是n元联系集 一般地,非二元关系可以通过构造出一个假设的实体集来表示成二元关系。关系R是实体集A,B,C的关联表示,则可以利用新的实体集E,及三个关系RA, RB 和RC 相应地表示A,B,C之间的关系。如果联系集R有属性,将这些属性赋给实体集E。并为E建立一个标识属性(因每个实体集都应该至少有个一属性,以区别实体集中的各个成员)。针对R中的每个联系(ai,bi,ci),在实体集E中构造出一个新的实体ei,并将其与A,B,C相应的实体关联,即在RA中插入(ei,ai),在RB中插入(ei,bi),在RC中插入(ei,ci)。,可以将这一过程直接推广到n元联系集的情况。因此概念上可以限制E-R图中只包含二元联系集。然而,这种限制并不总让人满意。对于表示联系集R而创建的实体集E,为其创建一个标识属性。该标识属性和附加的那些联系集增加了设计的复杂程度以及对总的存储空间的需求。N元联系集可以更清晰地表示几个实体集参与到一个联系集中。可能没有将三元联系上的约束转变为二元联系上的约束的方法。例如,一个多对一的约束,从A、B到C,这种约束就不能用联系集RA, RB 和RC 上的度约束来表示。,联系属性的设置 映射基数可以影响联系属性的设置。多对一或一对多联系集的属性可以归到联系的“多方”实体集,而不是联系集。一对一联系集的属性可以归到参与的实体集的任何一方,而不是联系集。,对于多对多联系集而言,属性设置的选择更明了。当一个属性由参与的实体集共同决定,联系集属性必须归到多对多联系集。,E-R DiagramsE-R图,Rectangles矩形表示实体集Diamonds菱形表示关系集Lines直线用于连接实体集和属性,以及实体集与关系集Ellipses椭圆表示属性Double ellipses双线椭圆表示多值属性Dashed ellipses虚线椭圆表示派生属性Underline 下划线标识主码属性Double lines 双线表示一个实体全部参与联系集中Double Rectangles 双矩形表示弱实体集,Cardinality Constraints基数的约束,关系集和实体集之间的基数的约束,通常使用带箭头直线表示一,无箭头直线表示多。 从customer到 loan:一对多,多对一一对一,Relationship Sets with Attributes带属性的关系集,E-R Diagram With Composite, Multivalued, and Derived Attributes带组合、多值和导出属性的E-R图,multivalued attributes,derived attributes,Roles角色,关系的实体集不一定要互异。“领导”和“工人”两个称呼称为“角色”;它们用于表示雇员实体与关系集“受雇”之间的关系。角色在E-R图中通过标识连接菱形和矩形的直线完成。,role,E-R Diagram with a Ternary Relationship三个实体间关系的E-R图表示,在非二元联系集中,可以标明一些多对一联系类型。假设一个员工在每个支行最多只能有一份工作(比如,Jones不能在同一支行又当经理又当审计员)。这种约束可以从联系集拉出一个箭头指向job来表示。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号