




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EntitySets实体集RelationshipSets联系集DesignIssues模型设计MappingConstraints映射约束Keys码E RDiagramE R图ExtendedE RFeatures扩展E R功能DesignofanE RDatabaseSchemaE R数据库模式的设计ReductionofanE RSchematoTablesE R模式转换成表时的缩减 Chapter2 Entity RelationshipModel第二章 实体 联系模型 EntitySets实体集 数据库可由下列内容模型化 实体的集合实体间的关系实体是现实世界中可区别于其他对象的 事件 或 物体 例如 指定的人 公司 事件 工厂实体集是拥有相同特性的同类型实体的集合 例如所有人 公司 树 节假日的集合组成实体集的各实体称为实体集的外延 EntitySetscustomerandloan实体集 客户和贷款 customer idcustomer customer customer loan amountnamestreetcitynumber 实体由属性集表示 该集合描述了实体集中所有成员所拥有的特性 Example customer customer id customer name customer street customer city loan loan number amount 贷款 贷款号 贷款金额 域 每个属性的取值范围 属性类型 单个和组合属性单值和多值属性 一组值 例 多值属性 电话号码 0个 1个或多个Nullattributes空属性Derivedattributes派生属性由其他属性计算而得例如 年龄 可以得出 出生年份 Attributes属性 CompositeAttributes组合属性 复合属性可以是有层次的 RelationshipSets联系集 联系是若干实体间的关联 例如 HayesdepositorA 102姓名 客户实体 储户 联系集 帐目实体 联系集是两个以上实体间的数学关系 所有实体来自实体集 e1 e2 en e1 E1 e2 E2 en En 其中 e1 e2 en 是联系 例如 Hayes A 102 depositor RelationshipSetborrower 实体集间的关联被称为参与 既实体集E1 E2 En参与联系集R E R模式中的联系实例代表真实世界中被抽象化的实体间的关联 在联系中实体所起的功用称为实体的角色 联系也可能具有描述性属性 Binaryrelationshipsets二元联系集Nonbinaryrelationshipsets suchasternaryrelationshipsets非二元联系集三元联系集参与一个联系集的实体集的数目被称为联系集的度 RelationshipSets Cont 联系集 续 MappingCardinalities映射基数 映射基数或映射比例表达通过一联系集能同时与另一个实体相关联的实体数目多用于描述二元关系集 二元关系集的映射有下列类型 Onetoone一对一Onetomany一对多Manytoone多对一Manytomany多对多 MappingCardinalities映射 基数 a 一对一 A中的一个实体至多与B中的一个实体相关联 B中的一个实体至多与A中的一个实体相关联 b 一对多 A中的一个实体可以与B中的任意多个实体相关联 然而 B中的一个实体至多与A中的一个实体相关联 注意 A和B中的元素也可以没有对应元素 找不到映射关系 MappingCardinalities映射 基数 Manytoone多对一 Manytomany多对多 注 A和B中的元素可以没有映射关系 ExistenceDependencies存在依赖 如果实体X的存在依赖于实体Y的存在 则X存在依赖于Y Y是支配实体dominantentity 如下例中的贷 X是从属实体subordinateentity 如下例的付款 如果贷款实体被删除 则其相关的付款实体也必须删除 Totalparticipation全部参与loan对borrow联系集Partialparticipation部分参与customer对borrow Keys EntitySets码 实体集 实体集的 超码 superkey是属性集 其值可以唯一的标识一个实体 实体的 候选码 candidatekey是最小的超级码客户id号是客户的候选取码帐户号是帐户的候选取码虽然可以有多个候选取存在 但只有一个候选作为 主码 primarykey Keys RelationshipSets码 联系集 假设所有主码的属性名称是唯一的并且每个实体集仅参与联系集一次 联系集的主码成员依赖于和联系集R相关联的属性的结构 如果联系集R没有属性与之相关联 那么属性集合primary key E1 Uprimary key E2 U Uprimary key En 表示集合R中一个独立的联系 如果联系集R有属性a1 a2 am与之相关联 那么属性集合primary key E1 Uprimary key E2 U Uprimary key En U a1 a2 am 表示集合R中一个独立的联系 对于以上两种情况 属性集合primary key E1 Uprimary key E2 U Uprimary key En 构成了联系集的超码 如果在不同的实体集中出现了主码属性名不唯一的情况 属性应该改名以区分它们 实体集的名字加上属性名可以形成唯一的名称 如果一个实体集不止一次地参与某个联系集 则角色名可以代替实体集的名称形成唯一的属性名 联系集主码的结构依赖于联系集的映射基数 多对多一对多多对一一对一对于非二元联系 如果没有度的限制 前面描述的超码成为唯一的候选码 并被选为主码 DesignIssues设计问题 是用实体集还是属性 选择主要与企业模型结构有关 与相关的属性语义有关一个常见的错误是用实体集的主码作为另一个实体集的属性 而不是联系 例如 将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 RDiagramsE R图 Rectangles矩形表示实体集Diamonds菱形表示关系集Lines直线用于连接实体集和属性 以及实体集与关系集Ellipses椭圆表示属性Doubleellipses双线椭圆表示多值属性Dashedellipses虚线椭圆表示派生属性Underline下划线标识主码属性Doublelines双线表示一个实体全部参与联系集中DoubleRectangles双矩形表示弱实体集 CardinalityConstraints基数的约束 关系集和实体集之间的基数的约束 通常使用带箭头直线表示一 无箭头直线表示多 从customer到loan 一对多 多对一一对一 RelationshipSetswithAttributes带属性的关系集 E RDiagramWithComposite Multivalued andDerivedAttributes带组合 多值和导出属性的E R图 multivaluedattributes derivedattributes Roles角色 关系的实体集不一定要互异 领导 和 工人 两个称呼称为 角色 它们用于表示雇员实体与关系集 受雇 之间的关系 角色在E R图中通过标识连接菱形和矩形的直线完成 role E RDiagramwithaTernaryRelationship三个实体间关系的E R图表示 在非二元联系集中 可以标明一些多对一联系类型 假设一个员工在每个支行最多只能有一份工作 比如 Jones不能在同一支行又当经理又当审计员 这种约束可以从联系集拉出一个箭头指向job来表示 只允许联系集外最多有一个箭头 否则会有两种解释 来自A1 A2 Ai的实体的一个特殊组合最多只能和来自Ai 1 Ai 2 An实体的一个组合相关 联系R的主码可以用A1 A2 Ai的主码的并集来构造 对每个实体集Ak i k n 来自其他实体集的每个实体组合最多和来自Ak的一个实体相关 每个集合 A1 A2 Ak 1Ak 1 An i k n 都形成一个候选码 ParticipationofanEntitySetinaRelationshipSet联系集中的实体集参与 Totalparticipation完全参与 用双线表示 实体集中的每个实体至少参与联系集中的一个联系 例如 loan是完全参与borrower 每笔贷款必须有一个顾客与之相关联 Partialparticipation部分参与 某些实体可以不参与联系集中的任何联系 例如 customer部分参与borrower totalparticipation AlternativeNotationforCardinalityLimits基数限制的注释 基数限制也可以表示参与约束 每个实体参与联系的次数 l h l最小基数h最大基数l为1表示完全参与 h为1表示实体至多参与一个联系 h为 表示没有限制 1 完全参与如果一个二元联系的两条边都有最大值1 此联系是一对一 C1L1C2L2C3L3C4L4C5一对多 WeakEntitySets弱实体集 weakentityset弱实体集是指没有主键的实体集 弱实体集依赖于标识 强 实体集identifyingentityset 弱实体集必然通过一对多联系集与标识 强 实体集关联 并且弱实体集全部参与联系 标识性联系用双边菱形框表示 弱实体集中的分辨符discriminator 或称部分码 是一组属性 用于区分弱实体集中的实体 例 payment number区分同一笔贷款的不用payment实体 弱实体集的主码由弱实体集所依赖的强实体集的主码 及弱实体集的分辨符构成 WeakEntitySets Cont 弱实体集 续 付款的主码 贷款号 付款号 标识性联系集应该没有描述性属性 因为任何必需的属性都可和弱实体集关联 因为一对多联系集 weakentityset totalparticipation Identifyingrelationship discriminator 弱实体集还可以参与标识性联系以外的其他联系 例 payment实体可以参与与account实体相关联的联系 以标识支付贷款的帐户 弱实体集可以作为属主实体集参与到与另一个弱实体集的标识性联系中 一个弱实体集也可能与不止一个属主实体集关联 这样一个特殊的弱实体可以通过来自标识实体集的实体组合来标识 弱实体集的主码可以有标识实体集的主码的并集加上弱实体集的分辨符组成 某些情况下 可以选择将一个弱实体集表述为它所属的实体集的一个多值复合属性 例 实体集loan具有一个多值复合属性payment 它由payment number payment date和payment amount组成 如果弱实体集只参与标识性联系 而且其属性不多 那么建模时将其表述为一个属性更合适 相反 如果弱实体集参与到标识性联系以外的联系中 或者其属性较多时 则建模时将其表述为弱实体集更恰当 同一门课会在不同学期上 而在一学期里会有同一门课的几部分 同一门课的不同提供由semester和Section number来标识 分辨符是两个 Specialization特殊化 自上而下的设计过程 在某实体集中标识出实体子集 有别于集合中的其它实体 一个实体可以根据多个可区分的特征来进行特殊化 当一个实体集有不只一种特殊化方式 则这个特定实体可能同时属于多个特殊化实体集 用标识成ISA的三角形构件表示 如客户 是ISA 人 特殊化示例SpecializationExample 一般化Generalization 自下而上的设计过程 将一组实体集所共享的特性组成较高层实体集 特殊化和概括化是相对的 它们以相同的形式表现在E R图中 术语特殊化和概括化可以互换 属性继承Attributeinheritance 低层实体集继承相关联的高层实体集的所有属性和参与的关系 DesignConstraintsonaSpecialization Generalization建立在特殊性和概括性上的约束 确定哪些实体可以是给定低层实体集的成员的约束 condition defined条件定义 成员资格条件 例 高层实体集account具有属性account type savingsaccount或checkingaccount 由于所有低层实体都基于同一属性 account type 进行评估 这种类型的一般化称为是属性定义的 user defined用户定义 用户指定 例 银行员工在三个月的雇佣期后被分配到四个工作组中的一个 同一概括中 确定实体是否可以同属于多个低层实体集的约束Disjoint不相交 只属于一个低层实体 例 高层实体集account具有属性account type savingsaccount或checkingaccount 一个实体不能既是储蓄帐户又是支票帐户 Overlapping重叠 可属于同一概括中的多个低层实体 例 银行员工在三个月的雇佣期后被分配到四个工作组中的一个 假设某些经理参加到多个工作组中 完备性约束 确定高层实体集中的实体是否必须属于同一特殊 概括 中至少一个低层实体集 Total doubleline 全部 每个高层实体必须属于一个低层实体集 Partial line 部分 允许某些高层实体不属于任何低层实体集 完备性约束可以和第二类约束任意组合 overlapping partialparticipation totalparticipation disjoint E RDiagramWithRedundantRelationships冗余关系的E R图 Aggregation Cont 聚集 续 联系集works on和manages拥有重叠的信息 通过聚集aggregation消除冗余 将联系视为抽象实体 允许联系间有联系 联系抽象成为新实体 消除冗余后 下图说明如下 雇员在特定部门的特定工作中工作 也可以在不同的部门 为不同的工作工作 雇员 部门和工作的组合有一个相关的领导 管理员 E RDiagramWithAggregation使用聚集的E R图 SummaryofSymbolsUsedinE RNotationE R设计中使用的符号汇总 SummaryofSymbols Cont 符号汇总 续 AlternativeE RNotations可选的E R表示 E RDesignDecisionsE R图设计策略 用实体集或属性表示对象 如何使用实体集或关系集最佳表达现实世界的概念 三元关系的使用和一对二元关系的使用的对比 强或弱实体集的使用 特殊性和概括性的使用提高模块化设计能力 聚集的使用将聚集实体集视为单个单元 而不必关注其内部结构的细节 DesignPhases设计阶段 刻划数据需求阶段用户需求规格说明概念设计阶段功能需求规格说明逻辑设计阶段物理设计阶段 E RDiagramforaBankingEnterprise银行系统的E R图 ReductionofanE RSchematoTables将E R模式转换成表 主码使实体集和关系集可以表示为表 成为数据库的组成部分 与某E R图相对应的数据库可以表示为一组表 每一个实体集和关系集 都可以唯一地用一个表表示 其名称可以使用相对应的实体集或关系集的名称 每个表都有若干列 通常相当于属性 每一列都有唯一的名称 从E R图产生出一个关系数据库设计中 将E R图转换成表是基础 StrongEntitySets强实体集 强实体集转换成表时 拥有相同的属性 Cartesianproduct笛卡儿积 D1 D2 Dn 表有n列 WeakEntitySets弱实体集 弱实体集转变为表后 包括一个用于标识强实体集的主码的列 RelationshipSets联系集 联系集转变为表后 表中各列对应于联系集的每一个描述性属性 以及每一个用于标识强实体集的主码的属性 RedundancyofTables表的冗余 表示连接弱实体集及其标识性强实体集的联系集的表是冗余的 例如 付款表已经包含了贷款 付款表中会出现的信息 如列贷款号和付款号 CombinationofTables表的合并 多对一和一对多的在多方全部参与的联系集 在表示时可以在多方为一方的每一个主码属性和联系集的每一个描述性属性加一列 例如 不生成关系帐户 部门表 而在帐户实体集中加一个部门属性 CombinationofTables cont 表的合并 续 一对一关系集 任何一方都可以用于表示 多 方 即 附加的列可以加上任意一个实体集中 如果多方是部分参与 则多方中增加的列的属性值应允许使用空值 CompositeAttributes复合属性 为复合属性的每个子属性创建一个单独的列 而不为复合属性自身创建一个单独的列 customer MultivaluedAttributes多值属性 实体E的多值属性M可以用单独的表T来表示 表T有对应E的主码的属性和对应多值属性M的属性 多值属性中的每个值映射至表T中的单独行 dependent name Generalization一般化 方法1 为高层实体构造表 构成低层实体集的表 每个表中包含高层实体集的主码及本层的属性 tabletableattributesaccountaccount number balancesavings accountaccount number interest ratechecking accountaccount number overdraft amount缺点 取诸如存储账户的信息时需要存取两个表 方法2 如果一般化是不相交的且完全的 不为高层实体集创建任何表 相反 为每个低层实体集构造一个表 带所有本层属性和继承属性 tabletableattributessavings accountaccount number balance interest ratechecking accountaccount number balance overdraft amount如果一般化是重叠的 某些像余额这样的值将没必要地被存储两次 如果一般化是部分的 某些实体不能表示出来 RelationsCorrespondingtoAggregation相对于聚集的关系 RelationsCorrespondingtoAggregation 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 social sec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 户外运动安全免责合同书
- 2025浙江宁波市北仑区大碶街道招聘编外人员4人备考考试题库附答案解析
- 成都市锦江区北顺街幼儿园招聘员额教师(1人)考试参考题库及答案解析
- 2025内蒙古呼和浩特市东方学校招聘小学、初中学科教师备考考试试题及答案解析
- 2025年合肥市兴海苑小学招聘教师备考考试题库附答案解析
- 金华市发展和改革委员会所属金华市价格认证中心公开选调工作人员1人备考考试题库附答案解析
- 2025四川成都市第五人民医院第三批编外招聘工作人员3人考试参考题库及答案解析
- 2025年湖南郴州安仁县城区学校(含县三中)公开选聘202名教师考试模拟试题及答案解析
- 2025四川省盐业集团有限责任公司公开选聘所属子公司副总经理4人备考考试题库附答案解析
- 物业维修服务合同条款解析
- 2025秋季第一学期开学典礼德育主任的发言稿:让责任与品格同行让梦想与行动齐飞
- 吴伯萧名篇阅读理解与教学设计
- 仓库基础知识培训教材课件
- 曲臂式高空作业车专项施工方案
- 2025秋人教统编版二年级语文上册第一单元语文园地一【教案】
- SOP考试题及答案
- 高职院校实训室管理办法
- 电力施工安全管理办法
- 危险化学品生产许可证实施细则(一)(危险化学品无机产品部分)
- 德瑞斯D600变频器说明书
- 2025-2030年中国锂电池回收行业市场深度调研及前景趋势与投资研究报告
评论
0/150
提交评论