第1页共6页一.名词解释:(共5题,每题2分,共10分)1.数据库:数据库是长期存储在计算机内有结构的大量的共享的相关数据集合。2.数据模型:在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。3.数据的逻辑独立性:当数据的总体逻辑结构改变时,通过对映象的相应改变可以保持数据的局部逻辑结构不变,应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改。4.SQL:结构化查询语言,是标准关系数据库语言.5.视图:视图是命名的、从基本表中导出的虚表,它在物理上并不存在,存在的只是它的定义二.填空:(共30空,每空1分,共30分)1.数据抽象的三种常用方法为分类、聚集和概括三种。2.一个学生可以同时借阅多本图书,一本图书只能由一个学生借阅,学生和图书之间为1:n的联系。3.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为该关系的外键。4.SQL语言具有对数据定义、查询、操作和管理等四个方面的功能。5.数据库系统的三级模式结构分别为:模式、内模式、外模式;二级映象分别为:外模式/模式映象,模式/内模式映象6.在SQL所支持的数据库系统的三级模式结构中,视图属于外模式。7.设X→Y是关系模式R的一个函数依赖,如果存在X的真子集X’,使得X’→Y成立,则称Y部分函数依赖X。8.在一个关系模式中,若一个属性或属性组K完全函数决定整个元组,则称K为该关系的一个主属性。9.一个关系模式为Y(X1,X2,X3,X4),假定该关系存在着如下函数依赖:X1→X2,X1→X3,X3→X4,则该关系属于第2范式,因为它存在着传递依赖。10.关系数据库中有三种基本操作,从表中取出满足条件的属性成分操作称为投影,从表中选出满足条件的元素操作称为选择,将两个关系中具有共同属性值的元组连结到一起,构成新表的操作称为连接。11.在选择运算所得到的结果关系中,所含的元组数不(23)原关系中的元组数。12.数据模型的三个组成要素为:数据结构、数据操作、数据的约束条件。13.事务的ACID特性分别为:原子性、一致性、隔离性、持久性.三.简答题:(共5题,每题4分,共20分)第2页共6页1.简述数据库设计的基本步骤:(1)需求分析(2)概念结构设计(3)逻辑结构设计(4)数据库物理设计(5)数据库实施(6)数据库运行和维护2.可串行化的调度策略:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为可串行化的调度。3.数据库中基本的封锁类型有几种?并简述其含义。共享锁:如果事务在数据项上加一个共享锁,那么该事务只能读而不能更新数据项。互斥锁:如果事务在数据项上加一个互斥锁,那么该事务既可读也可更新数据项。4.简述关系数据库中的查询优化的一般步骤。对于给定的查询选择代价最小的操作序列,使查询过程既省时间,具有较高的效率,这就是所谓的查询优化。1、将查询转换成某种内部表示,通常是语法树。2、根据一定的等价变换规则把语法树转换成标准(优化)形式。3、选择低层的操作算法。4、生成查询计划。5.简述事物遵守两段锁协议和事物调度可串行化的关系如果事务中所有的加锁操作都在事务的第一个解锁操作之前进行,那么这个事务是遵循两段锁协议的。如果一个调度中的每个事务都遵循两段锁协议,那么该调度必然是冲突可串行化的。事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件。四.演算题(共2题,第一题6分,第二题9分,共15分)1.已知关系R和S如下:关系R关系SDEEFGabduxcdevy第3页共6页fwa①求RS(3’)?②R÷S(3’)?2.设有关系S、SC、C,试用关系代数表达式完成下列操作。S(snum,sname,age,sex)例:(001,'李强',23,’男')SC(snum,cnum,score)例:(003,'C1',83)C(cnum,cname,teacher)例:('C1','数据库原理','王华')①求选修了C1课程或C2课程的学生学号(3’)∏snum(σSC.cnum=C1∨SC.cnum=C2(SC))②检索既选修了C1课程,又选修了C2课程的学生的名单。(3’)∏snum,sname,age,sex(σSC.cnum=C1∧SC.snum=S.snum(S))∩∏snum,sname,age,sex(σSC.cnum=C2∧SC.snum=S.snum(S))③检索选修了“程军”老师所授课程之一的学生的名单(3’)∏snum,sname,age,sex(σC.teacher=‘程军’(SSCC))五.应用题(共3题,共25分)1.一个教师任课管理数据库中提供以下信息:(8分)教师:教师号、姓名、性别、职称;课程:课程号、课程名;工作单位:单位名、电话;上述实体集中存在如下联系:(1)一个教师可以讲授多门课程,一门课程可为多个教师讲授,教师讲授的班级信息用班号表示;(2)一个单位可以有多个教师,一个教师只能属于一个单位。R.DR.ES.ES.FS.GabfwaD=G第4页共6页试完成如下设计:①构造满足需求的E/R图;(4’)②将E/R图转换为等价的关系模式;(4’)2.设有关系S、SC、C,用SQL完成下列操作。(9分)S(snum,sname,age,sex)例:(001,'李强',23,’男')SC(snum,cnum,score)例:(003,'C1',83)C(cnum,cname,teacher)例:('C1','数据库原理','王华')①查询选修了C1课程的所有学生学号和姓名;(3’)∏snum,sname(σSC.cnum=C1∧SC.snum=S.snum(S))②查询“程序设计”课程成绩在90分以上的学生的姓名。(3’)∏snum,sname(σC.cname=‘程序设计‘∧C.cnum=SC.snum∧SC.score90∧SC.snum=S.snum(S))③至少选修了C1和C2课程的学生学号。(3’)∏snum(σC.cname=C1∧C.cnum=SC.snum∧SC.snum=S.snum(S))∩∏snum(σC.cname=C2∧C.cnum=SC.snum∧SC.snum=S.snum(S))3.设有关系模式student(snum,sname,sdept,mname,cname,grade),其中(snum,sname)为主码,设关系中有如下函数依赖:{snum,cname}-{sname,sdept,mname}{snum}-{sname,sdept,mname}{snum,cname}-{grade}{sdept}-{mname}试求下列问题:(8分)①关系student属于第几范式?(2’)1②如果关系student不属于BCNF,请将关系student逐步分解为BCNF。(要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。)(6’)(瞎做){snum}-{sname,sdept,mname}为部分函数依赖分解为第2范式:消除部分函数依赖student1(snum,cname,grade),(snum,cname)为主键,(snum)为外键。student2(snum,sname,sdept,mname,grade),(snum,sname)为主键。第5页共6页{sdept}-{mname}为传递依赖分解为第3范式:消除传递依赖student1(snum,cname,grade),(snum,cname)为主键,(snum)为外键。student2(snum,sname,sdept),(snum,sname)为主键,(sdept)为外键。student3(sdept,mname),(sdept)为主键。因为上述关系中每个属性都不传递依赖与关系的候选键,所以关系满足BCNF。六.选做题:(10’)(瞎做)对于第五大题应用题中的第二题中的第②小问:查询“程序设计”课程成绩在90分以上的学生的姓名。写出原始语法树并进行优化,写出优化后的语法树原始语法树:∏snum,snameσC.cname=‘程序设计‘∧C.cnum=SC.snum∧SC.score90∧SC.snum=S.snumS优化语法树:∏snum,sname×σC.cname=‘程序设计‘C.cnum=SC.snumSC.score90SC.snum=S.snumC×SC×CSCSCS1.叙述DBMS的作用第6页共6页答:对数据进行定义、组织、使用、管理和维护的一个专用系统软件。DBMS主要提供如下几方面功能:1.数据定义功能2.数据操纵功能3.数据库的运行管理4.数据库的建立和维护2.简述DBMS的数据控制功能答:数据的安全性保护:保护数据以防止不合法的使用造成的数据的泄密和破坏;数据的完整性检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系;并发控制:对多用户的并发操作加以控制和协调,保证并发操作的正确性;数据库恢复:当计算机系统发生硬件故障,软件故障,或者由于操作员的失误以及故意的破坏影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失是,能将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)3.DBMS是如何保证数据的物理独立性和逻辑独立性的4.什么是数据操作异常?答:1数据冗余太大,浪费大量的存储空间2更新异常,数据冗余,更新数据时,维护数据的完整性代价大3插入异常,该插的数据无法插入到表中4删除异常,不该删除的数据不得不删。5.两段锁协议定义:答:把事务的执行过程分成申请封锁(加锁)阶段和释放封锁(解锁)阶段,这种规则称为两段锁协议。两段锁协议是保证并发调度可串行性的封锁协方。也就是说,凡遵守两段锁协议的任何调度,都是可串行化的调度。6.为什么写日志优先答:写数据库和写日志文件是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。7.简述由于并发控制所带来的问题答:1可能会存取和存储不正确的数据,破坏事物的隔离性和数据库的一致性。2并发操作带来数据不一致性,数据不一致性包括三类:丢失修改,不可重复读和读“脏”数据。