第02章:E-R模型_第1页
第02章:E-R模型_第2页
第02章:E-R模型_第3页
第02章:E-R模型_第4页
第02章:E-R模型_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/7/24,1,第2章实体-联系人模型,讲座内容:实体-联系人模型(E-R模型)基于对现实世界的理解。世界由一组名为实体的基本对象和这些对象之间的连接组成。E-R模型是语义模型主要尝试表达数据含义的语义模型。基本概念弱实体集设计问题扩展E-R特性映射约束设计数据库中的E-R模式代码将E-R模式转换为表实体联系人。牙齿章节概括了2020/7/24,2,2.1基本概念。实体集实体实际上是可以与其他对象区分的“事件”或“对象”,每个实例都有一组属性(也称为属性),某些属性的值唯一标识实例。实体集是具有相同类型和属性的实体的集合。例如:清华大学的所有学生集都是一个实体集student中选择所需

2、的构件。实体集course表示清华大学开设的所有课程的集合。2020/7/24,3,2.1基本概念,对象集的属性对象集可能相交。例如,学生集student教师集teacher人员集person对象集显示为属性集,属性类型的分解是将对象集中的对象映射到属性域(值范围)的规则,可以根据配置、值和派生关系简单地将对象集中的属性分为以下类别:简单属性复合属性单值属性多值属性NULL属性衍生属性属性用于说明对象集。特别是对象集中每个对象的这些属性的具体值。2020/7/24,5,2.1基本概念、简单属性和复合属性简单属性不再是可分割为其他属性的属性。复合属性是可以分为其他属性的属性。复合属性聚合相关属性

3、,使模型更清楚。复合属性可以是分层结构(例如,2020/7/24,6,2.1基本概念,单值和多值属性单值属性意味着特定实体只能有单值)。对于特定实体,如果属性可以对应于一组值,则这些属性称为多值属性。例如,实体集teacher的属性:teacher_number绝对是单值属性。Teacher_name可以是多个值。2020/7/24,7,2.1基本概念null属性对象在属性没有值时使用null值,但NULL值的含义并不表示属性没有值。还可以指示属性值未知。没有值。存在值,但没有有关该值的信息。不知道牙齿属性到底有没有价值。例如,teacher_name的middle_initial值为null

4、,表示名称不包含中间名。或者中间名存在,但当前不知道其值。或者根本不知道中间名是否真的存在。2020/7/24,8,2.1基本概念、派生属性等属性的值可以从其他相关属性或实体派生而来。例如,假设实体集teacher具有两个茄子属性start _ working _ dateemployment _ period。employment_period的值是当前日期的Start _ working Start _ working _ date称为主要属性或存储属性,employment _ period是衍生属性。2020/7/24,9,2.1基本概念,联系人集连接是多个实体之间的相互关联。联系人集

5、是相似连接的集合。严格地说,接触集是n(n2)图元集的数学关系,这些图元集不需要徐璐不同。公式定义如下:如果E1,E2,EN牙齿N个图元集,联系人集R是(E1,E2,En) | E1E1,E2E2,ENEN的子集,(E1,E2,),2020/7/220即对象集E1、E2、En参与联系人集R;实体在接触中的角色称为实体的角色。联系人集还可以包含说明属性。例如,对于selecting(student和course之间的联系人集),您可以将select_date属性与相应的联系人集相关联,以指示学生选择类的日期。Selecting属性course_score表示一名学生参加课程的成绩。,2020/7

6、/24,11,2.1基本概念,元和也与一个接触集相关的徐璐其他对象集的数量称为接触集的“元”。例如,数据库中的大多数接触集都是二进制接触集,包含两个徐璐的其他对象集。联系人集包含两个或多个对象集。例如,合并联系人集selecting和student_department以构建包含三个徐璐其他对象集student、course和department的三元联系人集SCD。有一元联络店吗?与元的概念不同,联系人集中一个连接中涉及的所有实体的数量称为联系人集中的“度”。2020/7/24,12,2.2设计问题,概述使用E-R模型设计数据库的概念结构时,绘制矩形框和钻石框是否如此简单?需要注意的问题是什

7、么?对象应设计为实体集或实体集的属性吗?对象应该设计为实体集还是联系人集?可以采用的原则是什么?联系人应该设计成二元联系方式还是多元联系方式?2020/7/24,13,2.2设计问题,实体集或属性实体集teacher: teacher_number,teacher_name和teacher_age新要求明确呼叫实体集telephone具有telephone_number和location等属性的一组图元teacher和telephone定义如下:实体集teacher具有teacher_number属性;实体集telephone具有telephone_number和location具有属性。联系

8、人集teacher_telephone表示教师和电话之间的连接。2020/7/24,14,2.2设计问题,两个设计之间的差异第一种情况通常暗示每个教师只能连接一个电话号码。这不完全正确。将telephone_number作为多值属性处理意味着教师可以连接到多个电话号码。第二种情况表示每个教师可以有多个电话号码(包括0)。因此,第二个定义比第一个定义更为普遍。即使每个老师都与电话号码正确连接,当多个老师共享电话时,第二个定义也更准确。2020/7/24,15,2.2设计问题,为什么第二个定义很少使用?第一个定义:重复数据,浪费存储空间;容易引起数据不一致。第二个定义:更接近现实世界。但是不太适合

