1、软件水平考试(中级)数据库系统工程师下午(应用技术)试题模拟试卷 1及答案与解析 一、试题一( 15分) 1 阅读以下说明,回答问题 1-5。 说明 设有三个关系: BOOK (BNO, BNAME, PUBLISH_YEAR, PRICE, PRESS) READ(RNO, RNAME, DUTY) BR(BNO, RNO, RETURN_DAY) 试用关系代数表达式表示下列查询语句: 1 检索读者号为 01的读者所借的所有的书名。 2 检索读者 DAVID没有借的书号。 3 检索 在 1988年以前出版的书名。 4 检索被 DUTY为老师的读者借出的所有的书名。 5 检索借了书号为 BOO
2、Kl这本书的读者号。 二、试题二( 15分) 6 阅读以下说明,回答问题 1 4。 说明 现有某个应用,涉及到两个实体集,相关的属性为: 实体集 R(A#, A1, A2, A3),其中 A#为主键 实体集 S(B#, B1, B2),其中 B#为主键 从实体集 R到 S存在多对一的联系,联系属性是 D1。 6 设计相应的关系数据模型; 7 如果将上述应用的数据库设计为一个关系 模式,如下: RS(A#, A1, A2, A3, B#, B1, B2, D1) 指出该关系模式的主键。 8 假设上述关系模式 RS上的全部函数依赖为: A1A3 ,指出上述模式 RS最高满足第几范式 ?(在 1NF
3、 BCNF之内 )为什么 ? 9 如果将上述应用的数据库设计为三个关系模式,如下: R1(A#, A1, A2, A3) R2(B#, B1, B2); R3(A#, B#, D1) 关系模式 R2是否一定满足第 3范式 ?为什么 ? 三、试题三( 15分) 10 阅读以下说明和关系表,回答问题 1 3。 说明 已知关系 R(A, B, C, D) 和函数依赖集 F为 AB D, C , A, D C。 10 找出关系 R的候选键,一共有几个 ? 11 关系 R主属性是什么 ?非主属性是什么 ? 12 关系 R是否满足第二范式 ?第三范式 ?BCNF范式 ? 四、试题四( 15分) 13 阅读
4、以下说明和关系表,回答问题 1 3。 说明 假设现某家庭有存款余额是500元, 1妈妈存进了 200元, 2爸爸又存进了 300元,其执行的时间如下:13 能否直接按时间顺序执行事务 1和 2,为什么 ? 14 为了实现这两件事情的并发控制,对事务 1该如何修改 ?请简要分析。 15 为了实现这两件事情的并发控制,对事务 2该如何修改 ?请简要分析。 软件水平考试(中级)数据库系统工程师下午(应用技术)试题模拟试卷 1答案与解析 一、试题一( 15分) 1 【正确答案】 BNAME(RN0=01(BOOKD BR) 2 【正确答案】 BNO(BOOK)-BNO(RNAME=DAVID(READ
5、 BR) 3 【正确答案】 RNAME(PUBLIJSH_YEAR 1998(BOOK) 4 【正确答案】 BNAME(BNO(BOOK) -BNO(DUTY=老师(READD BR)( BOOK) 5 【正确答案】 RNO(BR)BNO(BSO=BOOKI(BOOK) 二、试题二( 15分) 6 【正确答案】 R1(A#, A1, A2, A3, B#, D1) R2(B#, B1, B2) 7 【正确答案】 主键是 A#B# 8 【正确答案】 RS满足 2NF,不满足 3NF。 因为存在非主属性 A3对码 A#B#的传递依赖,没有部分函数依赖。 9 【正确答案】 不一定。 因为 R3中有两
6、个非主属性 B1和 B2,有可能存在函数依敕 B1B2 ,则出现传递依赖 B#B1 、 B1B2 。 三、试题三( 15分) 10 【正确答案】 由自反律,有 ABA , ABB 已知 ABD , DC , 由传递关系有 ABC 由上可知, AB为候选码 由自反律,有 BCB , BCC 又已知 CA , 有 BCA BCA , BAD , BBCD ,即 BCD 由上可知, BC也为候选码 11 【正确答案】 主属性为 A、 B、 C 非主属性为 D 12 【正确答案】 a 首先它属于第一范式,这里只有非主属性 D,它完全依赖于AB或 BC,不存在部分依赖 满足 2NF b 只有一个非主属性 D 不存在非主属性依赖的情况 属于 3NF c CA 存在主属性 A部分依赖于码 BC 它不属于 BCNF 四、试题四( 15分) 13 【正确答案】 如果直接按时间顺序执行 1和 2两个事务,则最后的 X为 800,而不是 正确 1000。 为此,要采用封锁的办法。 14 【正确答案】 将 1事务修改为: WHILE(X已建立排它锁 ) 等待 对 X建立排它锁 读 X 更新 X=X+200 释放排它锁 15 【正确答案】 将 2事务修改为: WHILE(X已建立排它锁 ) 等待 对 X建立排它锁 读 X 更新 X=X+300 释放排它锁