文档库 最新最全的文档下载
当前位置:文档库 › 数据库模拟试题

数据库模拟试题

一、名词解释题(本题共5小题,每小题2分,共10分)

1.数据库系统

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

2.数据库完整性

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

3.BCNF

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

4.事务

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

5.可串行化性

多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行的地执行这些事务时的结果相同,称这种调度策略为可串行化的调度。

二、填空题(本题共14空,每空1分,共14分)

1.整体数据的结构化是数据库系统与文件系统的本质区别。

2.数据库中数据的独立性是由数据库的二级映象功能保证的。

3.在关系模型中,实体之间的各种联系用关系来表示。

4.实体完整性规则规定,若属性A是基本关系R的主属性,则A不能取空值。

5. 查询优化时当要进行等值连接的诸表已经排序的情况下,一般采用排序连接方法。

6. 分E-R图的冲突主要有三类:属性冲突、命名冲突和结构冲突。

7. 数据库恢复的基本原理就是利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库。

8. 并发操作带来的数据不一致性主要包括:丢失修改、不可重复读、读脏数据等。

9. 如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁。

三、简答题(本题共4小题,每小题4分,共16分)

1.试述强制存取控制方法。为什么强制存取控制比自主存取控制更安全?

强制存取控制方法中,对每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意对象,只有具有合法许可证的用户才可以存取。因此强制存取控制相对比较严格。MAC是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。

2.什么是游标?试述在嵌入式SQL中游标的使用步骤

游标是系统为用户开设的一个数据缓冲区,存放SQl语句的执行结果。使用游标的步骤为:

(1)说明游标。

(2)打开游标。

(3)推进游标指针并取当前记录。

(4)关闭游标。

3.登记日志文件要遵循什么原则,为什么?

基本原则:

(1)登记的次序严格按并行事务执行的时间次序;

(2)必须先写日志文件,后写数据库。

为什么要先写日志文件?写数据库和写日志文件是两个不同的操作,在这两个操作之间可能发生故障,如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了,如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。

4.简述数据库系统中具有检查点的恢复技术的步骤。

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分)

1.若有关系模式R,U={A,B,C},F={A→B, B→A,B→C },则R属于几范式,为什么?

R属于BCNF,

由F推出A→U 和B→U,故该关系有两个码A 和B 。

由于每个决定因素都是码,故R属于BCNF。

2.对关系模式R,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

3.今有3个事务的一个调度r3(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,成绩,整数)。

1.建立表student,指定sno为主码,学生年龄必须大于16岁,小于60岁。

2.建立计算机系(‘CS’)男生的视图。

3.把查询student表和修改学生学号的权限授予用户u2,并允许将此权限再授予其他用户。

4.查询至少选修了学生‘200215120’选修的全部课程的学生号码。

5.创建一个触发器,当在选课表中插入记录SNO记录插入sc表,当插入的学号不存在时,在学生表中添加相应SNO记录。

1.CREATE TABLE student

(sno CHAR(9) PRIMARY KEY,

Sname CHAR(8),

Ssex CHAR(2),

Sage INT CHECK(Sage between 16 and 60)

Sdept CHAR(20)

)

2.CREATE VIEW CS_Student

AS

SELECT sno,sname,sage

FROM student

WHERE sdept=‘CS’and Ssex=‘男’

3.GRANT UPDATE(sno),SELECT

ON student

TO U2

WITH GRANT OPTION

4.SELECT DISTINCT Sno

FROM SC X

WHERE NOT EXISTS

(SELECT *

FROM SC Y

WHERE Y.Sno=‘200215120’AND

NOT EXISTS

(SELECT *

FROM SC Z

WHERE Z.Sno=X.Sno

AND https://www.wendangku.net/doc/c913800353.html,o=https://www.wendangku.net/doc/c913800353.html,o))

5.CREATE TRIGGER SC_ins ON SC

FOR INSERT

AS

IF NOT EXISTS(SELECT *

FROM INSERTED,STUDENT

WHERE INSERTED.SNO=STUDENT.SNO)

BEGIN

RAISERROR('同时在学生表中插入相应学生记录',1,1)

INSERT

INTO STUDENT(SNO)

SELECT SNO

FROM INSERTED

END

六、综合应用题(本题共2小题,每小题10分,共20分)

1.分别用关系代数和SQL语句完成下列查询选修了“数据库”课程的学生的姓名,并进行查询优化。(所用的数据库表结构参见第五题。)

关系代数表达式为πSname(σCname=’数据库’(Course)∞SC∞Student)

SQL表达式为:

SELECT Sname

FROM Student,SC,Course

WHERE Student.Sno=SC.Sno AND

https://www.wendangku.net/doc/c913800353.html,o=https://www.wendangku.net/doc/c913800353.html,o AND

Cname=’数据库’。

优化步骤如下:

1).把查询转换成某种内部表示; 关系代数语法树如下:

2)把语法树转换成标准形式。

