数据库原理第2章E-R模型.ppt

上传人:小飞机 文档编号:6296388 上传时间:2023-10-14 格式:PPT 页数:66 大小:1.29MB
返回 下载 相关 举报
数据库原理第2章E-R模型.ppt_第1页
第1页 / 共66页
数据库原理第2章E-R模型.ppt_第2页
第2页 / 共66页
数据库原理第2章E-R模型.ppt_第3页
第3页 / 共66页
数据库原理第2章E-R模型.ppt_第4页
第4页 / 共66页
数据库原理第2章E-R模型.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《数据库原理第2章E-R模型.ppt》由会员分享,可在线阅读,更多相关《数据库原理第2章E-R模型.ppt(66页珍藏版)》请在三一办公上搜索。

1、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实体集,数据库可由下列内容模型化:实体的集合

2、实体间的关系实体:是现实世界中可区别于其他对象的“事件”或“物体”。例如:指定的人、公司、事件、工厂实体集:是拥有相同特性的同类型实体的集合。例如所有人、公司、树、节假日的集合组成实体集的各实体称为实体集的外延。,Entity Sets customer and loan实体集:客户和贷款,customer-id customer-customer-customer-loan-amount name street city number,实体由属性集表示,该集合描述了实体集中所有成员所拥有的特性。Example:customer=(customer-id,customer-name,custo

3、mer-street,customer-city)loan=(loan-number,amount)贷款=(贷款号,贷款金额)域每个属性的取值范围。属性类型:单个和组合属性单值和多值属性(一组值)例:多值属性:电话号码,0个、1个或多个Null attributes 空属性Derived attributes派生属性由其他属性计算而得例如“年龄”可以得出“出生年份”,Attributes属性,Composite Attributes组合属性,复合属性可以是有层次的。,Relationship Sets联系集,联系:是若干实体间的关联。例如:Hayes depositor A-102 姓名(客户

4、实体)储户(联系集)(帐目实体)联系集:是两个以上实体间的数学关系(所有实体来自实体集)。(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 a

5、s 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中的一个

6、实体至多与 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(如下例的付款)如果贷款

7、实体被删除,则其相关的付款实体也必须删除。Total participation 全部参与 loan对borrow联系集Partial participation 部分参与 customer对borrow,Keys:Entity Sets码:实体集,实体集的“超码”super key是属性集,其值可以唯一的标识一个实体。实体的“候选码”candidate key是最小的超级码客户id号是客户的候选取码帐户号是帐户的候选取码虽然可以有多个候选取存在,但只有一个候选作为“主码”primary key,Keys:Relationship Sets码:联系集,假设所有主码的属性名称是唯一的并且每个实体

8、集仅参与联系集一次。联系集的主码成员依赖于和联系集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)构成了联系集的超码。,如

9、果在不同的实体集中出现了主码属性名不唯一的情况,属性应该改名以区分它们;实体集的名字加上属性名可以形成唯一的名称。如果一个实体集不止一次地参与某个联系集,则角色名可以代替实体集的名称形成唯一的属性名。联系集主码的结构依赖于联系集的映射基数。多对多一对多 多对一 一对一对于非二元联系,如果没有度的限制,前面描述的超码成为唯一的候选码,并被选为主码。,Design Issues设计问题,是用实体集还是属性?选择主要与企业模型结构有关,与相关的属性语义有关一个常见的错误是用实体集的主码作为另一个实体集的属性,而不是联系。例如,将customer-id作为loan的属性是不正确的,即使每笔贷款只有一个

10、客户也是如此。用borrower联系代表贷款和客户直接的连接关系才是正确的方法,因为这样可以明确地表示出两者之间的关系而不是将这种关系隐含在属性中。另一个常犯的错误是将有关系的实体集的主码属性作为联系集的属性。这样做是不对的,因为在联系的表示中已经包含了这些主码属性。,使用联系集还是实体集?指导方针是用联系集来描述实体集间的相互作用。举例:一法:贷款作为一个实体来建模二法:不将贷款作为一个实体,而作为客户和银行分支机构之间的一个联系的描述性属性。每次贷款用这个联系表示。如果每笔贷款正好为一个客户所有,并且正好同一个分行相联系,用联系表示贷款可以。但不能方便地表示多个客户共有一笔贷款。为此,为共

11、有贷款的每个人分别定义一个联系,并且具有相同的描述性属性值。这种重复有两个问题:数据多次存储,浪费空间;更新可能导致不一致状态。一法就没有这种问题。,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相应

