数据库课程ch2 E-R模型_第1页
数据库课程ch2 E-R模型_第2页
数据库课程ch2 E-R模型_第3页
数据库课程ch2 E-R模型_第4页
数据库课程ch2 E-R模型_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实体集实体集关系集联系集设计问题模型设计映射约束映射约束键代码E-R图E-R图扩展E-R特性扩展E-R功能设计E-R数据库模式的设计E-R数据库模式到表E-R模式的简化,第2:章实体-关系模型第2章:实体-关系模型,实体集实体集数据库可以通过以下内容建模:实体之间的关系实体是“事件”或“对象”,可以与其他对象区分开来例如,个人、公司、事件和工厂的指定实体集是一组具有相同特征的相同类型的实体。例如,由所有者、公司、树和假日的集合组成的实体称为实体集的扩展。实体集客户和贷款实体集:客户和贷款,客户-id客户-客户-客户-贷款-金额名称街道城市编号,实体由属性集表示,该属性集描述了实体集所有成员拥有

2、的特征。示例:客户=(客户id、客户名称、客户街道、客户城市)贷款=(贷款编号、金额)字段中每个属性的值范围。属性类型:单值和组合属性单值和多值属性(一组值)示例:多值属性:电话号码、0、1或更多空属性派生属性是从其他属性计算的,例如,“年龄”可以得到“出生年份”、“属性”、“复合属性”组合属性,而复合属性可以是分层的。关系集联系集,联系是几个实体之间的关联。例如:海斯存款人A-102名称(客户实体)存款人(联系集)(账户实体)联系集是两个或多个实体之间的数学关系(所有实体都来自实体集)。(E1 e1,e2,en) | e1 E1,e2,E2,en,en其中(E1,E2,En)是连接。例如:(

3、Hayes,a-102)寄存者,关系集探索者,实体集之间的关联称为参与,即实体集E1、E2、en、En参与关联集,而R. E-R模式下的关联实例代表现实世界中抽象实体之间的关联。实体在连接中的功能称为实体的角色。联系人也可能具有描述性属性。二元关系集二元关系集非二元关系集,如三元关系集非二元关系集参与关系集的实体集的数量称为关系集的度。关系集(续。)联系集(续)、映射基数映射基数、映射基数或映射比例表示通过联系集可以同时与另一个实体相关联的实体的数量。二元关系集的映射有以下几种类型:一对一一对多多对一多对多,映射基数映射(基数),(A)一对一: A中的一个实体最多与B中的一个实体相关联,而B中

4、的一个实体最多与A中的一个实体相关联,(b)一对多: A中的一个实体可以与B中的任意数量的实体相关联,然而, B中的一个实体最多只能与A中的一个实体相关联。注意:A和B中的元素可能没有对应的元素(找不到映射关系),但是有映射基数(基数),多对一和多对多。 注意:A和B中的元素可能没有映射关系,并且存在依赖关系。如果实体X的存在取决于实体Y的存在,那么实体X的存在取决于实体Y。在下面的例子中,Y是主导实体(贷款),而X是从属实体(付款)。如果贷款实体被删除,其相关的付款实体也必须被删除。总参与完全参与贷款-借款联系集,部分参与客户-借款,键:实体集代码:实体集。实体集的“超级代码”超级键是一个属

5、性集,它的值可以唯一地标识一个实体。实体的候选键是最小的超级代码。客户id号是客户获取的候选代码。帐号是帐户的候选代码获取。虽然可能有多个候选项,但只有一个候选项是主键,键:关系集代码:联系集。假设所有主要代码的属性名称都是唯一的,并且每个实体集只参与一次联系集。联系集的主要关键成员取决于与联系集关联的属性的结构.属性集主键(E1) u主键(E2) uu主键(en)表示集合R中的独立连接.属性集主键(E1) u主键(E2) uu主键(en) ua1,a2,am表示集合R中的独立连接.在以上两种情况下,属性集主键(E1) u主键(E2) uu主键(en)构成了联系集的超级代码。如果主代码属性的名

