资源描述
,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,Copyright by ECNU CS DBLAB All rights reserved,.,数据库系统概念,*,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模型,6,第六章 数据库设计和E-R模型,返回,7,6.3,考虑一个用于记录学生各种选课考试成绩的数据库。,a.构造一个将考试建模成实体的E-R 图,为以上的数据库设计一个三元联系。,b.构造一个只用二元联系来连接students 和course-offerings 的可选E-R 图。要求在特定学生和课程对之间只有一个联系,而且可以表示出学生在不同选修的课程的成绩。,第六章 数据库设计和E-R模型,8,第六章 数据库设计和E-R模型,9,第六章 数据库设计和E-R模型,返回,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模型,如果我们想要把实体的属性作为数据库的一部分来存储,那么附加的实体集也是有用的。对course实体集,我们让它包含3个属性。如果仅包含主码(c-number),并且每个course都只有一个section,那么用一个exam的一个属性(c-name)去代替course(和section)实体是合适的。把course的多个属性当作exam的一个属性不合适的理由就是很难维护关于course的数据,尤其当一门course没有或者有多个exam时。同样的情况也发生在room实体集上。,12,第六章 数据库设计和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 图,从而可对书、音乐磁带,和唱片的任一组合购物进行建模。,19,第六章 数据库设计和E-R模型,20,第六章 数据库设计和E-R模型,21,第六章 数据库设计和E-R模型,实体集,主码,author,name,address,publisher,name,book,ISBN,shopping-basket,basketID,customer,email,warehouse,code,22,第六章 数据库设计和E-R模型,23,参考解答:6.21.c,用ISA扩展E-R图如下,其余部分略,第六章 数据库设计和E-R模型,
展开阅读全文