第7章 数据库设计和ER模型_第1页
第7章 数据库设计和ER模型_第2页
第7章 数据库设计和ER模型_第3页
第7章 数据库设计和ER模型_第4页
第7章 数据库设计和ER模型_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第七章 数据库设计和E-R 模型,第七章 数据库设计和E-R 模型,设计过程 实体-联系模型 约束 设计问题 扩展的E-R特性 银行数据库的设计 转换为关系模式 数据库设计 UML,7.1 设计过程,设计阶段: 概念设计阶段 逻辑设计阶段 物理设计阶段 设计问题: 冗余 不完整,实体-联系模型,实体-联系(Entity-Relationship)模型:E-R模型是一种语义模型。 在将现实世界事实的含义和相互关联映射到概念模式方面非常有用。 采用三个基本概念:实体集、联系集、属性 一个数据库可以被建模为: 实体的集合 实体间的联系,实体集,实体是现实世界可区别于所有其他对象的一个“事物”或“对象

2、”。 例子:张三,公司,事件,计划 实体集是相同类型即具有相同性质(或属性)的一个实体集合。 例子:所有人的集合,公司的集合,树的集合,假日的集合 实体集的外延是指属于实体集的实体的实际集合。 实体有属性,它是实体集中每个成员所拥有的描述性性质。 例子:人有姓名和地址 每个实体的每个属性都有一个值。,实体集instructor 和 student,instructor_ID instructor_name student-ID student_name,联系集,联系是指多个实体间的相互关联 例子: 44553 (Peltier) advisor 22222 (Einstein) student

3、 entity relationship set instructor entity 联系集是相同类型联系的集合 (44553,22222) advisor,联系集Advisor,联系集(续),联系集也可以有属性。 比如,实体集instructor 和 student 之间的联系集advisor,可以有属性date,以表示教师成为学生的导师的日期,联系集中实体的角色,实体在联系中扮演的功能称为实体的角色 角色是隐含的,通常不指定 当同样的实体集参与一个联系集多于一次,这类联系集称作是自环的。此时需用角色指明实体是如何参与联系实例的,联系集的度,参与联系集的实体集的数目称为联系集的度。 二元联系

4、集 涉及两个实体集 (度为2)。 数据库系统中大多数联系集都是二元的。 涉及两个实体集以上的联系是很少的。 students 在instructor的指导下完成projects 。 proj_guide 是instructor, student和project之间的三元联系。,属性,实体通过一组属性来表示,属性是实体集中每个成员所拥有的描述性性质 instructor = (ID, name, street, city, salary ) course= (course_id, title, credits) 域每个属性可取值的集合,也称值域 实体集的属性是将实体集映射到域的函数 属性类型:

5、简单和复合属性 单值和多值属性 举例: 多值属性: phone_numbers 派生属性和基属性 派生属性可以从别的属性派生出来。 派生属性值不存储,而是在需要时计算出来。,复合属性,映射基数约束,映射基数,或基数比率,表示一个实体通过一个联系集能关联的实体的个数。 在描述二元联系集时非常有用 对二元联系集来说,映射基数必然是以下情况之一: 一对一 一对多 多对一 多对多,映射基数,一对一,一对多,注意:A和B中的某些元素可能并不映射到另一集合中的任一元素,映射基数,多对一,多对多,注意:A和B中的某些元素可能并不映射到另一集合中的任一元素,参与约束,如果实体集E中的每个实体都参与到联系集R的

6、至少一个联系中,实体集E在联系集R中的参与称为全部(total)的。 如果实体集E中只有部分实体参与到R的联系中,实体集E在联系集R中的参与称为部分(partial)的。,码,一个实体集的超码是一个或多个可以用来唯一地标识实体的属性。 一个实体集的候选码是最小的超码 ID 是instructor的候选码 course_id是course的候选码 主码是被选择用来区分实体的候选码,主码只有一个,但候选码可以有多个。,联系集的码,如果联系集R没有属性与之相关联,那么属性集合 primary-key(E1)primary-key(E2)primary-key(En) 描述了集合R 中的一个联系。 如