(1)分裂选择运算成如下四个:

δStudent.Sno=SC.Sno

δhttps://www.wendangku.net/doc/c913800353.html,o=https://www.wendangku.net/doc/c913800353.html,o

δCname=‘数据库’

(2)使用等价变换规则4-8,把选择运算尽可能向树的叶端靠拢。

(3)根据规则5,把投影与选择运算进行交换,在选择前增加投影操作。将投影运算尽量移向树的叶端。

(4)从虚线处分组,执行时从叶端依次向上进行,每组运算只对关系进行一次扫描。

2.设计一个图书馆数据库,数据库中对每个借阅者存有:读者号,姓名,地址,性别,年龄,单位。对每本书存有:书号,书名,作者,出版社。对每本被借出的书存有:借出日期和应还日期。根据上述语义要求,回答下列问题:

(1)画出E-R图;

(2)将E-R图转换为关系模式,并指出每个关系模式的主码。

E-R图如下:

转化为关系模式为:

读者实体转化为:读者(读者号,姓名,地址,性别,年龄,单位),码为(读者号);

图书实体转化为:图书(书号,书名,作者,出版社),码为(书号);

二者的联系转化为:借阅(读者号,书号,借出日期,应还日期),码为(读者号,书号)。

一、名词解释题(本题共5小题,每小题2分,共10分)

1.数据库

数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。

2.数据库安全性

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。

3.4NF

关系模式R属于1NF,如果对于R的每个非平凡多值依赖X→→Y(Y不含于X),X都含有码,则

R属于4NF

4.事务

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

5.数据库恢复

数据库管理系统具有的把数据库从错误状态恢复到某一已知的正确状态的功能,叫做数据库的恢复。

二、填空题(本题共14空,每空1分,共14分)

1.整体数据的结构化是数据库系统与文件系统的本质区别。

2.关系代数中,从两个关系中找出相同元组的运算称为并运算。

3.事务遵守两段锁协议是可串行化调度的充分条件。

4.设计概念结构通常有四类方法:自顶向下、自底向上、逐步扩张和混合策略。

5. 查询优化时当要进行等值连接的诸表既未排序也无索引,且其中一个表较小时,则可以采用Hash连接方法。

6. 分E-R图的冲突主要有三类:属性冲突、命名冲突和结构冲突。

7. 数据库的完整性是指数据的正解性和相容性。

8. 并发操作带来的数据不一致性主要包括:丢失修改、不可重复读、读脏数据

等。

9. 在数据库并发控制中,两个或多个事务同时处在相互等待状态,称为死锁。

三、简答题(本题共4小题,每小题4分,共16分)

1.试述强制存取控制方法。为什么强制存取控制比自主存取控制更安全?

强制存取控制方法中,对每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意对象,只有具有合法许可证的用户才可以存取。因此强制存取控制相对比较严格。MAC是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。

2.什么是游标?试述在嵌入式SQL中游标的使用步骤

游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。使用游标的步骤为:

(1)说明游标。

(2)打开游标。

(3)推进游标指针并取当前记录。

(4)关闭游标。

3.试述在具有检查点的恢复技术中,动态维护日志文件的步骤。

动态维护日志文件的方法是周期性地执行如下操作:建立检查点,保存数据库状态。具体步骤如下:

(1)将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上;

(2)在日志文件中写入一个检查点记录;

(3)将当前数据缓冲区的所有数据记录写入磁盘的数据库中;

(4)把检查点记录在日志文件中的地址写入一个重新开始文件。

4.简述数据库系统中系统故障的恢复步骤。

.(1)正向扫描日志文件(即从头扫描日志文件),建立如下两个队列:

重做(REDO) 队列: 在故障发生前已经提交的事务;

撤销 (Undo)队列:故障发生时尚未完成的事务。

(2)对撤销(Undo)队列事务进行撤销(UNDO)处理。反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。

(3)对重做(Redo)队列事务进行重做(REDO)处理。正向扫描日志文件,对每个REDO事务重新执行登记的操作,即将日志记录中“更新后的值”写入数据库。

四、理论应用题(本题共3小题,每小题5分,共15分)

1.判断任何一个二目关系都是3NF吗?也是BCNF?为什么?

任何一个二目关系都是3NF,也是BCNF。

不妨设任意一个二目关系R(A,B)。

若无函数依赖,则为全码,则属于3NF,BCNF

若只有A→B,则A为码,则属于3NF,BCNF

若只有B→A,则B为码,则属于3NF,BCNF

若既有A→B,也有B→A,则A,B均为码。则属于3NF,BCNF

2.设有依赖集:F={AB→C,C→A,BC→D,D→EG,BE→C,CG→BD,CE→AG},计算其等价的最小依赖集。

首先将右边属性单一化,结果为:

F1={AB→C,C→A,BC→D,ACD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→A,CE→G}

其次在F1 中去掉多余的函数依赖,CG→B。

F2= {AB→C,C→A,BC→D,ACD→B,D→E,D→G,BE→C,CE→A,CE→G}

最后去掉左边多余的属性。对于CE→A可去掉E;对于ACD→B,可去掉A。得到:

F2= {AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→D,CE→G}

3.今有3个事务的一个调度r3(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,成绩,整数)。

1.建立表sc,指定外键sno参照学生表的sno,当删除学生表时级联删除sc表相应记录。

2.删除计算机系(‘CS’)所有女生的选课记录。

3.把查询student表和修改学生学号的权限授予用户u2,并允许将此权限再授予其他用户。

4.查询至少选修了学生‘200215120’选修的全部课程的学生号码。

5.用嵌入式SQL语句实现,某个学生新选修了某门课程,将有关课程号在主变量couno中,成绩主变量为gr,对应指示变量为grid,成绩初始为空。

1.EATE TABLE sc

(sno CHAR(5),

Cno CHAR(5),

Grade INT,

FRIENGN KEY (sno) REFREENCES student(sno)

ON DELETE CASCADE

)

2.DELETE

FROM SC

WHERE ‘CS’=

(SELECT sdept

FROM student

WHERE student.sno=sc.sno AND Ssex=‘女’)

3.GRANT UPDATE(sno),SELECT

ON student

TO U2

WITH GRANT OPTION

4.SELECT DISTINCT Sno

FROM SC X

WHERE NOT EXISTS

(SELECT *

FROM SC Y

WHERE Y.Sno=‘200215120’AND

NOT EXISTS

(SELECT *

FROM SC Z

WHERE Z.Sno=X.Sno

AND https://www.wendangku.net/doc/c913800353.html,o=https://www.wendangku.net/doc/c913800353.html,o))

5.grid=-1;

EXEC SQL INSERT

INTO SC(sno,cno,grade)

VALUES(:stdno,:couno,:gr:grid);

六、综合应用题(每小题10分,共20分)

1.对关系模式R(U,V,W,X,Y,Z),其函数依赖集F={U→V,W→Z,Y→U,WY→X},现有下列分解,分别判别是否为无损连接分解。

(1)ρ1={WZ,VY,WXY,UV};

(2)ρ2={UVY,WXYZ}。

(1)ρ1的初始判定表如下:(5分)

最终判定表如下:

没有一行全为a,故不是无损连接

(2)R1∩R2={Y},R1-R2={UV},R2-R1={WXZ},而Y→UV属性F+,故是无损连接。

2.设计一个图书馆数据库,数据库中对每个借阅者存有:读者号,姓名,地址,性别,年龄,单位。对每本书存有:书号,书名,作者,出版社。对每本被借出的书存有:借出日期和应还日期。根据上述语义要求,回答下列问题:

(1)画出E-R图;

(2)将E-R图转换为关系模式,并指出每个关系模式的主码。

E-R图如下:

转化为关系模式为:

读者实体转化为:读者(读者号,姓名,地址,性别,年龄,单位),码为(读者号);

图书实体转化为:图书(书号,书名,作者,出版社),码为(书号);

二者的联系转化为:借阅(读者号,书号,借出日期,应还日期),码为(读者号,书号)。

相关文档
相关文档 最新文档