当前位置:首页 > 山东大学数据库习题及答案
山东大学 数据库系统 课程试卷
A卷参考答案
一、简答(每小题5分,共25分)
1、 如何理解空值(NULL),空值在参与运算时有哪些特点?
答:空值null表示“不知道”或者“不存在”的含义。不是指“0”,也不是“false”,也不是’’。Null参与的关系运算和算术运算结果均为null。 评分细则:Null的含义3分,Null参与的运算特点2分 2、 简述事务的概念及其相关特性。
答:事物是访问并可能更新各种数据项的一个程序执行单元。事物具有ACID四种特性。 A指原子性:事物的所有操作在数据库中要么全部正确反映出来,要么全部不反映。 C指一致性:事物的隔离执行保持数据库的一致性。
I指隔离性:尽管多个事物可以并发执行,但系统必须保证每一个事物都感觉不到系统中有其他事物在并发地执行。
D指持久性:一个事物成功完成后,它对数据库的改变必须是永久的。 评分细则:事物概念2分,事物的性质3分。 3、 关系中的元组有先后顺序吗?为什么?
答:没有。关系是元组的集合,而集合中的元素是没有顺序的,因此关系中的元组也就没有先后顺序。
评分细则:第一问回答“有”,零分;第一问回答“没有”,2分,说明原因3分 4、 设关系模式R(A,B,C)上有一个多值依赖A??B。如果已知R的当前关系中存
在着三个元组(a,b1,c1)、(a,b2,c2)、(a,b3,c3),那么这个关系中至少还应该存在哪些元组?
答:(a b1 c2),(a b2 c1),(a b1 c3),(a b3 c1),(a b2 c3),(a b3 c2) 评分细则:每一个元组1分。 5、 简述时间戳排序协议。
答:时间戳:对于系统中的每一个事务Ti,我们把一个唯一的固定的时间戳和它联系起来,记为TS(Ti)。每个数据项Q需要与两个时间戳相关联:W-timestamp(Q)表示成功执行write(Q)的所有失去的最大时间戳;R-timestamp(Q)表示成功执行read(Q)的所有事务的最大的时间戳。
1
假设事务Ti发出read(Q)操作:
a. 若TS(Ti) Ti回滚。 b. 若TS(Ti)>= W-timestamp(Q),则执行read操作,R-timestamp(Q)被设为R-timestamp(Q) 与TS(Ti)两者中的最大值。 假设事务Ti发出write(Q)操作: a. 若TS(Ti)< R-timestamp(Q),则Ti产生的Q值是先前所需要的值,且系统一经假设 该值不会被产生。因此,write操作被拒绝,Ti回滚。 b. 若TS(Ti) Ti回滚。 c. 其他情况发生时,执行write操作,将W-timestamp(Q)设为TS(Ti)。 评分细则:读规则2分,写规则3分 二、工厂需要建立一个管理数据库存储下列信息: 1、 一个工厂内有多个车间,每个车间有车间号、车间主任姓名、车间地址和电话 2、 一个车间内有多个工人,每个工人有职工号、姓名、年龄、性别和工种 3、 一个车间生产多种产品,产品有产品号和价格 4、 一个车间生产多种零件,一个零件也可以被多个车间制造。零件有零件号、重量和 价格 5、 一个产品由多种零件组成,一种零件也可以装配出多种产品。 6、 产品与零件均存入仓库中 7、 一个工厂有多个仓库,仓库有仓库号、仓库主任姓名、仓库地址和电话 要求:1.画出该系统的E-R图 2.给出相应的关系模式(共10分) 答 : 2 关系模式 工厂(厂名、厂长姓名) 车间(车间号、车间主任姓名、车间地址、电话、厂名) 工人(职工号、姓名、年龄、性别、工种、车间号) 仓库(仓库号、仓库主任姓名、仓库地址、电话、厂名) 产品(产品号、价格、车间号、仓库号) 零件(零件号、重量、价格、仓库号) 制造(车间号、零件号) 评分细则:画E-R图5分,需要表明联系的基数;关系模式5分,基于实体和基于联系的关系模式都需要。 二、有关系模式R(A, B, C, D),其上的函数依赖集F={A?C,C?A,B?AC,D?AC}, 要求:(15分) 1、 计算(AD)+ 2、 求F的正则覆盖Fc 3、 求R的码 4、 将R分解,使其满足BCNF且具有无损连接性 5、 将R分解,使其满足3NF并具有无损连接性与保持依赖性 答:(AD)+=ACD Fc={A?C,C?A,B?A,D?A} (BD)+=ABCD,所以BD时候选码 3 分解为BCNF:?={AC,AB,BD} 分解为3NF:?={AC,BA,DA,BD} 评分细则:每一小题3分。 第一小题:必须写明全部属性才能得分 第二小题:正则覆盖不唯一,写明一个即可 第三小题:要求写候选码,写超码不得分 第四小题:如果学生的分解与答案不完全一致,可以适当给分 第五小题:如果学生的分解与答案不完全一致,可以适当给分 四、有关系S(SNO, SNAME, DEPT,SEX,DORM, MONITOR), C(CNO, CNAME, CREDIT, TEACHER), SC(SNO, CNO, SCORE)。关系S、C和SC分别表示学生信息、课程信息和学生选课情况。请按要求表达下列查询与修改。(42分) 其属性分别表示如下: SNO—学生编号,SNAME—学生姓名,DEPT—学生所在系,SEX—学生性别,DORM—学生宿舍,MONITOR—该学生的班长的学号,CNO—课程编号,CNAME—课程名称,SCORE—成绩,TEACHER—任课教师姓名,CREDIT—课程学分。 1、查询计算机系全部学生的学号、姓名、性别。(SQL+关系代数+元组关系演算) Select sno, sname, sex From s Where dept=’计算机’ ? sno, sname, sex(?dept=’计算机’(S)) {t|?u∈S t[sno]=u[sno] ∧t[sname]=u[sname] ∧t[sex]=u[sex] ∧u[dept]=’计算机’} 评分细则:每小题3分 2、查询张明同学没有选修的课程的课程号和课程名称。(SQL+关系代数+元组关系演算) select cno,cname from c where cno not in (select cno from sc where sno in (select sno from s where sname=’张明’)) ?cno, cname(?cno(C) - ?cno(?sname=’张明’(S∞SC))) ∞C 4
共分享92篇相关文档