12、的实体关联,即在RA中插入(ei,ai),在RB中插入(ei,bi),在RC中插入(ei,ci)。,可以将这一过程直接推广到n元联系集的情况。因此概念上可以限制E-R图中只包含二元联系集。然而,这种限制并不总让人满意。对于表示联系集R而创建的实体集E,为其创建一个标识属性。该标识属性和附加的那些联系集增加了设计的复杂程度以及对总的存储空间的需求。N元联系集可以更清晰地表示几个实体集参与到一个联系集中。可能没有将三元联系上的约束转变为二元联系上的约束的方法。例如,一个多对一的约束,从A、B到C,这种约束就不能用联系集RA,RB 和RC 上的度约束来表示。,联系属性的设置 映射基数可以影响联系属性

13、的设置。多对一或一对多联系集的属性可以归到联系的“多方”实体集,而不是联系集。一对一联系集的属性可以归到参与的实体集的任何一方,而不是联系集。,对于多对多联系集而言,属性设置的选择更明了。当一个属性由参与的实体集共同决定,联系集属性必须归到多对多联系集。,E-R DiagramsE-R图,Rectangles矩形表示实体集Diamonds菱形表示关系集Lines直线用于连接实体集和属性,以及实体集与关系集Ellipses椭圆表示属性Double ellipses双线椭圆表示多值属性Dashed ellipses虚线椭圆表示派生属性Underline 下划线标识主码属性Double lines

14、双线表示一个实体全部参与联系集中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,R

15、oles角色,关系的实体集不一定要互异。“领导”和“工人”两个称呼称为“角色”;它们用于表示雇员实体与关系集“受雇”之间的关系。角色在E-R图中通过标识连接菱形和矩形的直线完成。,role,E-R Diagram with a Ternary Relationship三个实体间关系的E-R图表示,在非二元联系集中,可以标明一些多对一联系类型。假设一个员工在每个支行最多只能有一份工作(比如,Jones不能在同一支行又当经理又当审计员)。这种约束可以从联系集拉出一个箭头指向job来表示。,只允许联系集外最多有一个箭头,否则会有两种解释:来自A1,A2,Ai的实体的一个特殊组合最多只能和来自Ai+1

16、,Ai+2,An实体的一个组合相关。联系R的主码可以用A1,A2,Ai的主码的并集来构造。对每个实体集Ak,ikn,来自其他实体集的每个实体组合最多和来自Ak的一个实体相关。每个集合A1,A2,Ak-1 Ak+1,An,ikn,都形成一个候选码。,Participation of an Entity Set in a Relationship Set联系集中的实体集参与,Total participation完全参与(用双线表示):实体集中的每个实体至少参与联系集中的一个联系。例如,loan是完全参与 borrower。每笔贷款必须有一个顾客与之相关联。Partial participatio

17、n部分参与:某些实体可以不参与联系集中的任何联系。例如,customer 部分参与 borrower。,total participation,Alternative Notation for Cardinality Limits基数限制的注释,基数限制也可以表示参与约束(每个实体参与联系的次数),l.h:l 最小基数 h 最大基数l为 1 表示完全参与。h为 1 表示实体至多参与一个联系。h为*表示没有限制。1.*=完全参与如果一个二元联系的两条边都有最大值1,此联系是一对一。,C1 L1 C2 L2C3 L3C4 L4C5一对多,Weak Entity Sets弱实体集,weak enti

18、ty set弱实体集是指没有主键的实体集。弱实体集依赖于标识(强)实体集identifying entity set。弱实体集必然通过一对多联系集与标识(强)实体集关联。并且弱实体集全部参与联系。标识性联系用双边菱形框表示。弱实体集中的分辨符discriminator(或称部分码)是一组属性,用于区分弱实体集中的实体。例,payment-number区分同一笔贷款的不用payment实体。弱实体集的主码由弱实体集所依赖的强实体集的主码,及弱实体集的分辨符构成。,Weak Entity Sets(Cont.)弱实体集(续),付款的主码(贷款号,付款号)标识性联系集应该没有描述性属性,因为任何必需

19、的属性都可和弱实体集关联。(因为一对多联系集),weak entity set,total participation,Identifying relationship,discriminator,弱实体集还可以参与标识性联系以外的其他联系。例,payment实体可以参与与account实体相关联的联系,以标识支付贷款的帐户。弱实体集可以作为属主实体集参与到与另一个弱实体集的标识性联系中。一个弱实体集也可能与不止一个属主实体集关联,这样一个特殊的弱实体可以通过来自标识实体集的实体组合来标识。弱实体集的主码可以有标识实体集的主码的并集加上弱实体集的分辨符组成。某些情况下,可以选择将一个弱实体集表

