1 / 20
文档名称:

数据库模拟试题.doc

格式:doc   大小:3,090KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据库模拟试题.doc

上传人:久阅文学 2022/12/3 文件大小:3.02 MB

下载得到文件列表

数据库模拟试题.doc

相关文档

文档介绍

文档介绍:该【数据库模拟试题 】是由【久阅文学】上传分享,文档一共【20】页,该文档可以免费在线阅读,需要了解更多关于【数据库模拟试题 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。数据库模拟试题
一、名词解释题(本题共5小题,每小题2分,共10分)

数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员构成。

数据库的完整性是指数据的正确性和相容性。

关系模式R<U,F>属于1NF,若X→Y且Y不含于X时X必含有码,则R<U,F>属于BCNF

事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行的地执行这些事务时的结果相同,称这种调度策略为可串行化的调度。
二、填空题(本题共14空,每空1分,共14分)


,实体之间的各种联系用关系来表示。
游标是系统为用户开设的一个数据缓冲区,存放SQl语句的执行结果。使用游标的步骤为:
(1)说明游标。
(2)打开游标。
(3)推进游标指针并取当前记录。
(4)关闭游标。
,为什么?
基本原则:
(1)登记的次序严格按并行事务执行的时间次序;
(2)必须先写日志文件,后写数据库。
为什么要先写日志文件?写数据库和写日志文件是两个不同的操作,在这两个操作之间可能发生故障,如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了,如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。

1).从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。
2).由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST,建立两个事务队列:UNDO-LIST和REDO-LIST,把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空。
3).从检查点开始正向扫描日志文件,直到日志文件结束。如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列;如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列
4).对UNDO-LIST中的每个事务执行UNDO操作
对REDO-LIST中的每个事务执行REDO操作

四、理论应用题(本题共3小题,每小题5分,共15分)
<U,F>,U={A,B,C},F={A→B,B→A,B→C},则R属于几范式,为什么?
R属于BCNF,
由F推出A→U和B→U,故该关系有两个码A和B。
由于每个决定因素都是码,故R属于BCNF。
<U,F>,U={A,B,C,D,E,I},F={A→D,AB→E,BI→E,CD→I,E→C}。求AE关于F的闭包。
设X={AE},则X(0)=AE
X(1)=X(0)∪DC=ACDE
由于X(1)≠X(0)
X(2)=X(1)∪I=ACDEI
由于X(2)≠X(1)
X(3)=ACDEI
由于X(3)=X(2),所以AB关于F的闭包为ACDEI
(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),该调度是冲突可串行化的调度吗?为什么?
是,因为该调度可交换为r3(B)w3(B)r2(B)r2(A)w2(B)r1(A)r1(B)w1(A),这是一个串行调度。因此它是一个冲突可串行化调度。

五、实践应用题(本题共6小题,每小题5分,共25分)
用SQL语句在SQL Server2000下实现如下功能。所用数据库表结构如下:
student(学生表):(sno,学号,9字符;sname,姓名,最多4个汉字;ssex,性别,一个汉字;sage,年龄,整数;sdept,所在院系,不超过十个汉字)。
course(课程表):(cno,课程号,5字符;cname,课程名,最多10字符;cpno,先修课号,5字符;credit,学分,整数)。
sc(学生选课表):(sno,学号,9字符;cno,课程号,5字符;grade,成绩,整数)。
,指定sno为主码,学生年龄必须大于16岁,小于60岁。
(‘CS’)男生的视图。
,并允许将此权限再授予其他用户。
‘200215120’选修的全部课程的学生号码。
,当在选课表中插入记录SNO记录插入sc表,当插入的学号不存在时,在学生表中添加相应SNO记录。

(snoCHAR(9)PRIMARYKEY,
SnameCHAR(8),
SsexCHAR(2),
SageINTCHECK(Sagebetween16and60)
SdeptCHAR(20)
)

AS
SELECTsno,sname,sage
FROMstudent
WHEREsdept=‘CS’andSsex=‘男’
(sno),SELECT
ONstudent
TOU2
WITHGRANTOPTION

FROMSCX
WHERENOTEXISTS
(SELECT*
FROMSCY
=‘200215120’AND
NOTEXISTS
(SELECT*
FROMSCZ
=
=))

FORINSERT
AS
IFNOTEXISTS(SELECT*
FROMINSERTED,STUDENT
=)
BEGIN
RAISERROR('同时在学生表中插入相应学生记录',1,1)
INSERT
INTOSTUDENT(SNO)
SELECTSNO
FROMINSERTED
END
六、综合应用题(本题共2小题,每小题10分,共20分)
“数据库”课程的学生的姓名,并进行查询优化。(所用的数据库表结构参见第五题。)
关系代数表达式为πSname(σCname=’数据库’(Course)∞SC∞Student)
SQL表达式为:
SELECTSname
FROMStudent,SC,Course
=
=
Cname=’数据库’。
优化步骤如下:
1).把查询转换成某种内部表示;关系代数语法树如下:
2)把语法树转换成标准形式。
(1)分裂选择运算成如下四个:
=
=
δCname=‘数据库’
(2)使用等价变换规则4-8,把选择运算尽可能向树的叶端靠拢。

(3)根据规则5,把投影与选择运算进行交换,在选择前增加投影操作。将投影运算尽量移向树的叶端。
(4)从虚线处分组,执行时从叶端依次向上进行,每组运算只对关系进行一次扫描。