资源描述
第一学期期末考试试卷和答案
试卷代码:03115A 授课课时:96
课程名称:数据库系统原理 适用对象:本科选课班
一、选择题(从下列各题四个答案中选出一个正确答案,每小题1分,共10分)
1、在数据库技术发展的几个阶段中,数据独立性最高的是_____阶段。
A、 数据库系统 B、文件系统 C、人工管理 D、数据项管理
2、在SQL的SELECT语句中,与选择运算对应的命令动词是_____。
A、SELECT B、FROM C、WHERE D、ORDER BY
3、在数据库中,下列说法___是不正确的
A、数据库避免了一切数据的重复
B、若系统是完全可以控制的,则系统可确保更新的一致性
C、数据可以共享
D、数据库减少了冗余
4、在数据库系统中,模式/外模式映像用于解决数据的___
A、结构独立性 B、物理独立性
C、逻辑独立性 D、分布独立性
5、关系代数的5种基本运算是___。
A、并、差、选择、投影、自然连接
B、并、差、交、选择、投影
C、并、差、交、选择、笛卡尔积
D、并、差、选择、投影、笛卡尔积
6、在SQL语句中,谓词“EXISTS”的含义是____。
A、全称量词 B、存在量词 C、自然连接 D、等值连接
7、规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常、更新异常以及___的缺陷
A、 数据不一致性 B、结构不合理 C、冗余度大 D、数据丢失
8、数据库数据的正确性和相容性是数据库的______。
A、安全性 B、可维护性 C、完整性 D、并发控制
9、数据库三级模式体系结构主要的目标是确保数据库的___。
A、数据安全性 B、数据独立性
C、最小冗余 D、数据结构规范化
10、后援副本的用途是_____。
A、安全性保障 B、一致性控制 C、故障后的恢复 D、数据的转储
二、简答题(回答要点,并简明扼要作解释。每题5分,共20分)
1、简述数据库系统从哪些方面来保证数据的完整性。
2、简述事务的ACID特性。
3、简述并发控制不当带来的数据不一致性问题。
4、简述数据库系统从哪些方面来保证数据的安全性。
三、编程与关系运算(每题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)
教师表(教师号char(5),教师名称varchar(10),姓别char(2))
Teacher(tno,tname,sex)
选课表(学号char(5)、课程号char(3),成绩tinyint)
SC(sno,cno,grade)
1、 编写一个触发器,当对学生表进行修改时其性别只能是男和女。
2、 编写一个存储过程,依据输入的学号参数,统计该学生的平均分和总分,要求使用游标,不可以使用sum和avg命令。
3、 使用关系代数语言查询选修了’刘红’老师所授的所有课程的同学学号。
4、 使用元组演算语言查询同时选修了‘001’和‘002’两门课程号的同学姓名。
四、综合设计题(共40分)
1、已知:关系模式R(U,F)U=ABCD F={A→C,C→A, B→AC,D→AC} 求:
(1)(AD)F+ ,R的候选码。(5分)
(2)求F的最小函数依赖集,并使用算法将模式R无损连接且保持函数依赖分解到3NF。(5分)
2、设有关系模式R<U,F>,U={A,B,C,D,E},F={A→D,E→D,D→B,BC→D,CD→AB},设有一个分解P={R1(ED),R2(BCD),R3(ACD)}判断该分解是否保持函数依赖,并判断此分解是否具有无损连接性。(10分)
3、对于关系模式R(D,B,I,S,Q,O),设有两个函数依赖集F和G,其中
F={S—>D,I—>B, IS—>Q,B—>O}
G={ S—>D,I—>B, IS—>Q,B—>O ,I—>O }
试判断F和G是否等价。(5分)
4、数据库设计:
设计一个图书馆数据库,此数据库中保存有读者记录,包括读者号、姓名、地址、出生日期、单位。每本图书有书号、书名、作者、出版社。一本书有多个作者。对每本借出的书有借出日期和应还日期。一个读者可以借多本书。要求:
1)画出E-R图(5分)
2)根据需要可以增加属性,转换为满足3NF的关系模式(5分)
3)给出主键约束和外键约束(5分)
4)注:关系名和属性名用汉字
五、优化与并发(每题5分,共10分)
1、设有二个事务T、U,下面的并发操作是否正确,若不正确请使用时间戳方法解决其冲突,设Ts(T)<Ts(U)。(5分)
T
U
Read(b)
Write(b=b-300)
Read(b)
Write(b=b+300)
2、优化中的算法描述:根据排序—合并算法描述下列查询操作的实现。(5分)
select a.cust_id,b.tot_amt,b.order_date,a.tel_no
from customer a ,sales b
where a.cust_id=b.cust_id
第一学期期末考试试卷答案
试卷代码:03115 授课课时:96
课程名称:数据库系统原理A 适用对象:本科选课班
一、选择题(从下列各题四个答案中选出一个正确答案,每小题1分,共10分)
1、在数据库技术发展的几个阶段中,数据独立性最高的是__A___阶段。
A、数据库系统 B、文件系统 C、人工管理 D、数据项管理
2、在SQL的SELECT语句中,与选择运算对应的命令动词是__C___。
A、SELECT B、FROM C、WHERE D、ORDER BY
3、在数据库中,下列说法_A__是不正确的
A、数据库避免了一切数据的重复
B、若系统是完全可以控制的,则系统可确保更新是的一致性
C、数据可以共享
D、数据库减少了冗余
4、在数据库系统中,模式/外模式映像用于解决数据的_C__
A、结构独立性 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、数据库三级模式体系结构主要的目标是确保数据库的_B__。
A、数据安全性 B、数据独立性
C、最小冗余 D、数据结构规范化
10、后援副本的用途是_C____。
A、安全性保障 B、一致性控制 C、故障后的恢复 D、数据的转储
评分标准:
每题1分
二、简答题(回答要点,并简明扼要作解释。每题5分,共20分)
1、简述数据库系统从哪些方面来保证数据的完整性。
①列级约束:数据类型、宽度、缺省值、检查约束、是否空值、唯一约束
②主键约束、
③外键约束、
④用户自定义约束:主要通过触发器完成
评分标准:
1) 写出列级约束 2分
2) 写出主键约束 1分
3) 写出外键约束 1分
4) 写出用户自定义约束 1分
2、简述事务的ACID特性
①原子性(A):事务中的操作要么全做,要么一个也不做
②一致性(C):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
③隔离性(I):一个事务的执行不能被其它事务干扰
④持续性(D):一个事务一旦提交,它对数据库中数据的修改应该是永久的
评分标准:
1) 写出原子性 1分
2) 写出隔离性 1分
3) 写出一致性 2分
4) 写出持续性 1分
3、简述并发控制不当带来的数据不一致性问题
①丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1的结果,导致T1的修改被丢失
②不可重复读: 是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果
③ 读“脏”数据: 是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致。则T2读到了“脏”数据,即不正确的数据。
④产生上述三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。
评分标准:
1) 写出丢失修改 1分
2) 写出不可重复读 1分
3) 写出读“脏”数据 2分
4) 写出主要原因 1分
4、简述数据库系统从哪些方面来保证数据的安全性。
①身份认证:提供用户标识和密码的确认
②用户操作对象的权限:通过授权机制
③视图:只显示用户可以作用的属性及记录
④存储过程:通过存储过程实现对不具有操作权限的数据
评分标准:
1) 写出用户身份认证 2分
2) 写出用户操作对象的权限 1分
3) 写出视图 1分
4) 写出存储过程 1分
三、编程与关系运算(每题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)
教师表(教师号char(5),教师名称varchar(10),姓别char(2))
Teacher(tno,tname,sex)
选课表(学号char(5)、课程号char(3),成绩tinyint)
SC(sno,cno,grade)
5、 编写一个触发器,当对学生表进行修改时其姓别只能是男和女。
create trigger StudentUpdate
on Student
for update
as
begin
if exists (select * from inserted
where sex not in ('男','女'))
rollback
end
评分标准:
1) 写出create trigger on Student 1分
2) 写出for update 1分
3) 写出
if exists (select * from inserted
where sex not in ('男','女')) 2分
4) 写出rollback 1分
6、 编写一个存储过程,依据输入的学号参数,统计该学生的平均分和总分,要求使用游标,不可以使用sum和avg命令。
create procedure SearchSumBySno(@sno char(5))
as
begin
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
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 '平均分'
end
end
评分标准:
1)定义游标 1分
2) 定义变量 1分
3) 给变量赋值 1分
4) 游标的打开、获取和关闭 1分
5) 循环条件 1分
7、 使用关系代数语言查询选修了’刘红’老师所授的所有课程的同学学号。
∏sno,cno(SC)÷∏cno(σtname=’刘红’ (Teacher)∞Course)
评分标准:
1)σtname=’刘红’ (Teacher) 1分
2)与Course表的连接 1分
3)作除法运算 2分
4)括号正确 1分
8、 使用元组演算语言查询同时选修了‘001’和‘002’两门课程号的同学姓名。
{t|ヨuヨvヨw(Student(u)∧SC(v) ∧SC(w) ∧v[2]=’001’∧w[2]=’002’
∧v[1]=w[1] ∧u[1]=v[1] ∧t[1]=u[2])}
评分标准:
1)写出存在量词 1分
2)写出自表连接运算v[1]=w[1] ∧u[1]=v[1] 2分
3)写出选取条件v[2]=’001’∧w[2]=’002’ 1分
4)写出投影运算t[1]=u[2] 1分
四、综合设计题(共40分)
1、已知:关系模式R(U,F)U=ABCD F={A→C,C→A, B→AC,D→AC} 求:
(1)(AD)F+ ,R的候选码。(5分)
(2)求F的最小函数依赖集,并使用算法将模式R无损失连接且保持函数依赖分解为3NF。(5分)
解:
(1)(AD)F+=ADC,候选码:BD
(2)最小函数依赖集:Fmin={A→C,C→A,B→A,D→A},
将模式R无损失连接且保持函数依赖分解为3NF,P={AC,BA,DA,BD}。
评分标准:
(1)(AD)F+=ADC (2分)
(2)候选码:BD(3分)
(3)F的最小函数依赖集是(2分)
(4)P={AC,BA,DA,BD}(3分)
2、设有关系模式R<U,F>,U={A,B,C,D,E},F={A→D,E→D,D→B,BC→D,CD→AB},设有一个分解P={R1(ED),R2(BCD),R3(ACD)}判断该分解是否保持函数依赖,并判断此分解是否具有无损连接性。(10分)
解 :(1)求出F的最小函数依赖集F’={A→D,E→D,D→B,BC→D,CD→A}
又因为: F’+ =( Fi)+,则R<U,F>的分解р={R1,R2,R3}保持函数依赖。
所以,该分解能保持函数依赖关系。(5分)
(2)又因为:
A
B
C
D
E
R1
b11
a2
b13
a4
a5
R2
a1
a2
a3
a4
b25
R3
a1
a2
a3
a4
b35
可以得到没有一行全为a,所以该分解为有损分解。(5分)
3、对于关系模式R(D,B,I,S,Q,O),设有两个函数依赖集F和G,其中F={S—>D,I—>B, IS—>Q,B—>O} G={ S—>D,I—>B, IS—>Q,B—>O ,I—>O }
试判断F和G是否等价。(5分)
解:因为F G+,G F+ 所以F和G等价。
评分标准:
1)F G+ (2分)
2)G F+ (2分)
3)F和G等价 (1分)
4、数据库设计:
设计一个图书馆数据库,此数据库中保存有读者记录,包括读者号、姓名、地址、出生日期、单位。每本图书有书号、书名、作者、出版社。一本书有多个作者。对每本借出的书有借出日期和应还日期。一个读者可以借多本书。要求:
1)画出E-R图(5分)
2)根据需要可以增加属性,转换为满足3NF的关系模式(5分)
3)给出主键约束和外键约束(5分)
4)关系名和属性名用汉字
1)画出E-R图
读者
图书
借书
读者号
读者名
地址
年龄
单位
图书号
图书名
作者
出版社
借出日期
应还日期
m n
评分标准:
1)绘出两个实体 2分
2)绘出一个联系 1分
3)每个实体、联系的属性 3分
2)根据需要可以增加属性,转换为满足3NF的关系模式
读者关系(读者号、读者名称、地址、出生日期、单位)
图书关系(图书号、图书名、出版社、出版日期)
图书-作者关系(图书号、作者名称、作者所在单位)
借书主关系(借书号、读者号、借书日期、应还日期)
借书明细关系(借书号、图书号)
评分标准:
每个关系 1分
3)给出主键约束和外键约束
读者关系: 主键:读者号
图书关系: 主键:图书号
图书-作者关系: 主键:图书号+作者名称 外键:图书号
借书主关系: 主键:借书号
借书明细关系: 主键:借书号、图书号
外键1:借书号,外键2:图书号
评分标准:
给出主键 3分
给出外键 2分
五、优化与并发(每题5分,共10分)
1、设有二个事务T、U,下面的并发操作是否正确,若不正确请使用时间戳方法解决其冲突,设Ts(T)<Ts(U)。(8分)
T
U
Read(b)
Write(b=b-300)
Read(b)
Write(b=b+300)
答: 并发操作不正确,可以使用时间戳方法解决其冲突。
数据b T事务 U事务
读时标 写时标 操作
0 0
t1 0 T读b
t2 0 U读b
t2 t2 U更新b
t2 t2 T更新b(不允许,因t1<t2)
t2 t2 回退T并赋予新时标t3
t3 t2 T读b
t3 t3 T更新b
正确的调度:
T事务
U事务
Read(b)
Write(b=b+300)
Read(b)
Write(b=b-300)
评分标准:
1)并发操作不正确,可以使用时间戳方法解决其冲突。(1分)
2)时标表(3分)
3)正确的调度(1分)
2、优化中的算法描述:根据排序—合并算法描述下列查询操作的实现。(5分)
select a.cust_id,b.tot_amt,b.order_date,a.tel_no
from customer a ,sales b
where a.cust_id=b.cust_id
解:
⑴首先对customer 和sales 按连接属性cust_id排序;
⑵取customer表中第一个cust_id,依次扫描sales表中具有相同cust_id的元组,把它们连接起来;
⑶当扫描到cust_id不相同的第一个sales元组时,返回customer表扫描它的下一个元组,再扫描sales表中具有相同cust_id的元组,把它们连接起来;
⑷重复上述步骤直到customer表扫描完。
评分标准:
1)写出第⑴步 1分
2)写出第⑵步 1分
3)写出第⑶步 2分
4)写出第⑷步 1分
展开阅读全文