1、中级数据库系统工程师下午试题-14 及答案解析(总分:32.02,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明设有三个关系学生 S(学号,姓名,性别,年龄,籍贯)课程 C(课程号,课程名,任课老师,所用教材)学生成绩 SC(学号,课程号,得分)其中规定各属性定义如下:学号:SNUM 姓名:SNAME 性别:SEX 年龄:AGE 籍贯:NATIVE课程号:CNUM 课程名:CNAME 任课老师:TEACHER 所用教材:BOOK得分:GRADE试用关系代数表达式表示下列查询语句。(分数:15.00)(1).问题 1检索张三老师所授课程的名称。(分数:2.50)_(2).问
2、题 2检索选修全部课程的学生的学号和姓名。(分数:2.50)_(3).问题 3检索全部学生都选修的课程号。(分数:2.50)_(4).问题 4检索至少选修了课程号为 1和课程号为 5的课程的学生的学号。(分数:2.50)_(5).问题 5检索选修课程包含李四老师所授课程之一的学生姓名。(分数:2.50)_(6).问题 6检索选修课程包含学号为 2且年龄小于 20的学生所修全部课程的课程号。(分数:2.50)_二、试题二(总题数:1,分数:-1.00)说明设有三个关系:BOOK (BNO,BNAME,PUBLISH_YEAR,PRICE,PRESS)READ(RNO,RNAME,DUTY)BR(
3、BNO,RNO,RETURN_DAY)试用关系代数表达式表示下列查询语句:(分数:-1.00)(1).问题 1检索读者号为 01的读者所借的所有的书名。(分数:-0.20)_(2).问题 2检索读者 DAVID没有借的书号。(分数:-0.20)_(3).问题 3检索在 1988年以前出版的书名。(分数:-0.20)_(4).问题 4检索被 DUTY为老师的读者借出的所有的书名。(分数:-0.20)_(5).问题 5检索借了书号为 BOOKl这本书的读者号。(分数:-0.20)_三、试题三(总题数:1,分数:20.00)说明已知关系 R(A,B,C,D) 和函数依赖集 F为 ABD,C,A,DC
4、。(分数:20.01)(1).问题 1找出关系 R的候选键,一共有几个?(分数:6.67)_(2).问题 2关系 R主属性是什么?非主属性是什么?(分数:6.67)_(3).问题 3关系 R是否满足第二范式?第三范式?BCNF 范式?(分数:6.67)_四、试题四(总题数:1,分数:-1.00)说明根据下面所给的 AAA数据库,或者按照下列所给的每条 SQL查询语句写出相应的功能,或者按照下列所给的每种功能写出相应的 SQL查询语句。假设使用名称为 AAA的数据库,它包括 Students(学号 char(8),姓名 varchar(8),年龄 int,专业varchar(20),入学日期 D
5、ate Time)和 Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2)两张表。(分数:-1.00)(1).问题 1请说出该程序段的功能。declare a numeric(5,2), b numeric(5,2)set a=(select max(成绩)from score)set b=(select min(成绩)from score) print a- b(分数:-0.20)_(2).问题 2请说出该程序段的功能。create procedure xxk6( a char (8), b varchar(10)asbegindelete fro
6、m scorewhere学号= a and 课程名= bend(分数:-0.20)_(3).问题 3请说出该程序段的功能。declare e numeric(5,2)declare c1 int, c2 int, c3 int, c4 intset c1=0; set c2 =0; set c3=0; set c4=0declare xxx cursorfor select 成绩 from scoreopen xxxfetch xxx into cwhile fetch_status = 0beginif(c =90) set cl = e1 +1;else if( c =70) set c2
7、 = c2 +1;else if( c =60) set c3 = c3 +1;else set c4 = c4 + 1fetch from xxx into cendclose xxxdeallocate xxx print 优秀生人数:+sb( c1,5);print食好生人数:+str( c2,5); print及格生人数:+str( c3,5);print及格生人数:+sh( c4,5)(分数:-0.20)_(4).问题 4请写出一条查询语句,要求显示出 Score表中的全部数据,并要求当成绩为空时显示数值-1。(分数:-0.20)_(5).问题 5请写出一条修改数据库定义的语句,将
8、AAA数据库的初始大小更改为 5MB,最大空间限定为 10MB。(分数:-0.20)_五、试题五(总题数:1,分数:-1.00)说明假设现某家庭有存款余额是 500元,1妈妈存进了 200元,2爸爸又存进了 300元,其执行的时间如下:(分数:-0.99)(1).问题 1能否直接按时间顺序执行事务 1和 2,为什么?(分数:-0.33)_(2).问题 2为了实现这两件事情的并发控制,对事务 1该如何修改?请简要分析。(分数:-0.33)_(3).问题 3为了实现这两件事情的并发控制,对事务 2该如何修改?请简要分析。(分数:-0.33)_中级数据库系统工程师下午试题-14 答案解析(总分:32
9、.02,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明设有三个关系学生 S(学号,姓名,性别,年龄,籍贯)课程 C(课程号,课程名,任课老师,所用教材)学生成绩 SC(学号,课程号,得分)其中规定各属性定义如下:学号:SNUM 姓名:SNAME 性别:SEX 年龄:AGE 籍贯:NATIVE课程号:CNUM 课程名:CNAME 任课老师:TEACHER 所用教材:BOOK得分:GRADE试用关系代数表达式表示下列查询语句。(分数:15.00)(1).问题 1检索张三老师所授课程的名称。(分数:2.50)_正确答案:( CNAME( TEACHER=张三 (C)解析:(2)
10、.问题 2检索选修全部课程的学生的学号和姓名。(分数:2.50)_正确答案:( SNUM,CNUM(SC) CNUM(C) SNUMM,SNAME(S)解析:(3).问题 3检索全部学生都选修的课程号。(分数:2.50)_正确答案:( SNUM,CNUM(SC) SNUM(S)解析:(4).问题 4检索至少选修了课程号为 1和课程号为 5的课程的学生的学号。(分数:2.50)_正确答案:(可建立一个临时关系 R)解析:(5).问题 5检索选修课程包含李四老师所授课程之一的学生姓名。(分数:2.50)_正确答案:( SNUM( CNUM( TEACHER=李四 (C)S C) )解析:(6).问
11、题 6检索选修课程包含学号为 2且年龄小于 20的学生所修全部课程的课程号。(分数:2.50)_正确答案:( CNUM( SNUM( SNUM=2(S) AGE20(S) )解析:解析 关系代数运算。二、试题二(总题数:1,分数:-1.00)说明设有三个关系:BOOK (BNO,BNAME,PUBLISH_YEAR,PRICE,PRESS)READ(RNO,RNAME,DUTY)BR(BNO,RNO,RETURN_DAY)试用关系代数表达式表示下列查询语句:(分数:-1.00)(1).问题 1检索读者号为 01的读者所借的所有的书名。(分数:-0.20)_正确答案:(BNAME( RN0=01
12、(BOOKD )解析:(2).问题 2检索读者 DAVID没有借的书号。(分数:-0.20)_正确答案:( BNO(BOOK)- BNO( RNAME=DAVID(READ )解析:(3).问题 3检索在 1988年以前出版的书名。(分数:-0.20)_正确答案:( RNAME( PUBLIJSH_YEAR1998 (BOOK)解析:(4).问题 4检索被 DUTY为老师的读者借出的所有的书名。(分数:-0.20)_正确答案:( BNAME( BNO(BOOK) - BNO( DUTY=老师(READD BR)( )解析:(5).问题 5检索借了书号为 BOOKl这本书的读者号。(分数:-0.
13、20)_正确答案:( RNO(BR) BNO( BSO=BOOKI(BOOK)解析:三、试题三(总题数:1,分数:20.00)说明已知关系 R(A,B,C,D) 和函数依赖集 F为 ABD,C,A,DC。(分数:20.01)(1).问题 1找出关系 R的候选键,一共有几个?(分数:6.67)_正确答案:(由自反律,有 ABA,ABB已知 ABD,DC,由传递关系有ABC由上可知,AB 为候选码由自反律,有 BCB,BCC又已知 CA,有 BCABCA,BAD,BBCD,即 BCD由上可知,BC 也为候选码)解析:(2).问题 2关系 R主属性是什么?非主属性是什么?(分数:6.67)_正确答案
14、:(主属性为 A、B、C非主属性为 D)解析:(3).问题 3关系 R是否满足第二范式?第三范式?BCNF 范式?(分数:6.67)_正确答案:(a首先它属于第一范式,这里只有非主属性 D,它完全依赖于 AB或 BC,不存在部分依赖满足 2NFb只有一个非主属性 D不存在非主属性依赖的情况属于 3NFcCA存在主属性 A部分依赖于码BC它不属于 BCNF)解析:四、试题四(总题数:1,分数:-1.00)说明根据下面所给的 AAA数据库,或者按照下列所给的每条 SQL查询语句写出相应的功能,或者按照下列所给的每种功能写出相应的 SQL查询语句。假设使用名称为 AAA的数据库,它包括 Studen
15、ts(学号 char(8),姓名 varchar(8),年龄 int,专业varchar(20),入学日期 Date Time)和 Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2)两张表。(分数:-1.00)(1).问题 1请说出该程序段的功能。declare a numeric(5,2), b numeric(5,2)set a=(select max(成绩)from score)set b=(select min(成绩)from score) print a- b(分数:-0.20)_正确答案:(该程序段功能:求出 score表中最高成绩与最
16、低成绩的分数之差。)解析:(2).问题 2请说出该程序段的功能。create procedure xxk6( a char (8), b varchar(10)asbegindelete from scorewhere学号= a and 课程名= bend(分数:-0.20)_正确答案:(该程序段功能:从 score表中删除学号为a 的值、课程名为b 的值的学生成绩记录。)解析:(3).问题 3请说出该程序段的功能。declare e numeric(5,2)declare c1 int, c2 int, c3 int, c4 intset c1=0; set c2 =0; set c3=0;
17、 set c4=0declare xxx cursorfor select 成绩 from scoreopen xxxfetch xxx into cwhile fetch_status = 0beginif(c =90) set cl = e1 +1;else if( c =70) set c2 = c2 +1;else if( c =60) set c3 = c3 +1;else set c4 = c4 + 1fetch from xxx into cendclose xxxdeallocate xxx print 优秀生人数:+sb( c1,5);print食好生人数:+str( c2,
18、5); print及格生人数:+str( c3,5);print及格生人数:+sh( c4,5)(分数:-0.20)_正确答案:(该程序段功能:从 score表中按成绩统计并显示出优秀、良好、及格、不及格各多少人。)解析:(4).问题 4请写出一条查询语句,要求显示出 Score表中的全部数据,并要求当成绩为空时显示数值-1。(分数:-0.20)_正确答案:(select 学号,课程名,isnull(成绩,-1)from Score)解析:(5).问题 5请写出一条修改数据库定义的语句,将 AAA数据库的初始大小更改为 5MB,最大空间限定为 10MB。(分数:-0.20)_正确答案:(ALT
19、ER DATABASE AAAMODIFY FILE (NAME = AAA_data,SIZE = 5,MAXSIZE = 10)解析:五、试题五(总题数:1,分数:-1.00)说明假设现某家庭有存款余额是 500元,1妈妈存进了 200元,2爸爸又存进了 300元,其执行的时间如下:(分数:-0.99)(1).问题 1能否直接按时间顺序执行事务 1和 2,为什么?(分数:-0.33)_正确答案:(如果直接按时间顺序执行 1和 2两个事务,则最后的 X为 800,而不是正确 1000。为此,要采用封锁的办法。)解析:(2).问题 2为了实现这两件事情的并发控制,对事务 1该如何修改?请简要分析。(分数:-0.33)_正确答案:(将 1事务修改为:WHILE(X已建立排它锁)等待 对 X建立排它锁读 X更新 X=X+200释放排它锁)解析:(3).问题 3为了实现这两件事情的并发控制,对事务 2该如何修改?请简要分析。(分数:-0.33)_正确答案:(将 2事务修改为:WHILE(X已建立排它锁)等待对 X建立排它锁读 X更新 X=X+300释放排它锁)解析: