杭州电子科技大学学生考试卷(A)卷参考答案考试课程数据库原理考试日期2012年1月4日成绩课程号教师号任课教师姓名张红娟考生姓名学号(8位)年级专业说明:所有题目均直接答在试卷上。一、单项选择题(每小题1分,共20分)1.在采用客户机/服务器体系结构的数据库应用系统中,应该将用户应用程序安装在(a)A.客户机端B.服务器端C.终端D.系统端2.SQL语言中,删除一个表的命令是(b)。ADELETEBDROPCCLEARDREMOVE3.关系代数表达式的优化策略中,首先要做的是(b)。A.对文件进行预处理B.尽早执行选择运算C.执行笛卡儿积运算D.投影运算4.DB、DBMS和DBS三者间的关系是(b)。A.DB包括DBMS和DBSB.DBS包括DB和DBMSC.DBMS包括DBS和DBD.DBS与DB和DBMS无关5.对关系R进行投影运算后,得到关系S,则(c)。A.关系R的元组数等于关系S的元组数B.关系R的元组数小于关系S的元组数C.关系R的元组数大于或等于关系S的元组数D.关系R的元组数大于关系S的元组数6.数据库系统可能发生的故障有(d)A.事物内部故障B.系统故障C介质故障D以上都是7.将E-R模型转化为关系模型时,会产生的冲突有(D)A.命名冲突B.属性冲突C.结构冲突D.以上都是8.五种基本关系代数运算是(a)A.∪,-,×,π和σB.∪,-,∞,π和σC.∪,∩,×,π和σD.∪,∩,∞,π和σ9.在数据操作语言(DML)的基本功能中,不包括的是(b)A.插入新数据B.描述数据库结构C.对数据库中数据排序D.删除数据库中数据10.在SQL中使用FOREIGNKEY时,与之配合的语句是(d)A.EXISTSB.EXCEPTC.TABLED.REFERENCES11.SQL中的视图提高了数据库系统的(d)A.完整性B.并发控制C.隔离性D.安全性12.记载数据库系统运行过程中所有更新操作的文件称为(c)。A.更新文件B.后备文件C.日志文件D.数据文件13.如果事务T获得了数据项Q上的排它锁,则T对Q(c)A.只能读不能写B.只能写不能读C.既可读又可写D.不能读不能写14.在SQL中,SELECT语句的SELECTDISTINCT表示查询结果中(c)A.属性名都不相同B.去掉了重复的列C.行都不相同D.属性值都不相同15.已知关系R如图1所示,可以作为R主码的属性组是(b)ABCD123413452456143413473456图1A.ABCB.ABDC.ACDD.BCD16.关系数据库中的哪一种基本数据操作不能同时操作两个关系(b)A.交B.选择C.连接D.并17.数据模型的三个组成部分是数据结构、数据操作和(c)。A.数据安全性控制B.数据一致性规则C.数据完整性约束D.数据处理逻辑18.要保证数据库的数据独立性,需要修改的是(c)。A.三级模式之间的两种映射B.模式与内模式C.模式与外模式D.三层模式19.事务的ACID性质,是指事务具有原子性、一致性和(c)A.隔离性、透明性B.独立性、透明性C.隔离性、持久性D.共享性、持久性20.个别用户使用的数据视图的描述称为(a)A.外模式B.概念模式C.内模式D.存储模式第1页共4页二、填空题(每空2分,共20分)1.数据库的一大特点是数据共享,即用户可以并发访问数据库对象,但并发操作可能会引起_丢失更新____、不可重复读、__读脏数据____这三类数据不一致性的问题,于是就要进行并发控制。并发控制的主要技术是__封锁__。2.在数据库设计中,物理设计阶段包括确定_物理存储结构_____和___存取方法和路径___。3.数据管理技术的发展经历了_人工管理_____阶段、文件系统阶段和__数据库系统__阶段。4.SQL语言中,定义事务的语句主要有BEGINTRANSACTION、COMMIT和_ROLLBACK_。三、判断改错题(判断正误,错误的请改正。每小题2分,共10分)1.可以在基本表上定义视图,但不能在视图上定义视图。“但不能”改为“也可以”。(×)2.DBMS包括DB和DBS。改为:DBS包括DB和DBMS(×)3.对关系R进行投影运算后,得到关系S,则关系R的元组数大于或等于关系S的元组数。(√)4.如果一个关系模式R属于BCNF,则R一定属于3NF。(√)5.在SQL的查询语句中,对应关系代数中“选择”运算的语句是SELECT。(×)“SELECT”改为“WHERE”或“选择”改为“投影“。三、英译中并简明解释(每小题3分,共15分)1.DBS/DBMS/DBA数据库系统数据库管理系统数据库管理员2.CANDIDATEKEY候选码3.TRANSACTION事务5.DDL/DML/DCL数据定义语言数据操纵语言数据控制语言四、问答题(共20分)1.Dept表及已有的一些行数据如下所示(department为主码),请问下列插入语句哪些正确的,哪些是错误的,错在哪里?(3分)DEPARTMENTNAMELOCATIONBUDGET20SalesMiami170000010MarketingNewyork2000000A.insertintodeptvalues(10,‘research',‘newyork',1500000)B.insertintodeptvalues(null,‘accounting',‘Atlanta',1200000)C.insertintodeptvalues(15,‘computing',‘Miami',1500000)2.假定初始值:X=10,Y=20。现有三个事务,分别包含以下操作(3分):T1:X=X+YT2:Y=X-YT3:X=Y-X可串行化调度的执行结果有几种,分别是多少?3.对于教学数据库的三个基本表(6分)Student(Sno,Sname,Sage)SC(Sno,Cno,Grade)Course(Cno,Cname)试用关系代数表达式和SQL语句表示:检索WANG同学不学的课程号。SELECTCnoFROMCourseWHERECnoNOTIN(SELECTCnoFROMSCWHERESno=(SELECTSnoFROMStudentWHERESname=’WANG’));ΠCno(Coures)–Πcno(σSname=’WANG’(Student)ΠCno(Sc))第2页共4页4.如下图所示的关系,请回答以下问题(8分):课程名教师名教师办公室C1马千里实验楼415C2于得水实验楼415C3李华实验楼115C4于得水实验楼415调查额的①写出函数依赖②它为第几范式?为什么?③是否存在删除异常?若存在,说明是在什么情况下发生的?④将它分解为高一级范式。它是2NF。因为R的候选码是课程名,而课程名不依赖于教师名,教师名也不依赖于课程名,教师名→教师地址,所以存在非主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。存在。当删除某门课程时会删除不该删除的教师的有关信息。关系R1:课程号教师名C1马千里C2于军C3杨敏C4于军关系R2:教师名教师地址马千里D1于军D1杨敏D23.设有关系模式R(A,B,C),F是R上成立的函数依赖集,F={AC→B,AB→C,B→C},试问R在函数依赖范围内最高能达到第几范式,并简要说明理由。(6分)R∈1NF。候选码为AC和AB。存在非主属性C对码AB的部分函数依赖,所以R∈1NF四、问答题(共20分)1.数据库的完整性与安全性有什么不同?(5分)数据的完整性和安全性是两个不同的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(GarbageInGarbageOut)所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。2.什么是数据冗余?在关系数据库中能完全消除数据冗余吗?(5分)数据库中数据重复存储的现象称为数据冗余。在关系数据库中不能完全消除数据冗余。因为要实现关系数据库中表与表之间的联系,必须通过公共属性来完成,这些公共属性可能是一个表的主键,也可能是另一个表的外键,有相应的参照完整性规则来保证表之间的联系。所以关系数据库中存在数据冗余,但能控制数据的冗余度。五、数据库设计题(10)某大学教学数据库中有三个实体集。一是“课程”实体集,属性有课程号、课程名称;二是“教师”实体集,属性有教师工号、姓名、职称;三是“学生”实体集,属性有学号、姓名、性别、年龄。设教师与课程之间有“主讲”联系,每位教师可主讲若干门课程,但每门课程只有一位主讲教师,教师主讲课程将选用某本教材;教师与学生之间有“指导”联系,每位教师可指导若干学生,但每个学生只有一位指导教师;学生与课程之间有“选课”联系,每个学生可选修若干课程,每门课程可由若干学生选修,学生选修课程有个成绩。(1)试画出E-R图;(2)将E-R图转换成关系模型,并说明主码和外部码。1)E-R图如下(2)转换成的关系模型具有4个关系模式:1)E-R图如下(2)转换成的关系模型具有4个关系模式:教师(工号,姓名,职称)学生(学号,姓名,性别,年龄,教师工号)课程(课程号,课程名称,教师工号)选课(学号,课程号,成绩)N1成绩主讲课程课程号课程名称N工号教师姓名指导教材学生学号姓名年龄电话1选课MN职称性别第3页共4页六、编程(共20分)Student(Sno,Sname,Ssex,Sage,Clno,Sdept)学号姓名性别年龄班级号系Course(Cno,Cname,Cpno,Ccredit)课程号课程名先修课号学分SC(Cno,Sno,Grade)课程号学号成绩(一)用SQL语句完成下列操作:(12分)1.查询年龄介于20与23岁之间的学生姓名及年龄;1.查询数学系姓王的学生姓名及年龄,并按学生年龄降序排序;selectsnamefromstudentwheresdept=‘数学’andsnamelike‘王%’orderbysage;2.查询每个班级每门课程的选课人数和平均分;selectclno,cno,count(*)选课人数,avg(grade)平均分fromstudent,scwherestudent.sno=sc.snogroupbyclno,cno;3.查询李爽同学没选修的课程名;SELECTcnameFROMcourseWHERENOTEXISTS(SELECT*FROMscWHEREcno=c.cnoANDsno=(SELECTsnoFROMstudentWHEREsname='李爽'));4.把对表Course的查询权限及对Ccredit字段的更新权限授予用户张三;GRANTSELECT,UPDATE(Ccredit)ONcourseTO张三;5.将01311班全体学生成绩置空;UPDATEscSETgrade=NULLWHEREsnoIN(SELECTsnoFROMstudentWHEREclno='01311');6.为Student表的Sno建立索引(二)用关系代数表示下列操作:(6分)1、查询没有选修1号课程的学生姓名;πSNAME(Student)-πSNAME(σCNO=’1’(SC)πSNAME(Student))2、查询选修了“数据库概论”课程且成绩在90分以上的学生姓名。πSname(σCname=’数据库概论’(Course)σGrade≥90(SC)πSname(Student))3、查询年龄介于20与23岁之间的学生姓名及年龄;πSNAME,SAGE(σSAGE≥20∧SAGE≤23(Student))4、查询没有选修1号课程的学生姓名;πSNAME(Student)-πSNAME(σCNO=’1’(SC)πSNAME(Student))(三)将上题(二)2关系代数转换成SQL语句(2分)