杭州电子科技大学学生考试卷(A)卷参考答案考试课程数据库概论考试日期08年6月16日成绩课程号教师号任课教师姓名李桂杰考生姓名学号(8位)年级专业说明:所有题目均直接答在试卷上。一、单项选择题(每小题2分,共20分)1.SQL中的视图提高了数据库系统的(D)A.完整性B.并发控制C.隔离性D.安全性2.记载数据库系统运行过程中所有更新操作的文件称为(C)。A.更新文件B.后备文件C.日志文件D.数据文件3.如果事务T获得了数据项Q上的排它锁,则T对Q(C)A.只能读不能写B.只能写不能读C.既可读又可写D.不能读不能写4.在SQL中,SELECT语句的SELECTDISTINCT表示查询结果中(C)A.属性名都不相同B.去掉了重复的列C.行都不相同D.属性值都不相同5.已知关系R如图1所示,可以作为R主码的属性组是(B)RABCD123413452456143413473456图1A.ABCB.ABDC.ACDD.BCD6.关系数据库中的哪一种基本数据操作不能同时操作两个关系(B)A.交B.选择C.连接D.并7.事务的ACID性质,是指事务具有原子性、一致性和(C)A.隔离性、透明性B.独立性、透明性C.隔离性、持久性D.共享性、持久性8.个别用户使用的数据视图的描述称为(A)A.外模式B.概念模式C.内模式D.存储模式9.数据模型的三个组成部分是数据结构、数据操作和()。A.数据安全性控制B.数据一致性规则C.数据完整性约束D.数据处理逻辑10.为实现嵌入式SQL语句与主语言之间的通信,特引进了以下概念()A、视图、游标、SQL通信区;B、SQL通信区、游标、主变量;C、码、SQL通信区、主变量;D、模式、视图、SQL通信区。二、填空题(每空1分,共14分)1.数据库的一大特点是数据共享,即用户可以并发访问数据库对象,但并发操作可能会引起丢失更新、不可重复读、读脏数据这几类数据不一致性的问题,于是就要进行并发控制。并发控制的主要技术是封锁,封锁对象的规模称为封锁粒度。2.在数据库设计中,将E-R模型转换成关系数据模型属于逻辑设计阶段,对数据库模式进行规范化处理,属于逻辑设计阶段,规划存储结构和存取方法属于物理设计阶段。3.数据管理技术的发展经历了_人工管理_、__文件系统__和__数据库系统___段。4.在数据库安全性控制技术中第一步就是用户标识与鉴定,在SQLServer这一步技术包含有两部分内容,一是用户登陆NT服务器的的认证;另一步是已经登陆到NT的用户进一步成为SQL服务器帐户的认证,根据需要,这样的认证有WINDOWS身份验证模式、混合模式两种模式。5.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。(×)第1页共3页四、问答题(共20分)1.数据库的完整性与安全性有什么不同?(5分)数据的完整性和安全性是两个不同的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(GarbageInGarbageOut)所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。2.什么是数据冗余?在关系数据库中能完全消除数据冗余吗?(5分)数据库中数据重复存储的现象称为数据冗余。在关系数据库中不能完全消除数据冗余。因为要实现关系数据库中表与表之间的联系,必须通过公共属性来完成,这些公共属性可能是一个表的主键,也可能是另一个表的外键,有相应的参照完整性规则来保证表之间的联系。所以关系数据库中存在数据冗余,但能控制数据的冗余度。3.设有关系模式R(A,B,C),F是R上成立的函数依赖集,F={AC→B,AB→C,B→C},试问R在函数依赖范围内最高能达到第几范式,并简要说明理由。(6分)R∈1NF。候选码为AC和AB。存在非主属性C对码AB的部分函数依赖,所以R∈1NF,4.现有部门表(DEPARTMENT)及员工表(EMPLOYEE),假设各表中已有数据如下,请指出下面给出的各行数据中哪一行不能插入EMPLOYEE表,为什么?(4分)DEPARTMENT:(主码为DEPT_ID)DEPT_IDNAMELOCATION10AccountingNewyork40SalesmiamiEMPLOYEE:(主码为EMP_ID,外部码为DEPT_ID)EMP_IDEMP_NAMEEMP_MGRTITLEDEPT_ID1234GreenPresident404567Gilmore1234SeniorVP401045Rose4567Director109876Smith1045Accountant10A.(9213,jones,1045,clerk,30)B.(8997,grace,1234,secretary,40)C.(5932,allen,4567,clerk,null)A行数据不能插入EMPLOYEE表。因为部门号30不在部门表的DEPT_ID取值范围内,违反了关系参照完整性约束的规定。五、数据库设计题(12)某大学教学数据库中有三个实体集。一是“课程”实体集,属性有课程号、课程名称;二是“教师”实体集,属性有教师工号、姓名、职称;三是“学生”实体集,属性有学号、姓名、性别、年龄。设教师与课程之间有“主讲”联系,每位教师可主讲若干门课程,但每门课程只有一位主讲教师,教师主讲课程将选用某本教材;教师与学生之间有“指导”联系,每位教师可指导若干学生,但每个学生只有一位指导教师;学生与课程之间有“选课”联系,每个学生可选修若干课程,每门课程可由若干学生选修,学生选修课程有个成绩。(1)试画出E-R图;(2)将E-R图转换成关系模型,并说明主码和外部码。(1)E-R图如下(2)转换成的关系模型具有4个关系模式:教师(工号,姓名,职称)学生(学号,姓名,性别,年龄,教师工号)课程(课程号,课程名称,教师工号)选课(学号,课程号,成绩)N1成绩主讲课程课程号课程名称N工号教师姓名指导教材学生学号姓名年龄电话1选课MN职称性别第2页共3页六、关系代数及SQL语句题(共24分)已知关系:Student(Sno,Sname,Ssex,Sage,Clno,Sdept)学号姓名性别年龄班级号系Course(Cno,Cname,Cpno,Ccredit)课程号课程名先修课号学分SC(Cno,Sno,Grade)课程号学号成绩(一)用关系代数表示下列操作:(9分)1.查询年龄介于20与23岁之间的学生姓名及年龄;πSNAME,SAGE(σSAGE≥20∧SAGE≤23(Student))2.查询没有选修1号课程的学生姓名;πSNAME(Student)-πSNAME(σCNO=’1’(SC)Student)此题可有多种答案3.查询选修了“数据库概论”课程且成绩在90分以上的学生姓名。πSname(σCname=’数据库概论’(Course)σGrade≥90(SC)Student)此题可有多种答案(二)用SQL语句完成下列操作:(15分)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');