数据库设计和E-R模型.ppt_第1页
数据库设计和E-R模型.ppt_第2页
数据库设计和E-R模型.ppt_第3页
数据库设计和E-R模型.ppt_第4页
数据库设计和E-R模型.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

,Copyright by ECNU CS DBLAB All rights reserved.,第六章 数据库设计和E-R模型,数据库系统概念 习题分析与解答,习题目录,习题6.1 (参阅课本P167) 习题6.2 (参阅课本P167) 习题6.3 (参阅课本P168) 习题6.6 (参阅课本P168) 习题6.12 (参阅课本P168) 习题6.13 (参阅课本P169) 习题6.15 (参阅课本P169) 习题6.21 (参阅课本P169),2,3,第六章 数据库设计和E-R模型,6.1 为车辆保险公司设计一个E - R 图。每个客户有一到多辆车。每辆车可能发生0次或任意多次事故的记录。,返回,4,6.2为一个大学的注册办公室维护关于以下实体的数据 (a)课程,包括编号、名称、学分、课程提纲和选修条件; (b)课程提供,包括课程编号、年、学期、节数、教师、时间和教室; (c)学生,包括学号、姓名和计划(p r o g r a m ); (d)教师,包括标识号、姓名、系和职称。此外,学生课程的登记和学生所选的每门课的成绩评定都要适当地建模。,第六章 数据库设计和E-R模型,5,参考解答: 为注册办公室构造一个E - R 图,并说明你所做的映射约束的假设。 这里有以下几个实体集:student,instructor,course和course-offerings,其中course-offerings是弱实体集,依赖于course。所做的假设如下: 一个班级只能在一个特定的地方。该E-R图不满足在不同时间地方也不同的班级。 两个班级有可能会在时间、地点上发生冲突。 一个班级一个班主任(指导老师)。,第六章 数据库设计和E-R模型,第六章 数据库设计和E-R模型,返回,7,6.3考虑一个用于记录学生各种选课考试成绩的数据库。 a. 构造一个将考试建模成实体的E - R 图,为以上的数据库设计一个三元联系。 b. 构造一个只用二元联系来连接students 和course-offerings 的可选E - R 图。要求在特定学生和课程对之间只有一个联系,而且可以表示出学生在不同选修的课程的成绩。,第六章 数据库设计和E-R模型,8,第六章 数据库设计和E-R模型,6.3.a,9,第六章 数据库设计和E-R模型,6.3.b,返回,10,第二章 关系模型,6.6考虑一个为期末考试安排教师的大学数据库。这个数据库可被建模为具有属性course -name 、section-number、room-number和time的单个实体exa m 。也可以定义一个或多个附加实体集,同时用联系集来代替exam 实体集的一些属性,例如: course 有属性name、department、c-number 。 section 有属性s-number和enrollment,并作为依赖course 上的一个弱实体集。 room有属性r-number、capacity 和building 。 a. 用E - R 图来说明列出的三个附加实体集的应用。 b. 解释哪些应用特征会对是否加入一些附加实体集的决定产生影响。,11,第六章 数据库设计和E-R模型,6.6.a,如果我们想要把实体的属性作为数据库的一部分来存储,那么附加的实体集也是有用的。对course实体集,我们让它包含3个属性。如果仅包含主码(c-number),并且每个course都只有一个section,那么用一个exam的一个属性(c-name)去代替course(和section)实体是合适的。把course的多个属性当作exam的一个属性不合适的理由就是很难维护关于course的数据,尤其当一门course没有或者有多个exam时。同样的情况也发生在room实体集上。,12,6.6.b,第六章 数据库设计和E-R模型,返回,6.12 两个相互独立的银行将要合并,假设两个银行使用相同的E - R 数据库模式,即图6-25中的数据库模式。(当然,这个假设很不实际,我们将在22.8节讨论更实际的情况。)如果合并后的银行只有一个数据库,那么可能存在如下问题: 合并前的两个银行可能有某些分支机构名称相同。 可能有的客户同时是两个银行的客户。 某些贷款号和账户号可能在两个银行中都使用(却代表不同的贷款和账户)。 对这些潜在的问题,说明为什么确实可能会存在困难。提出问题的一种解决办法,并说明采用这样的办法需要做的修改以及这些修改对模式和数据的影响。,13,第六章 数据库设计和E-R模型,14,参考解答: 在这个例子中,我们假设两家银行共享客户的标识码,比如社会保障号一样。我们在下一个练习中会得到通用的解决方式。 提到的每个问题都存在潜在的问题: A. branch-name是branch的主码,这样,在合并时,如发生重复的名字,只能保留一条,丢失了另外的信息。 B.遇到客户名发生冲突(有重复),则customer中,重复的记录将丢失。而顾客与cust-banker,borrower,depositor相关联,上述重复信息的丢失,会影响这三者,须及时补救更新。 C.而loan与accounts有相同的帐号,也会引发类似于(A)中的情况。 要解决上述由于合并而引发的问题,模式不需要更改,对customer实体,删去重复social-security的原则/元组;对branch,在合并时,在银行名前添加旧银行的标识。employee/payment立即可以合并,而loan与account的number添加一位作为区分,比如611,用1611表示bank1,而2611表示bank2。,第六章 数据库设计和E-R模型,返回,6.13假设一个银行在美国,而另一个在加拿大,重新考虑上题所提出的问题。同样地,两个银行均采用图2 - 2 2 的模式,只是加拿大的银行用由加拿大政府赋予的社会保险号,而美国银行使用社会保障号。除了在习题2 . 2 4 中指出的问题外,在这种多个国家的情况下还会有什么样的问题?你将怎样解决?请注意既要考虑模式又要考虑数据实际的值。,15,第六章 数据库设计和E-R模型,16,参考解答: 这是两个银行连模式都不同的情况,因此合并也变得更加复杂。美国的客户标识码属性是社会保障号,而加拿大的是社会保险号。因此合并后的模式不能使用任何一种模式。我们介绍一个新的属性person-id,在合并后的模式中用这个属性来标识每个客户。除了这个,对模式方面不需要有其他的改变了。获取person-id的值可以通过多种途径,一种方法就是在原来的社会保障号和社会保险号之前架上国家标识,比如U表示美国,C表示加拿大,这样来的到新的person-id的值。另一种方法就是增加1位,这一位来表示后面的数据是社会保障号还是社会保险号。 一旦完成这项工作,后面的事情与前一道习题就比较类似了。如果一个特定的联系集,比如borrower,仅仅包含美国的客户,在合并后的数据库中就通过把实体集customer特殊化成us-customer和canada-customer,在合并后的borrower中仅有us-customer的部分。如果需要也可以用类似的方法来特殊化employee。,第六章 数据库设计和E-R模型,返回,6.15为医院设计一个E-R 图。医院有很多病人和很多医生。同每个病人相关的是一系列检查和测试的记录。,17,第六章 数据库设计和E-R模型,6.15,18,第六章 数据库设计和E-R模型,返回,6.21考虑图6-31中的E - R 图,它为一家网上书店建模。 a .列出实体集和它们的主码。 b .假设书店增加了音乐磁带和唱片。相同的音乐会出现在 磁带或唱片中,但具有不同的价格。扩展E - R 图来为 这个附加特点建模,忽略对购物的影响。 c. 现在用一般化来扩展E - R 图,从而可对书、

温馨提示

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

评论

0/150

提交评论