《数据库系统概论》模拟试卷(一)参考答案一、单项选择题(每小题2分,共30分)1、(B)是按照一定的数据模型组织的,长期储存在计算机内,可为多个用户共享的数据的集合。(A)、数据库系统(B)、数据库(C)、关系数据库(D)、数据库管理系统2、下列关于索引的叙述,正确的是(A)。(A)、可以根据需要在基本表上建立一个或多个索引,从而提高系统的查询效率。(B)、一个基本表最多只能有一个索引。(C)、建立索引的目的是为了给数据表中的元素指定别名,从而使别的表也可以引用这个元素。(D)、一个基本表至少要存在一个索引。3、设有两个关系R(A,B)和S(A,C),下列等式成立的是(A)。(A)、(B)、(C)、(D)、4、在数据库的物理结构中,将具有相同值的元组集中存放在连续的物理块的存储方法称为(C)。(A)、HASH(B)、B树索引(C)、聚簇(D)、其它5、设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是(D)(A)、该操作不存在任何问题(B)、该操作丢失修改(C)、该操作不能重复读(D)、该操作读“脏”数据6、关系模式规范化理论主要解决的问题是(B)(A)、提高查询速度(B)、消除操作异常和数据冗余(C)、减少数据操作的复杂性(D)、保证数据的安全性和完整性7、层次型、网状型和关系型数据模型划分原则是(D)。(A)、记录长度(B)、文件的大小(C)、联系的复杂程度(D)、数据之间的联系8、有关系:R(A,B,C)(主码为A)和S(D,A)(主码为D,外码为A),外码A参照于关系R的主码A。关系R和S的元组如图所示,指出关系S中必定违反完整性规则的元组是(C)。(A)、(1,2)(B)、(2,null)(C)、(3,3)(D)、(4,1)关系RABC123213关系SDA122NULL33419、设有两个关系R(A,B)和S(B,C),与下列SELECT语句SELECTA,BReadAA=1000A=1500A=1000ReadAA=A+500WriteARollback使用A值事务T1事务T2FROMRWHEREBNOTIN(SELECTBFROMSWHEREC='C56');等价的关系代数表达式是(C)。(A)、πA,B(σC≠'C56'(RS))(B)、πA,B(RS)(C)、R-πA,B(σC='C56'(RS))(D)、R-πA,B(σC≠'C56'(RS))10、定义基本表时,若要求年龄属性的取值必须大于0,则可以使用(D)约束。(A)、NULL(B)、PRIMARYKEY(C)、DISTINCT(D)、CHECK11、已知关系模式R(A,B,C,D,E)及其上的函数依赖集合F={A→B,E→A,CE→D},则该关系模式的候选键是(C)。(A)、AE(B)、BE(C)、CE(D)、DE12、下列叙述正确的是(C)。(A)、关系中元组没有先后顺序,属性有先后顺序(B)、关系中元组有先后顺序,属性没有先后顺序(C)、关系中元组没有先后顺序,属性也没有先后顺序(D)、关系中元组有先后顺序,属性也有先后顺序13、“一个事务中的诸操作要么都做,要么都不做”,这是事务的(A)特性。(A)、原子性(B)、一致性(C)、隔离性(D)、持久性14、关于事务的故障与恢复,下列说法正确的是(D)。(A)、事务日志用来记录事务执行的频度(B)、任何故障的恢复都由系统自动完成(C)、系统故障的恢复只需进行REDO操作(D)、对日志文件设置检查点是为了提高故障恢复的效率15、若事务T1已经给数据对象A加了排它锁,则事务T2(D)。(A)、只能再对A加共享锁(B)、只能再对A加排它锁(C)、可以对A加共享锁,也可以对A加排它锁(D)、不能再给A加任何锁二、简答题(每小题5份,共10分)1、什么是日志文件?登记日志文件时为什么必须要先写日志文件,后写数据库?答:(1)日志文件是用来记录事务对数据库的更新操作的文件。(2)把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在日志文件中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志文件,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。2、什么是数据独立性?数据库系统如何实现数据独立性?答:数据独立性是指应用程序和数据之间相互独立,不受影响,数据独立性包括物理数据独立性和逻辑数据独立性。物理数据独立性是指数据库物理结构改变时,不需要修改现有的应用程序,逻辑独立性是指数据库逻辑结构发生改变时,不需要修改现有的应用程序。数据独立性是由DBMS的二级映像功能来实现的。数据库系统采用外模式、模式和内模式三级模式结构,DBMS在这三级模式之间提供了外模式/模式和模式/内模式两层映像。当整个系统要求改变模式时,由DBMS对外模式/模式的映像作相应的修改,而外模式保持不变,应用程序是依据数据库的外模式编写的,所以应用程序不必修改,从而保证数据的逻辑独立性;当数据库的存储结构发生,由DBMS对模式/内模式的映像作相应的修改,可以使模式保持不变,从而外模式不变,因此应用程序不必修改,从而保证数据的物理独立性。三、综合应用题(60分)1、(21分)设有一个Student数据库,包括学生,课程,选修三个关系:学生:S(Sno,Sname,Ssex,Sage,Sdept)课程:C(Cno,Cname,Term,Credit)选修:SC(Sno,Cno,Score)其中:学生关系S的属性分别表示:学号、姓名、性别、年龄、专业课程关系C的属性分别表示:课程号、课程名、开课学期、学分选修关系SC的属性分别表示:学号、课程号、分数请用关系代数表达式完成如下查询:(1)、查询选修了课程名为“数据库系统”课程的学生学号、姓名和成绩(2)、查询选修了全部课程的学生姓名和所在的专业(3)、查询没有选修课程号为“C02”课程的学生姓名和所在的专业(1)πSno,Sname,Score(бcname=’数据库系统’(SSCC)(2)πSname,Sdept(S(πSno,Cno(SC)÷πcno(C)))(3)πSname,Sdept(s)-πSname,Sdept(бcno=’C02’(SSC))请用SQL语句完成下面的操作:(4)、检索所有比“王华”年龄大的学生姓名、年龄和性别Selectsname,sage,ssexFromSWheresage(selectsagefromSwheresname=’王华’)(5)、检索选修了课程号为’C02’课程的学生中成绩最高的学生的学号Selectsnofromscwherecno=’c02’andgrade=ALL(selectgradefromscwherecno=’c02’)(6)、检索选修了4门以上课程的学生学号和总成绩(不统计不及格的课程),并要求按照总成绩的降序排列。Selectsno,sum(grade)fromscWheregrade=60Groupbysnohavingcount(*)=4Orderby2desc(7)、检索张力同学没有选修的课程的课程号SelectcnofromcWherenotexists(select*froms,scwheres.sno=sc.snoandsc.cno=c.cnoandsname=’张力’)2、(6分)设有如下图所示的关系R和T,计算下列代数表达式的结果:(1)、R1=RT(2)、R2=бR.B=T.B(R×T)(3)、R3=R÷T关系RABC2bc2be9af7bc7ae关系TBCEbcdaef第7页共12页(1)R1=RT关系R1ABCE2bcd7bcd7aef(2)、R2=бR.B=T.B(R×T)关系R2AR.BR.CT.BT.CE2bcbcd2bebcd9afaef7bcbcd7aeaef(3)、R3=R÷T关系R3A73、(4分)今有两个关系模式:(1)职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门号为外码;(2)部门(部门号,名称,经理名,地址,电话),其中部门号是主码;请用SQL语言的GRANT语句(加上视图机制)完成以下授权定义:用户杨兰具有SELECT每个部门的职工最高工资,最低工资,平均工资的第8页共12页权力,但他不能查看每个人的工资。CREATEVIEW部门工资统计(部门号,最高工资,最低工资,平均工资)ASSELECT部门号,MAX(工资),MIN(工资),AVG(工资)FROM职工GROUPBY部门号;GRANTSELECTONTABLE部门工资统计TO杨兰;4、(6分)在数据库系统中有如下一个调度S,它涉及到5个不同的事务T1、T2、T3、T4和T5。请问调度S是冲突可串行化的吗?为什么?如果调度S是冲突可串行化的,就请给出与之等价的一个串行调度序列。答:通过交换调度S中的不冲突操作,可以得到一个新的调度S’(T1T2T3T4T5),因为调度S’是串行调度,因此该调度S是冲突可串行化的。与之等价的串行调度顺序是T1、T2、T3、T4、T5;或T1、T2、T4、第9页共12页T3、T5。5、(8分)假设有关系模式:授课(课程编号,课程名称,学分,教师编号,教师姓名,学生编号,成绩)。其语义为:每个课程(由课程编号决定)有确定的课程名称及学分;每个课程有唯一的一位老师授课;每个教师(由教师编号决定)有确定的教师姓名,可以讲授多门课程;每个学生可以选修多门课程,每门课程有多个学生选修;每个学生选修某一课程,有确定的成绩。(1)、指出此关系模式的候选码答:该关系模式的候选码为:(课程编号,学生编号)(2)、写出此关系模式的函数依赖,如果是部分函数依赖或传递函数依赖请标明。答:存在以下函数依赖:{课程编号课程名称,课程编号学分,课程编号教师编号,教师编号教师姓名,(课程编号,学生编号)成绩}(课程编号,学生编号)成绩(课程编号,学生编号)课程名称,(课程编号,学生编号)学分(课程编号,学生编号)教师编号,教师姓名传递函数依赖于(课程编号,学生编号)(3)、判断此关系模式是第几范式,若不是第三范式,请将其规范化为第三范式的关系模式,并指出分解后的每个关系模式的候选码和外码。FPPP第10页共12页答:该关系模式属于第一范式。其规范为第三范式如下:(课程编号,课程名称,学分,教师编号),主码是课程编号,教师编号为外码(教师编号,教师姓名),主码为教师编号(课程编号,学生编号,成绩),主码为(课程编号,学生编号),课程编号为外码,学生编号为外码6、(10分)假设要建立企业工程管理数据库,现已知如下信息:一个职工仅在一个工程中工作,但一个工程中有很多职工参加工作,有多个供应商为各个工程供应不同种类及数量的设备。描述职工的属性有:职工号、姓名、性别,单位名等。描述设备的属性有:设备号、设备名、产地。描述供应商的属性有:供应商姓名、电话。描述工程的属性有:工程名、地点。(1)根据上述语义画出E-R图,在E-R图中需注明实体的属性、联系的类型及实体型。(2)将E-R图转换成关系模式集,要求每个关系模式要规范到第三范式,并指出每个关系模式的主键和外键。工程性别地点供应商设备职工供应商姓电话职工号单位名姓名工程名设备名产地设备号供应工作1MMNP数量第11页共12页(2)关系模式:职工(职工号,单位名,姓名,性别,工程名),职工号为主码,工程名为外码设备(设备号,设备名,产地),设备号为主码供应商(供应商姓名,电话),供应商姓名为主码工程(工程名,地点),工程名为主码供应(供应商姓名,工程名,设备号,数量),(供应商姓名,工程名,设备号)为主码供应商姓名为外码,工程名为外码,设备号为外码7、(5分)假设教学数据库中有3个关系:S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER)SC(S#,C#,GR