版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Entity Sets实体集 数据库可由下列内容模型化: 实体的集合 实体间的关系 实体是现实世界中可区别于其他对象的“事件”或“物体”。例如:指定的人、公司、事件、工厂 实体集是拥有相同特性的同类型实体的集合。例如所有人、公司、树、节假日的集合组成实体集的各实体称为实体集的外延。第1页/共66页Entity Sets customer and loan实体集:客户和贷款 customer-id customer- customer- customer- loan- amount name street city number第2页/共66页n实体由实体由属性属性集表示,该集合描述了实体集中所
2、有成员所拥有的特性。集表示,该集合描述了实体集中所有成员所拥有的特性。Example: customer = (customer-id, customer-name, customer-street, customer-city) loan = (loan-number, amount) 贷款贷款=(贷款号,贷款金额)(贷款号,贷款金额)n域域每个属性的取值范围。每个属性的取值范围。n属性类型:属性类型:H单个和单个和组合属性组合属性H单值和多值属性(一组值)单值和多值属性(一组值)4例:多值属性:电话号码,例:多值属性:电话号码,0个、个、1个或多个个或多个HNull attributes
3、空属性空属性HDerived attributes派生属性派生属性4由其他属性计算而得由其他属性计算而得4例如例如“年龄年龄”可以得出可以得出“出生年份出生年份”Attributes属性第3页/共66页Composite Attributes组合属性复合属性可以是有层次的。复合属性可以是有层次的。第4页/共66页Relationship Sets联系集 联系是若干实体间的关联。例如:Hayes depositor A-102 姓名(客户实体) 储户(联系集) (帐目实体) 联系集是两个以上实体间的数学关系(所有实体来自实体集)。(e1, e2, en) | e1 E1, e2 E2, , en
4、 En其中(e1, e2, , en) 是联系。 例如: (Hayes, A-102) depositor第5页/共66页Relationship Set borrower第6页/共66页 实体集间的关联被称为参与,既实体集E1 ,E2, ,En参与联系集 R. E-R模式中的联系实例代表真实世界中被抽象化的实体间的关联。 在联系中实体所起的功用称为实体的角色。 联系也可能具有描述性属性。 Binary relationship sets 二元联系集 Nonbinary relationship sets,such as ternary relationship sets 非二元联系集 三元联
5、系集 参与一个联系集的实体集的数目被称为联系集的度。Relationship Sets (Cont.)联系集(续)第7页/共66页Mapping Cardinalities映射基数 映射基数或映射比例表达通过一联系集能同时与另一个实体相关联的实体数目 多用于描述二元关系集。 二元关系集的映射有下列类型: One to one一对一 One to many一对多 Many to one多对一 Many to many 多对多第8页/共66页Mapping Cardinalities映射(基数)(a)一对一一对一: A中的一个实体至多与中的一个实体至多与 B中的一个实体相关联中的一个实体相关联,
6、B中的一个实体中的一个实体至多与至多与 A 中的一个实体相关联中的一个实体相关联 。(b)一对多一对多: A中的一个实体可以与中的一个实体可以与 B中的任意多个实体相关联中的任意多个实体相关联, 然而,然而,B中中的一个实体至多与的一个实体至多与 A 中的一个实体相关联中的一个实体相关联 。注意:注意: A和和B中的元素也可以没有对应元素(找不到映射关系)中的元素也可以没有对应元素(找不到映射关系)第9页/共66页Mapping Cardinalities映射(基数)Many to one多对一多对一Many to many多对多多对多注:注:A和和B中的元素可以没有映射关系中的元素可以没有映
7、射关系第10页/共66页Existence Dependencies存在依赖 如果实体X的存在依赖于实体Y的存在,则X存在依赖于Y。 Y是支配实体dominant entity (如下例中的贷) X是从属实体subordinate entity (如下例的付款) 如果贷款实体被删除,则其相关的付款实体也必须删除。 Total participation 全部参与 loan对borrow联系集 Partial participation 部分参与 customer对borrowloan-paymentpaymentloan第11页/共66页Keys:Entity Sets码:实体集 实体集的“超
8、码” super key是属性集,其值可以唯一的标识一个实体。 实体的“候选码” candidate key是最小的超级码 客户id号是客户的候选取码 帐户号是帐户的候选取码 虽然可以有多个候选取存在,但只有一个候选作为“主码” primary key第12页/共66页Keys:Relationship Sets码:联系集假设所有主码的属性名称是唯一的并且每个实体集仅参与联系集一次。联系集的主码成员依赖于和联系集R相关联的属性的结构。H 如果联系集R没有属性与之相关联,那么属性集合primary-key(E1)U primary-key(E2)UU primary-key(En)表示集合R中一
9、个独立的联系。H 如果联系集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) 构成了联系集的超码。第13页/共66页如果在不同的实体集中出现了主码属性名不唯一的情况,属性应该改名以区分它们;实体集的名字加上属性名可以形成唯一的名称。如果一个实体集不止一次地参与某个联系集,则角色名可以代替实体集的名称形成唯一的属性名。联系
10、集主码的结构依赖于联系集的映射基数。 多对多 一对多 多对一 一对一 对于非二元联系,如果没有度的限制,前面描述的超码成为唯一的候选码,并被选为主码。第14页/共66页Design Issues设计问题 是用实体集还是属性? 选择主要与企业模型结构有关,与相关的属性语义有关 一个常见的错误是用实体集的主码作为另一个实体集的属性,而不是联系。例如,将customer-id作为loan的属性是不正确的,即使每笔贷款只有一个客户也是如此。用borrower联系代表贷款和客户直接的连接关系才是正确的方法,因为这样可以明确地表示出两者之间的关系而不是将这种关系隐含在属性中。 另一个常犯的错误是将有关系的
11、实体集的主码属性作为联系集的属性。这样做是不对的,因为在联系的表示中已经包含了这些主码属性。第15页/共66页 使用联系集还是实体集? 指导方针是用联系集来描述实体集间的相互作用。 举例: 一法:贷款作为一个实体来建模 二法:不将贷款作为一个实体,而作为客户和银行分支机构之间的一个联系的描述性属性。每次贷款用这个联系表示。 如果每笔贷款正好为一个客户所有,并且正好同一个分行相联系,用联系表示贷款可以。但不能方便地表示多个客户共有一笔贷款。为此,为共有贷款的每个人分别定义一个联系,并且具有相同的描述性属性值。 这种重复有两个问题:数据多次存储,浪费空间;更新可能导致不一致状态。一法就没有这种问题
12、。branchborrowerloancustomerLoan-branchbranchamountcustomercust-branchLoan-number第16页/共66页 二元还是n元联系集 一般地,非二元关系可以通过构造出一个假设的实体集来表示成二元关系。 关系R是实体集A,B,C的关联表示,则可以利用新的实体集E,及三个关系RA, RB 和RC 相应地表示A,B,C之间的关系。 如果联系集R有属性,将这些属性赋给实体集E。并为E建立一个标识属性(因每个实体集都应该至少有个一属性,以区别实体集中的各个成员)。 针对R中的每个联系(ai,bi,ci),在实体集E中构造出一个新的实体ei
13、,并将其与A,B,C相应的实体关联,即在RA中插入(ei,ai),在RB中插入(ei,bi),在RC中插入(ei,ci)。第17页/共66页n可以将这一过程直接推广到可以将这一过程直接推广到n元联系集的情况。因此概念上可以限制元联系集的情况。因此概念上可以限制E-R图中只包含二元联系集。然而,这种限制并不总让人满意。图中只包含二元联系集。然而,这种限制并不总让人满意。H对于表示联系集对于表示联系集R而创建的实体集而创建的实体集E,为其创建一个标识属性。该,为其创建一个标识属性。该标识属性和附加的那些联系集增加了设计的复杂程度以及对总的存标识属性和附加的那些联系集增加了设计的复杂程度以及对总的存
14、储空间的需求。储空间的需求。HN元联系集可以更清晰地表示几个实体集参与到一个联系集中。元联系集可以更清晰地表示几个实体集参与到一个联系集中。H可能没有将三元联系上的约束转变为二元联系上的约束的方法。可能没有将三元联系上的约束转变为二元联系上的约束的方法。例如,一个多对一的约束,从例如,一个多对一的约束,从A、B到到C,这种约束就不能用联系,这种约束就不能用联系集集RA, RB 和和RC 上的度约束来表示。上的度约束来表示。第18页/共66页 联系属性的设置 映射基数可以影响联系属性的设置。 多对一或一对多联系集的属性可以归到联系的“多方”实体集,而不是联系集。 一对一联系集的属性可以归到参与的
15、实体集的任何一方,而不是联系集。第19页/共66页H对于对于多对多多对多联系集而言,属性设置的选择更明了。当一个属性由参与联系集而言,属性设置的选择更明了。当一个属性由参与的实体集共同决定,联系集属性的实体集共同决定,联系集属性必须必须归到归到多对多联系集多对多联系集。第20页/共66页E-R DiagramsE-R图Rectangles矩形表示实体集矩形表示实体集Diamonds菱形表示关系集菱形表示关系集Lines直线用于连接实体集和属性,以及实体集与关系集直线用于连接实体集和属性,以及实体集与关系集Ellipses椭圆表示属性椭圆表示属性HDouble ellipses双线椭圆表示多值属
16、性双线椭圆表示多值属性HDashed ellipses虚线椭圆表示派生属性虚线椭圆表示派生属性Underline 下划线标识主码属性下划线标识主码属性Double lines 双线双线表示一个实体表示一个实体全部参与全部参与联系集中联系集中Double Rectangles 双矩形双矩形表示表示弱实体集弱实体集第21页/共66页Cardinality Constraints基数的约束 关系集和实体集之间的基数的约束,通常使用带箭头直线表示一,无箭头直线表示多。 从customer到 loan: 一对多第22页/共66页 多对一 一对一第23页/共66页Relationship Sets wit
17、h Attributes带属性的关系集第24页/共66页E-R Diagram With Composite, Multivalued, and Derived Attributes带组合、多值和导出属性的E-R图multivalued attributescomposite attributesderived attributes第25页/共66页Roles角色n关系的实体集不一定要互异。关系的实体集不一定要互异。n“领导领导”和和“工人工人”两个称呼称为两个称呼称为“角色角色”;它们用于表示雇员实体与关系;它们用于表示雇员实体与关系集集“受雇受雇”之间的关系。之间的关系。n角色在角色在E-
18、R图中通过标识连接菱形和矩形的直线完成。图中通过标识连接菱形和矩形的直线完成。role第26页/共66页E-R Diagram with a Ternary Relationship三个实体间关系的E-R图表示在非二元联系集中,可以标明一些多对一联系类型。在非二元联系集中,可以标明一些多对一联系类型。假设一个员工在每个支假设一个员工在每个支行最多只能有一份工作(比如,行最多只能有一份工作(比如,Jones不能在同一支行又当经理又当审计不能在同一支行又当经理又当审计员)。这种约束可以从联系集拉出一个箭头指向员)。这种约束可以从联系集拉出一个箭头指向job来表示。来表示。第27页/共66页 只允许
19、联系集外最多有一个箭头,否则会有两种解释: 来自A1,A2,Ai的实体的一个特殊组合最多只能和来自Ai+1, Ai+2, ,An实体的一个组合相关。联系R的主码可以用A1, A2, ,Ai的主码的并集来构造。 对每个实体集Ak,ikn,来自其他实体集的每个实体组合最多和来自Ak的一个实体相关。每个集合A1,A2,Ak-1 Ak+1 , ,An ,ikn,都形成一个候选码。A1RA2AiAi+1Ai+2An第28页/共66页Participation of an Entity Set in a Relationship Set联系集中的实体集参与Total participation完全参与完全
20、参与 (用双线表示用双线表示): 实体集中的每实体集中的每个实体至少参与联系集中的一个联系。个实体至少参与联系集中的一个联系。 例如,例如,loan是完全参与是完全参与 borrower 。每笔贷款必须有一个顾。每笔贷款必须有一个顾客与之相关联。客与之相关联。Partial participation部分参与:某些实体可以不参与联系部分参与:某些实体可以不参与联系集中的任何联系。集中的任何联系。 例如,例如,customer 部分参与部分参与 borrower。total participation第29页/共66页Alternative Notation for Cardinality Li
21、mits基数限制的注释 基数限制也可以表示参与约束(每个实体参与联系的次数)l.h: l 最小基数最小基数 h 最大基数最大基数l为为 1 表示完全参与。表示完全参与。h为为 1 表示实体至多参与一个联系。表示实体至多参与一个联系。h为为 * 表示没有限制。表示没有限制。 1.* =完全参与完全参与如果一个二元联系的两条边都有最大值如果一个二元联系的两条边都有最大值1,此联系是一对一。,此联系是一对一。C1 L1 C2 L2C3 L3C4 L4C5一对多第30页/共66页Weak Entity Sets弱实体集weak entity set弱实体集是指没有主键的实体集。弱实体集依赖于标识(强)
22、实体集identifying entity set。 弱实体集必然通过一对多联系集与标识(强)实体集关联 。并且弱实体集全部参与联系。 标识性联系用双边菱形框表示。弱实体集中的分辨符discriminator (或称部分码)是一组属性,用于区分弱实体集中的实体。例,payment-number区分同一笔贷款的不用payment实体。弱实体集的主码由弱实体集所依赖的强实体集的主码,及弱实体集的分辨符构成。第31页/共66页Weak Entity Sets (Cont.)弱实体集(续)付款的主码(贷款号,付款号) 标识性联系集应该没有描述性属性,因为任何必需的属性都可和弱实体集关联。(因为一对多联
23、系集)weak entity settotal participationIdentifying relationshipdiscriminator第32页/共66页 弱实体集还可以参与标识性联系以外的其他联系。例,payment实体可以参与与account实体相关联的联系,以标识支付贷款的帐户。弱实体集可以作为属主实体集参与到与另一个弱实体集的标识性联系中。一个弱实体集也可能与不止一个属主实体集关联,这样一个特殊的弱实体可以通过来自标识实体集的实体组合来标识。弱实体集的主码可以有标识实体集的主码的并集加上弱实体集的分辨符组成。 某些情况下,可以选择将一个弱实体集表述为它所属的实体集的一个多值
24、复合属性。例,实体集loan具有一个多值复合属性payment,它由payment-number、payment-date和payment-amount组成。如果弱实体集只参与标识性联系,而且其属性不多,那么建模时将其表述为一个属性更合适。相反,如果弱实体集参与到标识性联系以外的联系中,或者其属性较多时,则建模时将其表述为弱实体集更恰当。同一门课会在不同学期上,而在一学期里会有同一门课的几部分。同一门课的不同提供由semester和Section-number来标识,分辨符是两个。semesterCourse-offeringccocoursecourse-numbernameM1Sectio
25、n-number第33页/共66页Specialization特殊化 自上而下的设计过程;在某实体集中标识出实体子集,有别于集合中的其它实体。 一个实体可以根据多个可区分的特征来进行特殊化。 当一个实体集有不只一种特殊化方式,则这个特定实体可能同时属于多个特殊化实体集。 用标识成ISA的三角形构件表示(如客户“是ISA”人)。第34页/共66页特殊化示例Specialization Example第35页/共66页一般化Generalization 自下而上的设计过程将一组实体集所共享的特性组成较高层实体集。 特殊化和概括化是相对的;它们以相同的形式表现在E-R图中。 术语特殊化和概括化可以互
26、换。 属性继承Attribute inheritance 低层实体集继承相关联的高层实体集的所有属性和参与的关系。第36页/共66页Design Constraints on a Specialization / Generalization 建立在特殊性和概括性上的约束 确定哪些实体可以是给定低层实体集的成员的约束。 condition-defined 条件定义(成员资格条件) 例,高层实体集account具有属性account-type(savings account或checking account)。由于所有低层实体都基于同一属性(account-type)进行评估,这种类型的一般化称
27、为是属性定义的。 user-defined 用户定义(用户指定) 例,银行员工在三个月的雇佣期后被分配到四个工作组中的一个。第37页/共66页 同一概括中,确定实体是否可以同属于多个低层实体集的约束 Disjoint 不相交(只属于一个低层实体) 例,高层实体集account具有属性account-type(savings account或checking account),一个实体不能既是储蓄帐户又是支票帐户。 Overlapping 重叠(可属于同一概括中的多个低层实体) 例,银行员工在三个月的雇佣期后被分配到四个工作组中的一个,假设某些经理参加到多个工作组中。第38页/共66页 完备性约
28、束确定高层实体集中的实体是否必须属于同一特殊(概括)中至少一个低层实体集。 Total (double line) 全部(每个高层实体必须属于一个低层实体集) Partial (line) 部分(允许某些高层实体不属于任何低层实体集) 完备性约束可以和第二类约束任意组合。employeeISAcustomerpersonsavings-accountISAchecking-accountaccountoverlappingpartial participationtotal participationdisjoint第39页/共66页E-R Diagram With Redundant Rel
29、ationships冗余关系的E-R图第40页/共66页Aggregation (Cont.)聚集(续) 联系集works-on和manages拥有重叠的信息。 通过聚集aggregation消除冗余。 将联系视为抽象实体。 允许联系间有联系。 联系抽象成为新实体。 消除冗余后,下图说明如下: 雇员在特定部门的特定工作中工作,(也可以在不同的部门,为不同的工作工作)。 雇员、部门和工作的组合有一个相关的领导(管理员)。第41页/共66页E-R Diagram With Aggregation使用聚集的E-R图第42页/共66页Summary of Symbols Used in E-R Not
30、ation E-R设计中使用的符号汇总第43页/共66页Summary of Symbols (Cont.)符号汇总(续)第44页/共66页Alternative E-R Notations可选的E-R表示第45页/共66页E-R Design Decisions E-R图设计策略 用实体集或属性表示对象。 如何使用实体集或关系集最佳表达现实世界的概念。 三元关系的使用和一对二元关系的使用的对比。 强或弱实体集的使用。 特殊性和概括性的使用提高模块化设计能力。 聚集的使用将聚集实体集视为单个单元,而不必关注其内部结构的细节。第46页/共66页Design Phases设计阶段 刻划数据需求阶段
31、用户需求规格说明 概念设计阶段功能需求规格说明 逻辑设计阶段 物理设计阶段第47页/共66页E-R Diagram for a Banking Enterprise银行系统的E-R图第48页/共66页Reduction of an E-R Schema to Tables将E-R模式转换成表 主码使实体集和关系集可以表示为表,成为数据库的组成部分。 与某E-R图相对应的数据库可以表示为一组表。 每一个实体集和关系集,都可以唯一地用一个表表示,其名称可以使用相对应的实体集或关系集的名称。 每个表都有若干列(通常相当于属性),每一列都有唯一的名称。 从E-R图产生出一个关系数据库设计中,将E-R图
32、转换成表是基础。第49页/共66页Strong Entity Sets 强实体集 强实体集转换成表时,拥有相同的属性。 Cartesian product 笛卡儿积: D1D2 Dn (表有n列)第50页/共66页Weak Entity Sets弱实体集 弱实体集转变为表后,包括一个用于标识强实体集的主码的列。第51页/共66页Relationship Sets 联系集联系集转变为表后,表中各列对应于联系集的每一个描述性属性,以及每一个用于标识强实体集的主码的属性。第52页/共66页Redundancy of Tables表的冗余 表示连接弱实体集及其标识性强实体集的联系集的表是冗余的。 例如
33、,付款表已经包含了贷款-付款表中会出现的信息(如列贷款号和付款号)第53页/共66页Combination of Tables 表的合并 多对一和一对多的在多方全部参与的联系集,在表示时可以在多方为一方的每一个主码属性和联系集的每一个描述性属性加一列。H 例如,不生成关系帐户-部门表,而在帐户实体集中加一个部门属性。第54页/共66页Combination of Tables (cont.)表的合并(续) 一对一关系集,任何一方都可以用于表示“多”方。即,附加的列可以加上任意一个实体集中。 如果多方是部分参与,则多方中增加的列的属性值应允许使用空值。第55页/共66页Composite Att
34、ributes复合属性 为复合属性的每个子属性创建一个单独的列,而不为复合属性自身创建一个单独的列。customer-streetcustomercustomer-citycustomer-idcustomer-addresscustomer-namecustomer-idcustomer-namecustomer-streetcustomer-citycustomer第56页/共66页Multivalued Attributes多值属性实体E的多值属性M可以用单独的表T来表示。表T有对应E的主码的属性和对应多值属性M的属性。多值属性中的每个值映射至表T中的单独行。employee-idemp
35、loyeedependent-nameemployee-idd-namedependent-name第57页/共66页Generalization 一般化 方法1: 为高层实体构造表。 构成低层实体集的表,每个表中包含高层实体集的主码及本层的属性。 table table attributesaccount account-number, balance savings-account account-number, interest-ratechecking-account account-number, overdraft-amount 缺点:取诸如存储账户的信息时需要存取两个表。acco
36、unt-numbersavings-accountoverdraft-amountaccountinterest-ratebalanceISAchecking-account第58页/共66页 方法2: 如果一般化是不相交的且完全的,不为高层实体集创建任何表。 相反,为每个低层实体集构造一个表,带所有本层属性和继承属性。 table table attributessavings-account account-number, balance, interest-ratechecking-account account-number, balance, overdraft-amount 如果一般化是重叠的,某些像余额这样的值将没必要地被存储两次。 如果一般化是部分的,某些实体不能表示出来。第59页/共66页Relations Corresponding to Aggregation相对于聚集的关系第60页/共66页Relations Corre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工作心得体会格式
- 2025机械试用买卖合同书参考式样
- 2025赞助合同常用版范本
- 2025补偿贸易购销合同书范本
- 二零二五年度农村房屋买卖合同协议书(含农村土地整治工程)
- 二零二五年度高效养鸡场饲养员技能提升合同3篇
- 二零二五年度二零二五年度商标转让与全球市场布局合同3篇
- 2025知识产权共享合同范本
- 2025年度子女对父母赡养及家庭财产管理协议3篇
- 2025年度公司汽车销售业务员销售目标责任合同2篇
- (正式版)HG∕T 21633-2024 玻璃钢管和管件选用规定
- 南京市2023-2024高一上学期期末英语试卷及答案
- 《供应链管理》期末考试复习题库(含答案)
- 《认识长方形》数学
- 关注体重 控制血压课件
- 统编版六年级语文上册广东省广州市花都区期末检测试卷附答案
- 2022更新国家开放大学电大《生产与运作管理》2025-2026期末试题及答案(试卷代号:2617)
- (完整版)保温工艺课件
- 设计验证和生产确认[福特FORD]
- 工作场所空气中有害物质监测的采样规范课件159-2004
- 合同范本之采购合同谁保管
评论
0/150
提交评论