数据库期末考试模拟题.docx
《数据库期末考试模拟题.docx》由会员分享,可在线阅读,更多相关《数据库期末考试模拟题.docx(9页珍藏版)》请在冰豆网上搜索。
数据库期末考试模拟题
2003-2004学年第二学期期末考试
2001级《数据库系统概论》试题A
一、选择题(20分,每小题2分):
1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
在这几个阶段中,数据独立性最高的是____阶段。
A.数据库系统B.文件系统
C.人工管理D.数据项管理
2.对关系模型叙述错误的是____。
A.建立在严格的数学理论、集合论和谓词演算公式的基础之上
B.微机DBMS绝大部分采取关系数据模型
C.用二维表表示关系模型是其一大特点
D.不具有连接操作的DBMS也可以是关系数据库系统
3.关系运算中花费时间可能最长的运算是____。
A.投影B.选择C.笛卡尔积D.除
4.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系____。
A.SB.SC,CC.S,SCD.S,C,SC
5.FoxBASE、FoxPro属于________。
A.表式系统B.最小关系系统
C.关系完备的系统D.全关系系统
6.关系规范化中的删除操作异常是指________。
A.不该删除的数据被删除B.不该插入的数据被插入
C.应该删除的数据未被删除D.应该插入的数据未被插入
7.在关系数据库设计中,设计关系模式是____的任务。
A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段
8.从E-R模型关系向关系模型转换时,一个M:
N联系转换为关系模式时,该关系模式的码是____。
A.M端实体的码B.N端实体的码
C.M端实体码与N端实体码组合D.重新选取其他属性
9.下面哪个不是数据库系统必须提供的数据控制功能____。
A.安全性B.可移植性C.完整性D.并发控制
10.设有两个事务T1、T2,其并发操作如图1所示,下面评价正确的是____。
A该操作不存在问题B.该操作丢失修改
C.修改该操作不能重复读D.该操作读“脏”数据
T1T2
①读A=10,B=5
②读A=10
A=A*2写回
③读A=20,B=5
求和25验证错
图1事务并发操作图
二、填空题(20分,每小空2分):
1.①是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。
2.若事务T对数据对象A加了S锁,则其他事务只能对数据A再加②,不能加③,直到事务T释放A上的锁。
3.关系操作的特点是④操作。
4.关系代数中,从两个关系中找出相同元组的运算称为
运算。
5.在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则:
保持原有的函数依赖和
。
6.SQL语言的数据定义功能包括
、
、
和
。
三、简答题(15分,每小题5分):
1.使用数据库系统有什么好处?
2.叙述数据字典的主要任务和作用?
3.简要叙述关系数据库的优点?
四、综合题(45分):
1.某医院病房计算机管理中需要如下信息:
(10分)
科室:
科名,科地址,科电话,医生姓名
病房:
病房号,床位号,所属科室名
医生:
姓名,职称,所属科室名,年龄,工作证号
病人:
病历号,姓名,性别,诊断,主管医生,病房号
其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
完成如下设计:
(1)设计该计算机管理系统的E-R图;(5分)
(2)将该E-R图转换为关系模型结构;(3分)
(3)指出转换结果中每个关系模式的候选码。
(2分)
2.设有关系S、SC、C,试用关系代数、元组关系演算表达式和SQL完成下列操作。
(15分,每小题5分)
S(S#,SNAME,AGE,SEX)例:
(001,'李强',23,’男')
SC(S#,C#,SCORE)例:
(003,'C1',83)
C(C#,CNAME,TEACHER)例:
('C1','数据库原理','王华')
(1)用关系代数检索选修课程号(C#)为C1和C2的学生学号(S#)。
(2)用元组关系演算表达式检索选修了“程军”老师所授课程之一的学生姓名。
(2)用元组关系演算表达式检索选修了“程军”老师所授课程之一的学生学号。
(3)用SQL找出选修了“程军”老师教的所有课程的学生姓名。
3.设有关系模式R(U,F),其中:
(10分)
U={E,F,G,H},F={E→G,G→E,F→EG,H→EG,FH→E}
求F的最小依赖集。
4.设有关系R和函数依赖F:
(10分)
R(W,X,Y,Z),F={X→Z,WX→Y}。
试求下列问题:
(1)关系R属于第几范式?
(5分)
(2)如果关系R不属于BCNF,请将关系R逐步分解为BCNF。
(5分)
要求:
写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。
试题答案
一、选择题(20分,每小题2分):
1.A2.D3.C4.D5.B6.A7.C8.C9.B10.C
二、填空题(20分,每小空2分):
1.①事务
2.②S锁③X锁
3.④集合
4.
交
5.
无损连接
6.
定义数据库
定义基本表
定义视图
定义索引
三、简答题(15分,每小题5分):
1.使用数据库系统有什么好处?
答:
使用数据库系统的好处是:
·查询迅速、准确,而且可以节约大量纸面文件;
·数据结构化,并由DBMS统一管理;
·数据冗余度小:
·具有较高的数据独立性;
·数据的共享性好;
·DBMS还提供了数据的控制功能。
2.叙述数据字典的主要任务和作用?
答:
数据字典的任务就是管理有关数据的信息,所以又称为“数据库的数据库”。
它的任务主要有:
(1)描述数据库系统的所有对象,并确定其属性。
如一个模式中包含的记录型与一个记录型包含的数据项;用户的标识、口令;物理文件名称、物理位置及其文件组织方式等。
数据字典在描述时赋给每个对象一个惟一的标识。
(2)描述数据库系统对象之间的各种交叉联系。
如哪个用户使用哪个子模式,哪些模式或记录型分配在哪些区域及对应于哪些物理文件、存储在何种物理设备上。
(3)登记所有对象的完整性及安全性限制等。
(4)对数据字典本身的维护、保护、查询与输出。
数据字典的主要作用是:
(1)供数据库管理系统快速查找有关对象的信息。
数据库管理系统在处理用户存取时,要经常查阅数据字典中的用户表、子模式表和模式表等。
(2)供数据库管理员查询,以掌握整个系统的运行情况。
(3)支持数据库设计与系统分析。
3.简要叙述关系数据库的优点?
答:
关系数据库是以关系模型作为数据的组织方式,关系模型是建立在严格的数学概念基础上的,关系数据库的主要优点是概念简单清晰,用户不需了解复杂的存取路径,不需说明“怎么干”,只需说明“干什么”,易懂易学。
四、综合题(45分):
1.
解:
(1)本题的E-R图如图2所示。
(2)对应的关系模型结构如下:
科室(科名,科地址,科电话)
病房(病房号,床位号,科室名)
医生(工作证号,姓名,职称,科室名,年龄)
病人(病历号,姓名,性别,诊治,主管医生,病房号)
(3)每个关系模式的候选码如下:
科室的候选码是科名;
病房的候选码是科室名十病房号;
医生的候选码是工作证号;
病人的候选码是病历号。
图2E-R图
2.设有关系S、SC、C,试用关系代数、元组关系演算表达式和SQL完成下列操作。
(15分,每小题5分)
S(S#,SNAME,AGE,SEX)例:
(001,'李强',23,’男')
SC(S#,C#,SCORE)例:
(003,'C1',83)
C(C#,CNAME,TEACHER)例:
('C1','数据库原理','王华')
(1)用关系代数检索选修课程号(C#)为C1和C2的学生学号(S#)。
ΠS#,C#(SC)ΠC#(σC#=’C1’C#=’C2’(C))-σC#’C1’C#’C2’(ΠS#,C#(SC)ΠC#(σC#=’C1’C#=’C2’(C)))
(2)用元组关系演算表达式检索选修了“程军”老师所授课程之一的学生姓名。
{T
(1)|(U)(V)(W)(S(U)∧SC(V)∧C(W)∧T[1]=U[1]∧U[1]=V[1]∧V[2]=W[1]∧W[3]='程军')}
(2)用元组关系演算表达式检索选修了“程军”老师所授课程之一的学生学号。
{T
(1)|(V)(W)(SC(V)∧C(W)∧T[1]=V[1]∧V[2]=W[1]∧W[3]='程军')}
(3)用SQL找出选修了“程军”老师教的所有课程的学生姓名。
SELECTS.SNAME
FROMS
WHERENOTEXISTS
(
SELECT*
FROMC
WHEREC.TEACHER='程军'ANDNOTEXISTS
(
SELECT*
FROMSC
WHERESC.C#=C.C#ANDSC.S#=S.S#
)
)
本题解释:
SELECT*
FROMC
WHEREC.TEACHER='程军'ANDEXISTS
(
SELECT*
FROMSC
WHERESC.C#=C.C#
)
这条SQL是查询'程军'所授的所有课程,外层查询中C.C#作为变量在内层查询中被使用,外层教师'程军'所授课程的课程号C#给内层,内层根据该课程号C#在SC中查询是否存在这样的课程号,即程军所授的课程,如果存在则括号中的记录集不空,EXISTS条件为TRUE。
因此,执行结果是显示程军所授的所有课程。
SELECT*
FROMC
WHEREC.TEACHER='程军'ANDNOTEXISTS
(
SELECT*
FROMSC
WHERESC.C#=C.C#
)
这条SQL语句在刚才语句的EXISTS前加了NOT,变成当内层查询全部是'程军'所授课程时NOTEXISTS条件为假。
SELECTS.SNAME
FROMS
WHERENOTEXISTS(SELECT*
FROMC
WHEREC.TEACHER='程军'ANDNOTEXISTS
(
SELECT*
FROMSC
WHERESC.C#=C.C#ANDSC.S#=S.S#
)
这条是完整的语句,比上面一条语句多了一个ANDSC.S#=S.S#表示某个学生的学号,加上最外层的NOTEXISTS的整个语句的含义是,对该某个学生,如果最内层查询中查询结果全部是‘程军’所授课程时,条件C.CNAME='程军'ANDNOTEXISTS为FALSE,所以SELECT*FROMC的查询结果为空(第二层),这时最外层的NOTEXISTS为TRUE,最外层查找成功,该学生是选修了‘程军’所授全部课程的。
3.设有关系模式R(U,F),其中:
(10分)
U={E,F,G,H},F={E→G,G→E,F→EG,H→EG,FH→E}
求F的最小依赖集。
解:
将F中右部属性单一化:
(2分)
F1={E→G,G→E,F→E,F→G,H→E,H→G,FH→E}
去掉左部冗余的属性。
对于FH→E,由于有F→E,则为多余的。
F2={E→G,G→E,F→E,F→G,H→E,H→G}(2分)
去掉冗余的函数依赖。
F2中的F→E和F→G,以及H→E,H→G之一是冗余的,则:
F3={E→G,G→E,F→G,H→G}(6分)
4.设有关系R和函数依赖F:
(10分)
R(W,X,Y,Z),F={X→Z,WX→Y}。
试求下列问题:
1.关系R属于第几范式?
(5分)
2.如果关系R不属于BCNF,请将关系R逐步分解为BCNF。
(5分)
要求:
写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。
解:
R是1NF。
侯选码为WX,则Y,Z为非主属性,又由于X→Z,因此F中存在非主属性对侯选码的部分函数依赖。
将关系分解为:
R1(W,X,Y),F1={WX→Y}
R2(X,Z),F2={X→Z}
消除了非主属性对码的部分函数依赖。
F1和F2中的函数依赖都是非平凡的,并且决定因素是候选码,所以上述关系模式是BCNF。