7、果联系集R有属性a1,a2, , am 与之相关联,那么属性集合 primary-key(E1)primary-key(E2)primary-key(En) a1,a2, , am 描述了集合R中的一个联系。 相关的实体集的主码的集合形成了联系集的超码。 在以上的两种情况下,属性集合 primary-key(E1)primary-key(E2)primary-key(En) 总是构成联系集的一个超码。,联系集的码,(s_id, i_id) 是advisor的超码。 表示一对实体集在一个特定的联系集中只能有一个联系。 假如我们想知道学生和导师之间的多次会议日期,我们不能为每个会议建立联系。 可以

8、使用多值属性 决定候选码时必须考虑联系集的映射基数。 在有多个候选码的情况下,选择主码是要考虑联系集的语义。,7.4 冗余属性,假设有实体集 instructor, 有dept_name属性 department 及联系集 inst_dept,联系instructor和department instructor中的 dept_name 属性是冗余的,因为有一个明确的关系inst_dept来联系 instructors和departments 属性重复了联系中的信息,应该从instructor中除去 去除冗余属性后的,大学模式见P156,7.5 E-R 图,矩形代表实体集。 属性在实体矩阵中列出

9、。 构成主码的属性以下划线标明。 菱形代表联系集。,参与联系集中的实体集,全部参与(用两条线标识):实体集中的每个实体都参与到联系集的至少一个联系中 例: section 全部参与sec_course 每个section 都有一个course 部分参与:某些实体不参与到联系集中的任何一个联系 例:部分instructor 参与到advisor 中,具有属性的联系集,基数约束,我们在联系集和实体集之间画一个箭头()代表“一”或者一条线段()代表“多”来表示基数约束。,一对一联系,instructor 与student之间的一对一联系 一个instructor通过advisor至多与一个stude

10、nt相联系 一个student通过advisor至多与一个instructor相联系,一对多联系,instructor 与student之间的一对多联系 一个instructor通过advisor与多个student(包括0个)相联系 一个student通过advisor至多与一个instructor相联系,多对一联系,instructor 与student之间的多对一联系 一个instructor通过advisor至多与一个student相联系 一个student 通过advisor与多个instructor(包括0个)相联系,多对多联系,一个instructor通过advisor与多个st

11、udent(包括0个)相联系 一个student 通过advisor与多个instructor(包括0个)相联系,基数限制的另一种方法,基数限制也可以用参与约束来表示,具有复合,多值,派生属性的实体,角色,一个联系的实体集不需要唯一 一个实体集中的元素每次出现都在关系中代表一个“角色” “course_id” 和 “prereq_id” 被称为角色.,有三元联系的E-R 图,三元关系上的基数约束,我们只允许在一个三元(或三元以上)联系集外有一个箭头来表示基数约束。 例,从proj_guide到instructor的箭头表示每个学生在每个项目上至多有一个导师来指导 如果有多于一个的箭头,那就会有

12、两种解释。 例,R 是 A, B 和C 之间的三元联系集,并且有两个箭头指向B和C,这可以表示为 每个在A中的实体都与来自B和C的至多一个实体相关联 每个来自(A, B) 的实体对都与来自C的至多一个实体相关联,而每个来自(A, C) 的实体对都与来自B的至多一个实体相关联 为了避免混淆,在联系集外我们只允许有一个箭头,弱实体集,一个没有足够的属性形成主码的实体集叫做弱实体集。 弱实体集必须与标识或属主实体集(owner entity set)关联才有意义。 弱实体集存在依赖于标识实体集 将弱实体集与其标识实体集相连的联系称为标识性联系。 标识联系集以双边框的菱形表示 弱实体集通过一个全部参与的,多对一的联系集与标识实体集联系。 弱实体集的分辨符是使得我们区分弱实体集中实体的属性集合。也称为该弱实体集的部分码。 弱实体集的主码由标识实体集的主码和该弱实体集的分辨符共同组成。,弱实体集(续),弱实体集的分辨符用虚下划线表示。 标识联系集以双边框的菱形表示。 section的主码 (course_id, sec_id, semester, year),弱实体集(续),注意:强实体集的主码并不存储于弱实体集。 如果course_id被隐含的

温馨提示

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

评论

0/150

提交评论