6、称在不同的实体集中不是唯一的,则应该重命名该属性以区分它们;实体集的名称和属性名称可以形成唯一的名称。如果一个实体集多次参与一个联系人集,角色名称可以替换实体集的名称,形成一个唯一的属性名称。联系集主代码的结构取决于联系集的映射基数。多对多对多对一连接是非二进制的。如果没有程度限制,上述超级代码将成为唯一的候选代码,并被选为主代码。设计问题,是使用实体集还是属性?选择主要与企业模型结构和相关的属性语义有关。一个常见的错误是使用一个实体集的主代码作为另一个实体集的属性,而不是连接。例如,使用客户id作为贷款的属性是不正确的,即使每个贷款只有一个客户。使用借款人关系来表示贷款和客户之间的直接联系关

7、系是正确的方式,因为它可以清楚地显示两者之间的关系,而不是将这种关系隐藏在属性中。另一个常见的错误是将相关实体集的主代码属性作为联系集的属性。这样做是错误的,因为这些关键属性已经包含在连接的表示中。使用联系集还是实体集?指导方针是用联系集来描述实体集之间的交互。示例:一种方法:将贷款建模为一个实体;另一种方法:不是将贷款作为一个实体,而是作为客户和银行分行之间联系的描述性属性。每笔贷款都由这种联系来代表。如果每笔贷款恰好由一个客户所有,并且与一个分支机构有关联,那么这种关联意味着贷款是可以的。但它不能方便地表明多个客户共享一笔贷款。为此,为联合贷款的每个人定义一个联系人,并且具有相同的描述性属

8、性值。这种重复有两个问题:数据被存储多次,浪费空间;更新可能会导致状态不一致。一种方法没有这样的问题。一般来说,非二元关系可以通过构造一个假设的实体集来表示为二元关系。关系r是实体集a、b和c的关联表示,因此新的实体集e和三个关系RA、RB和RC可以用来相应地表示a、b和c之间的关系。如果联系集r具有属性,则将这些属性分配给实体集e。并为e建立一个标识属性(因为每个实体集应该至少有一个属性来区分实体集中的每个成员)。根据r中的每个连接(ai,bi,ci),在实体集e中构造一个新的实体ei,它与a、b和c的对应实体相关联,即(ei,ai)插入RA中,(ei,bi)插入RB中,(ei,ci)插入R

9、C中。这个过程可以直接推广到n元接触集的情况。因此,从概念上讲,E-R图可以被限制为只包含二进制连接集。然而,这种限制并不总是令人满意的。对于为表示联系集r而创建的实体集e,为其创建一个标识属性。识别属性和附加的接触集增加了设计的复杂性和对总存储空间的要求。n元素接触集可以更清楚地表示多个实体集参与一个接触集。可能没有办法将三进制连接上的约束转换成二进制连接上的约束。例如,从A、B到C的多对一约束不能用连接集RA、RB和RC上的度约束来表示。设置联系人属性的映射基数会影响联系人属性的设置。多对一或一对多联系人集的属性可归因于联系人的“多方”实体集,而不是联系人集。一对一联系集的属性可以归属于参

10、与实体集的任一方,而不是联系集。对于多对多联系集,属性设置的选择更加清晰。当属性由参与的实体集确定时,联系集的属性必须属于多对多联系集。E-R图E-R图,矩形表示实体集菱形表示关系集线用于连接实体集和属性,实体集和关系集椭圆椭圆表示属性双椭圆双椭圆表示多值属性虚线椭圆虚线椭圆表示派生属性下划线标识主要代码属性双线双线表示参与联系集的所有实体双矩形双矩形表示弱实体集,基数约束基数约束,关系集和实体集之间的基数约束,通常用带箭头的直线表示一个,不带箭头的直线表示多个。从客户到贷款:一对多,多对一,带有属性的关系集,带有复合、多值和派生属性的e-r图,带有组合、多值属性和派生属性的E-R图,多值属性,派生属性,角色,关系的实体集不必彼此不同。“领导者”和“工人”这两个头衔被称为“角色”。它们用于表示员工实体和关系集“已雇用”之间的关系。角色在E-R图中通过识别连接菱形和矩形的直线来完成。三个实体之间关系的e-r图,角色,具有三元关系的E-R图,表明一些多对一的接触类型可以在非二进制接触集中标记。假设一个员工在每个分支

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论