20、述为它所属的实体集的一个多值复合属性。例,实体集loan具有一个多值复合属性payment,它由payment-number、payment-date和payment-amount组成。如果弱实体集只参与标识性联系,而且其属性不多,那么建模时将其表述为一个属性更合适。相反,如果弱实体集参与到标识性联系以外的联系中,或者其属性较多时,则建模时将其表述为弱实体集更恰当。同一门课会在不同学期上,而在一学期里会有同一门课的几部分。同一门课的不同提供由semester和Section-number来标识,分辨符是两个。,Specialization特殊化,自上而下的设计过程;在某实体集中标识出实体子集,

21、有别于集合中的其它实体。一个实体可以根据多个可区分的特征来进行特殊化。当一个实体集有不只一种特殊化方式,则这个特定实体可能同时属于多个特殊化实体集。用标识成ISA的三角形构件表示(如客户“是ISA”人)。,特殊化示例Specialization Example,一般化Generalization,自下而上的设计过程将一组实体集所共享的特性组成较高层实体集。特殊化和概括化是相对的;它们以相同的形式表现在E-R图中。术语特殊化和概括化可以互换。属性继承Attribute inheritance 低层实体集继承相关联的高层实体集的所有属性和参与的关系。,Design Constraints on a

22、 Specialization/Generalization 建立在特殊性和概括性上的约束,确定哪些实体可以是给定低层实体集的成员的约束。condition-defined 条件定义(成员资格条件)例,高层实体集account具有属性account-type(savings account或checking account)。由于所有低层实体都基于同一属性(account-type)进行评估,这种类型的一般化称为是属性定义的。user-defined 用户定义(用户指定)例,银行员工在三个月的雇佣期后被分配到四个工作组中的一个。,同一概括中,确定实体是否可以同属于多个低层实体集的约束Disjo

23、int 不相交(只属于一个低层实体)例,高层实体集account具有属性account-type(savings account或checking account),一个实体不能既是储蓄帐户又是支票帐户。Overlapping 重叠(可属于同一概括中的多个低层实体)例,银行员工在三个月的雇佣期后被分配到四个工作组中的一个,假设某些经理参加到多个工作组中。,完备性性约束确定高层实体集中的实体是否必须属于同一特殊(概括)中至少一个低层实体集。Total(double line)全部(每个高层实体必须属于一个低层实体集)Partial(line)部分(允许某些高层实体不属于任何低层实体集)完备性约束

24、可以和第二类约束任意组合。,overlapping,partial participation,total participation,disjoint,E-R Diagram With Redundant Relationships冗余关系的E-R图,Aggregation(Cont.)聚集(续),联系集works-on和manages拥有重叠的信息。通过聚集aggregation消除冗余。将联系视为抽象实体。允许联系间有联系。联系抽象成为新实体。消除冗余后,下图说明如下:雇员在特定部门的特定工作中工作,(也可以在不同的部门,为不同的工作工作)。雇员、部门和工作的组合有一个相关的领导(管理员

25、)。,E-R Diagram With Aggregation使用聚集的E-R图,Summary of Symbols Used in E-R Notation E-R设计中使用的符号汇总,Summary of Symbols(Cont.)符号汇总(续),Alternative E-R Notations可选的E-R表示,E-R Design Decisions E-R图设计策略,用实体集或属性表示对象。如何使用实体集或关系集最佳表达现实世界的概念。三元关系的使用和一对二元关系的使用的对比。强或弱实体集的使用。特殊性和概括性的使用提高模块化设计能力。聚集的使用将聚集实体集视为单个单元,而不必关

26、注其内部结构的细节。,Design Phases设计阶段,刻划数据需求阶段用户需求规格说明概念设计阶段功能需求规格说明逻辑设计阶段物理设计阶段,E-R Diagram for a Banking Enterprise银行系统的E-R图,Reduction of an E-R Schema to Tables将E-R模式转换成表,主码使实体集和关系集可以表示为表,成为数据库的组成部分。与某E-R图相对应的数据库可以表示为一组表。每一个实体集和关系集,都可以唯一地用一个表表示,其名称可以使用相对应的实体集或关系集的名称。每个表都有若干列(通常相当于属性),每一列都有唯一的名称。从E-R图产生出一个

