《数据库系统原理试卷和答案二打印(共6页).doc》由会员分享,可在线阅读,更多相关《数据库系统原理试卷和答案二打印(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第一学期期末考试试卷和答案一、选择题(从下列各题四个答案中选出一个正确答案,每小题1分1、在数据库技术发展的几个阶段中,数据独立性最高的是_A_阶段。A、数据库系统 B、文件系统 C、人工管理 D、数据项管理2、在SQL的SELECT语句中,与选择运算对应的命令动词是_C_。A、SELECT B、FROM C、WHERE D、ORDERBY3、在数据库中,下列说法_A_是不正确的A、数据库避免了一切数据的重复B、若系统是完全可以控制的,则系统可确保更新是的一致性C、数据可以共享 D、数据库减少了冗余4、在数据库系统中,模式/外模式映像用于解决数据的_C_A、结构独立性
2、 B、物理独立性C、逻辑独立性 D、分布独立性5、关系代数的5种基本运算是_D_。A、并、差、选择、投影、自然连接B、并、差、交、选择、投影C、并、差、交、选择、笛卡尔积D、并、差、选择、投影、笛卡尔积6、在SQL语句中,谓词“EXISTS”的含义是_B_。A、全称量词 B、存在量词 C、自然连接 D、等值连接7、规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常、更新异常以及_C_的缺陷A、数据不一致性 B、结构不合理 C、冗余度大 D、数据丢失8、数据库数据的正确性和相容性是数据库的_B_。A、安全性 B、可维护性 C、完整性 D、并发控制9、数据库三级模式体系结构主要的目标是确保数
3、据库的_B_。A、数据安全性 B、数据独立性C、最小冗余 D、数据结构规范化10、后援副本的用途是_C_。A、安全性保障 B、一致性控制 C、故障后的恢复 D、数据的转储 二、简答题(回答要点,并简明扼要作解释。每题5分,共20分)1、简述数据库系统从哪些方面来保证数据的完整性。列级约束:数据类型、宽度、缺省值、检查约束、是否空值、唯一约束主键约束、外键约束、用户自定义约束:主要通过触发器完成2、简述事务的ACID特性原子性(A):事务中的操作要么全做,要么一个也不做一致性(C):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态隔离性(I):一个事务的执行不能被其它事务干扰持续
4、性(D):一个事务一旦提交,它对数据库中数据的修改应该是永久的3、简述并发控制不当带来的数据不一致性问题丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1的结果,导致T1的修改被丢失不可重复读: 是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果读“脏”数据:是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致。则T2读到了“脏”数据,即不正确的数据。产生上述三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。4、简述数据库系统从哪些方面
5、来保证数据的安全性。身份认证:提供用户标识和密码的确认用户操作对象的权限:通过授权机制视图:只显示用户可以作用的属性及记录存储过程:通过存储过程实现对不具有操作权限的数据三、编程与关系运算(每题5分,共20分)设有四个关系学生表(学号char(5),姓名varchar(10),姓别char(2),所属系varchar(20))Student(sno,sname,sex,dept)课程表(课程号char(3),课程名varchar(20),先修课程char(3),学分tinyint,任课教师char(5))Course(cno,cname,precno,ceredit,tno)教师表(教师号ch
6、ar(5),教师名称varchar(10),姓别char(2))Teacher(tno,tname,sex)选课表(学号char(5)、课程号char(3),成绩tinyint)SC(sno,cno,grade)1编写一个触发器,当对学生表进行修改时其姓别只能是男和女。create trigger StudentUpdateon Studentfor update asbegin if exists (select * from inserted where sex not in (男,女) rollback end2编写一个存储过程,依据输入的学号参数,统计该学生的平均分和总分,要求使用游标
7、,不可以使用sum和avg命令。create procedure SearchSumBySno(sno char(5)asbegin declare sum int,avg numeric(5,1),grade tinyint,count tinyint select sum=0,count=0 declare myCursor cursor for select grade from sc where sno=sno open myCursor fetch myCursor into grade while(fetch_status=0) begin select sum=sum+grade
8、 select count=count+1 fetch myCursor into grade end close myCursor deallocate myCursor if count=0 select 0 总分,0 平均分 else begin select avg=sum/count select sum 总分, avg 平均分 endend3使用关系代数语言查询选修了刘红老师所授的所有课程的同学学号。sno,cno(SC)cno(tname=刘红 (Teacher)Course)4使用元组演算语言查询同时选修了001和002两门课程号的同学姓名。t|uvw(Student(u)SC
9、(v) SC(w) v2=001w2=002v1=w1 u1=v1 t1=u2)四、综合设计题(共40分)1、已知:关系模式R(U,F)U=ABCD F=AC,CA, BAC,DAC 求:(1)(AD)F+ ,R的候选码。(5分)(2)求F的最小函数依赖集,并使用算法将模式R无损失连接且保持函数依赖分解为3NF。(5分)解(1)(AD)F+=ADC,候选码:BD(2)最小函数依赖集:Fmin=AC,CA,BA,DA,将模式R无损失连接且保持函数依赖分解为3NF,P=AC,BA,DA,BD。(1)(AD)F+=ADC (2分)(2)候选码:BD(3分)(3)F的最小函数依赖集是(2分)(4)P=
10、AC,BA,DA,BD(3分)2、设有关系模式R,U=A,B,C,D,E,F=AD,ED,DB,BCD,CDAB,设有一个分解P=R1(ED),R2(BCD),R3(ACD)判断该分解是否保持函数依赖,并判断此分解是否具有无损连接性。(10分)解 :(1)求出F的最小函数依赖集F=AD,ED,DB,BCD,CDA又因为: F+ =( Fi)+,则R的分解=R1,R2,R3保持函数依赖。所以,该分解能保持函数依赖关系。(5分) (2)ABCDER1b11a2b13a4a5R2a1a2a3a4b25R3a1a2a3a4b35可以得到没有一行全为a,所以该分解为有损分解。(5分)3、对于关系模式R(
11、D,B,I,S,Q,O),设有两个函数依赖集F和G,其中F=SD,IB, ISQ,BO G= SD,IB, ISQ,BO ,IO 试判断F和G是否等价。(5分)解:因为F G+,G F+ 所以F和G等价。4、数据库设计:设计一个图书馆数据库,此数据库中保存有读者记录,包括读者号、姓名、地址、出生日期、单位。每本图书有书号、书名、作者、出版社。一本书有多个作者。对每本借出的书有借出日期和应还日期。一个读者可以借多本书。要求:1)画出E-R图(5分)2)根据需要可以增加属性,转换为满足3NF的关系模式(5分)3)给出主键约束和外键约束(5分)4)关系名和属性名用汉字)画出E-R图读者图书借书读者号
12、读者名地址年龄单位图书号图书名作者出版社借出日期应还日期 m n)根据需要可以增加属性,转换为满足3NF的关系模式读者关系(读者号、读者名称、地址、出生日期、单位)图书关系(图书号、图书名、出版社、出版日期)图书-作者关系(图书号、作者名称、作者所在单位)借书主关系(借书号、读者号、借书日期、应还日期)借书明细关系(借书号、图书号)给出主键约束和外键约束读者关系:主键:读者号图书关系:主键:图书号图书-作者关系: 主键:图书号+作者名称外键:图书号借书主关系:主键:借书号借书明细关系:主键:借书号、图书号外键1:借书号,外键2:图书号五、优化与并发(每题5分,共10分)1、设有二个事务T、U,
13、下面的并发操作是否正确,若不正确请使用时间戳方法解决其冲突,设Ts(T)Ts(U)。(8分)TURead(b)Write(b=b-300)Read(b)Write(b=b+300)答: 并发操作不正确,可以使用时间戳方法解决其冲突。数据bT事务 U事务读时标写时标操作 00 t10T读b t20 U读bt2t2 U更新b t2t2T更新b(不允许,因t1t2) t2t2 回退T并赋予新时标t3 t3t2T读b t3t3T更新b正确的调度:T事务U事务Read(b)Write(b=b+300)Read(b)Write(b=b-300)2、优化中的算法描述:根据排序合并算法描述下列查询操作的实现。
14、(5分)select a.cust_id,b.tot_amt,b.order_date,a.tel_nofrom customer a ,sales bwhere a.cust_id=b.cust_id 解首先对customer 和sales 按连接属性cust_id排序;取customer表中第一个cust_id,依次扫描sales表中具有相同cust_id的元组,把它们连接起来;当扫描到cust_id不相同的第一个sales元组时,返回customer表扫描它的下一个元组,再扫描sales表中具有相同cust_id的元组,把它们连接起来;重复上述步骤直到customer表扫描完。专心-专注-专业