9、人的惰性思维,查询不方便,需要通过链接或指针。对象集和属性不是绝对的,但什么可以用作属性?可用作实体集的是什么?很难回答。主要取决于建模的现实世界的实际情况和讨论的属性的相关含义。2020/7/24,16,2.2设计问题(例如考虑实体集teacher的电话属性)可以在概念级别用作多值属性。但是在逻辑层中,多个茄子可能对应于其他原子属性。teacher_name telephone_number0(单位电话1) telephone_number1(单位电话2)Telephone _ number 2 Telephone _ number 2使用课程作为学生和教师之间的联系集,简单地有说明属性co

10、urse_number和course_name牙齿。2020/7/24,18,2.2设计问题,多名学生选择同一课程作为实体房子或联系方式是不容易表达的。因为必须为选择相同学科课程的每个学生单独定义与教员的联系。因此,在这些课程的每个联系人中,必须重复说明属性course_number和course_name的值。在决定使用实体集还是联系人集时,只要适用,茄子原则就是最好在说明实体之间发生的行为时使用联系人集。,2020/7/24,19,2.2设计问题,包含二进制联系人集和N元联系人集三个实体集student、department和course的二进制联系人集student_department

11、和selecting,2020/,2020/7/22否则,为e生成特殊标识属性。这是因为每个实体集必须至少包含一个属性集,以区分实体集的各个成员。设置三个茄子联系人集:RA:联系人对象集e和A RB:联系人对象集e和B RC:联系人对象集e和C,2020/7/24,22,2.2设计问题,将n元联系人集转换为二元联系人集联系人集r的每个联系人(ai,bi),然后为三个新联系人设置插入到RA(ei,ai)插入到RB(ei,bi)插入到RC(ei,ci)可以将这些过程扩展到N元联系人集,因此E-R模型只能包含二进制联系人集。2020/7/24,23,2.2设计问题,都使用二元联系套满意吗?您可能需要

12、为创建的对象集创建id属性以表示联系人集。牙齿识别属性和所需的附加联系人集增加了设计的复杂性和对存储空间的需求。n元联系人集可以更明确地表示多组实体与一组联系人相关,在使用相应的二进制联系人集的设计中,很难实施这些参与约束,破坏了人们对真实世界的认识。3个实体集之间的三元连接集和3个实体集2 2之间的3个二元连接集是否相同?2020/7/24,24,2.3映射约束,映射基数映射基数或基数比率,表示对象集中的一个对象可以通过一个连接集与另一个对象集相关联的实体数。映射基数在描述二进制联系人集时很有用。牙齿部分仅说明二进制联系人集。映射和函数的关系?函数是特殊的映射!对于实体集A和实体集B之间的二

13、进制连接集R,映射标准可以是2020/7/24,25,2.3映射约束、映射标准、2020/7/24,26映射标准的正确连接集映射标准之一,相反,如果学校规定一门课程可以由多位老师一起说明,则牙齿联系簿可以是多对多,2.3映射约束、2020/7/24,27、映射基数和联系人集中的属性位置映射基数影响联系人集中的属性位置。一对一或一对多(多对一)联系人集中的属性可以放置在参与联系人集的对象集中,而不是联系人集。例如,可以一对一地放置一个,将多对一接触集selecting的属性course_score放置在多实体集student上。2.3映射约束、2020/7/24,28、映射基数和联系人集的属性位

14、置、多对多联系人集属性只能放置在联系人集中,不能放置在参与联系人集的对象集中。例如,多对多联系人集selecting的属性course_score由参与联系人集引发,另一个具有2.3映射约束、2020/7/24,29,2.3映射约束、相关性的重要约束是相关性。如果图元X的存在取决于图元Y的存在,则X的存在取决于Y。如果从操作中删除实体Y,则实体X也将被删除。实体Y称为控制实体,实体X称为从属实体。例如,图元集teacher和图元集dependent记录与教师相关联的家族信息。这里仅限于夫妻和子女的关系,只有一名家族在该大学工作。Dependent的每个实例都必须具有相应的teacher实例。删

15、除Teacher实例时,还必须删除其所有dependent实例!2020/7/24,30,2.3映射约束,从属和完全参与对象集E的每个对象(仅限部分实体)参与联系人集R的一个或多个连接时,对象集E完全参与(部分参与)联系人集R;所有参与都与存在依赖性密切相关。例如,图元集teacher到图元集dependent的接触集teacher_dependent是一对多。每个dependent对象必须通过teacher_dependent联系人集的连接与teacher实体相关联,因此实体集dependent将参与teacher_dependent联系人集。Dependent实例确实存在,具体取决于teacher实例。2020/7/24,31,2.4码,代码的作用是区分实体集中的每个实体或确定联系人集中的每个连接。主观上各个实体或连接徐璐不同(人可以看到)。但是从数据库的角度来看,它们的区别必须用属性来表示。物件集的程式码超级程式码是一或多个属性的集合,可让您唯一识别物件集内的每个物件,例如物件集student的属性student_number。2020/7/24,32,2.4码,超级码和候选码超级码可能包含不重要的属性。如果k是超级代码,则k的所有超集也是超级代码。通常我们只对这种超级代码感兴趣。它们真正的子集不能是超级代码。这种

温馨提示

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

评论

0/150

提交评论