27、关系数据库设计中,将E-R图转换成表是基础。,Strong Entity Sets 强实体集,强实体集转换成表时,拥有相同的属性。Cartesian product 笛卡儿积:D1D2 Dn(表有n列),Weak Entity Sets弱实体集,弱实体集转变为表后,包括一个用于标识强实体集的主码的列。,Relationship Sets 联系集,联系集转变为表后,表中各列对应于联系集的每一个描述性属性,以及每一个用于标识强实体集的主码的属性。,Redundancy of Tables表的冗余,表示连接弱实体集及其标识性强实体集的联系集的表是冗余的。例如,付款表已经包含了贷款-付款表中会出现的信

28、息(如列贷款号和付款号),Combination of Tables 表的合并,多对一和一对多的在多方全部参与的联系集,在表示时可以在多方为一方的每一个主码属性和联系集的每一个描述性属性加一列。例如,不生成关系帐户-部门表,而在帐户实体集中加一个部门属性。,Combination of Tables(cont.)表的合并(续),一对一关系集,任何一方都可以用于表示“多”方。即,附加的列可以加上任意一个实体集中。如果多方是部分参与,则多方中增加的列的属性值应允许使用空值。,Composite Attributes复合属性,为复合属性的每个子属性创建一个单独的列,而不为复合属性自身创建一个单独的列

29、。,customer,Multivalued Attributes多值属性,实体E的多值属性M可以用单独的表T来表示。表T有对应E的主码的属性和对应多值属性M的属性。多值属性中的每个值映射至表T中的单独行。,dependent-name,Generalization 一般化,方法1:为高层实体构造表。构成低层实体集的表,每个表中包含高层实体集的主码及本层的属性。table table attributesaccount account-number,balance savings-account account-number,interest-ratechecking-account acco

30、unt-number,overdraft-amount缺点:取诸如存储账户的信息时需要存取两个表。,方法2:如果一般化是不相交的且完全的,不为高层实体集创建任何表。相反,为每个低层实体集构造一个表,带所有本层属性和继承属性。table table attributessavings-account account-number,balance,interest-ratechecking-account account-number,balance,overdraft-amount如果一般化是重叠的,某些像余额这样的值将没必要地被存储两次。如果一般化是部分的,某些实体不能表示出来。,Relati

31、ons Corresponding to Aggregation相对于聚集的关系,Relations Corresponding to Aggregation(cont.)相对于聚集的关系(续),customer-name,cust-social-security,customer-street,customer-city,customer,loan-number,amount,loan,cust-social-security,loan-number,borrower,emp-social-security,employee-name,phone-number,employee,emp-so

32、cial-security,cust-social-security,loan-number,loan-officer,一、一个实体型转换为一个关系模式关系的属性:实体型的属性关系的码:实体型的码二、一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。转换为一个独立的关系模式 关系的属性:与该联系相连的各实体的码以及联系本身的属性 关系的候选码:每个实体的码均是该关系的候选码与某一端对应的关系模式合并 合并后关系的属性:加入对应关系的码和联系本身的属性 合并后关系的码:不变,6.4.1 E-R图向关系模型的转换原则,三、一个1:n联系可以转换为一个独立的关系模式,也

33、可以与n端对应的关系模式合并。转换为一个独立的关系模式 关系的属性:与该联系相连的各实体的码以及联系本身的属性 关系的码:n端实体的码与n端对应的关系模式合并 合并后关系的属性:在n端关系中加入1端关系的码和联系本身的属性 合并后关系的码:不变 可以减少系统中的关系个数,一般情况下更倾向于采用这种方法。,6.4.1 E-R图向关系模型的转换,四、一个m:n联系转换为一个关系模式关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的码:各实体码的组合五、三个或三个以上实体间的一个多元联系转换为一个关系模式关系的属性:与该多元联系相连的各实体的码 以及联系本身的属性关系的候选码:各实体码的组

34、合六、同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。例:如果教师实体集内部存在领导与被领导的1:n自联系,我们可以将该联系与教师实体合并,这时主码职工号将多次出现,但作用不同,可用不同的属性名加以区分:教师(职工号,姓名,性别,职称,系主任),6.4.1 E-R图向关系模型的转换,七、具有相同码的关系模式可合并目的:减少系统中的关系个数。合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。例:“拥有”关系模式:拥有(学号,性别)“学生”关系模式:学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)可以将它们合并为一个关系模式:学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均成绩),6.4.1 E-R图向关系模型的转换,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号