第2套综合试卷

1. 数据库与文件系统的根本区别在于[ ]

正确答案: C


2. 现有关系模式: EMP(empno,ename,mgr,sal,workday) DEPT(deptno,dname,loc) 在以下视图中,不可能更新的视图为[]。

正确答案: B D


3. 对由SELECT--FROM—WHERE—GROUP--ORDER组成的SQL语句,其在被DBMS处理时,各子句的执行次序为[ ]。

正确答案: C


4. 试给出BCNF的定义,并说明满足BCNF的关系有哪些特性。

正确答案: 关系模式R∈1NF。若X→Y且YX时X必含有码,则R∈BCNF。 满足BCNF关系的特性有: 所有非主属性对每一个码都是完全函数依赖; 所有的主属性对每一个不包含它的码,也是完全函数依赖; 没有任何属性完全函数依赖于非码的任何一组属性。


5. 在建立一个数据库应用系统时,为什么要首先调试运行DBMS的恢复功能?简述一下你所了解的数据库系统的恢复方法。

正确答案: 因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,为了防止出现此类事件带来的灾难性后果,必须首先调试运行DBMS的恢复功能。即把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能。 DBMS一般都使用数据转储和登录日志文件实现数据库系统恢复功能。针对不同的故障,使用不同的恢复策略和方法。例如,对于事务故障的恢复是由DBMS自动完成的,对用户是透明的。 对于系统故障,也是由DBMS完成恢复操作,包括撤销(UNDO)故障发生时未完成的事务,重做(REDO)已完成的事务。DBA的任务是重新启动系统,系统启动后恢复操作就由DBMS来完成了。 对于介质故障,则恢复方法是由DBA重装最新的数据库后备副本和转储结束时刻的日志文件副本,然后DBA启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务。


6. 试述数据模型中完整性约束条件的概念,并给出关系模型中的完整性约束。

正确答案: 数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。数据模型还应该提供定义完整性约束条件的机制,以反映具体应月所涉及的数据必须遵守的特定的语义约束条件。 在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。这是关系数据模型必须遵守基本的通用的完整性约束条件。


7. 设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SNO,CNO,CN,C)(CNO为课程号,CN为课程名,C为成绩),试用SQL语言完成以下各题 (1)建立一个视图V—SSC(SNO,SN,CNO,CN,C),并按CNO升序排序; (2)从视图V—SSC上查询平均成绩在90分以上的SN、CN和C。

正确答案: (1) CREATEVIEWV—SSC(SNO,SN,CNO,CN,G) AS SELECT S.SNO,S.SN,CNO,SC.CN,SC.G FROM S,SC WHERE S.SNO:SC.SNO ORDER BY CNO; (2) SELECT SN,CN,C FROM V—SSC GROUP BY SNO HAVINGAVG©>90;


8. 今有如下关系数据库: S(SNO,SN,STATUS,CITY) P(PNO,PN,COLOR,WEIGHT) (JNO,JN,CITY) SPJ(SNO,PNO,JNO,QTY) 其中,S为供应单位,P为零件,J为工程项目,SPJ为工程订购零件的订单,其语义为:某供应单位供应某种零件给某个工程,请用SQL完成下列操作。 (1)求为工程J1提供红色零件的供应商代号。 (2)求使用S1供应的零件的工程名称。 (3)求供应商与工程所在城市相同的供应商提供的零件代号。 (4)求至少有一个和工程不在同一城市的供应商提供零件的工程代号。

正确答案: (1) SELECT DISnNCT SPJ.SNO FROM SPJ,P WHERE P.PNO二SPJ.PNO AND SPJ.JNO=‘J1’AND P.COLOR=‘红’; (2) SELECTJ.JN FROM J,SPJ WHERE J.JNO=SPJ.JNOAND SPJ.SNO=‘S1’; (3) SELECT DISTINCT SPJ.PNO FROM S,J,SPJ WHERE S.SNO=SPJ.SNO AND).JNO=SPJ.JNO AND S.CITY=J.CITY; (4) SELECT DISTINCT SPJ.JNO FROM S,J,SPJ WHERE S.SNO=SPJ.SNO AND J.JNO=SPJ.JNO AND S.CITY<>J.CITY;


9. 假设存款余额x:1000元,甲事务取走存款300元,乙事务取走存款200元,其执行时间如下: 甲事务 时间 乙事务 读x t1 t2 读x 更新x二x—300 t3 14 更新x:x—200 如何实现这两个事务的并发控制?

正确答案: 如果按照题中的顺序执行甲乙两个事务,则最后的x为800,而不是正确的500。为此,采用封锁的方法,将甲事务修改为: WHILE(x上已有排他锁) { 等待 } 对x加上排他锁 读x 更新x=x-300 释放排他锁 将乙事务修改为: { 等待 } 对x加上排他锁 读x 更新x=x-200 释放排他锁 可以说明如下: 甲事务 时间 乙事务 XLOCK x t1 获得 t2 XLOCK x 等待 更新x=x-300 t3 等待 x=700 Commit t4 等待 UNLOCKx t5 等待 t6 获得XLOCK x t7 更新x=x-200 x=500 t8 Commit t9 UNLOCK x


10. 试述关系数据库系统中视图(VIEW)的定义,引进VIEW的概念有什么优点。

正确答案: 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。 引进VIEW的优点有: (1)视图能够简化用户的操作。 (2)视图使用户能以多种角度看待同一数据。 (3)视图对重构数据库提供了一定程度的逻辑独立性。 (4)视图能够对机密数据提供安全保护。