当前位置:文档之家› 数据库管理系统试题及答案样本

数据库管理系统试题及答案样本

一、简答题( 共5小题, 每题6分, 共30分)
1.简述数据库、数据库管理系统与数据库系统的概念。

答: 数据库: DataBase, 简称DB。

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

数据库中的数据按一定的数据模型组织、描述和储存, 具有较小的冗余度、较高的数据独立性和易扩展性, 并可为各种用户共享。

数据库管理系统: DataBase Management System, 简称DBMS, 是位于用户与操作系统之间的一层数据管理软件, 用于科学地组织和存储数据、高效地获取和维护数据。

它的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护。

数据库系统: DataBase System, 简称DBS, 它是包含数据库的具体应用系统, 由支持该应用系统的某一具体的数据库、数据库管理系统和应用程序三部分组成。

2.简述两段锁协议并说明两段锁协议和事务可串行化调度的关系。

答: 所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。

1、在对任何数据进行读、写操作之前, 首先要申请并获得对该数据的封锁;
2、在释放一个封锁之后, 事务不再申请和获得任何其它封锁。

如果事务中所有的加锁操作都在事务的第一个解锁操作之前进行, 那么这个事务是遵循两段锁协议的。

如果一个调度中的每个事务都遵循两段锁协议, 那么该调度必然是冲突可串行化的。

事务遵守两段锁协议是可串行化调度的充分条件, 而不是必要条件。

3.简述可串行化调度和正确调度。

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

可串行性是并发事务正确性的准则, 按这个准则规定, 一个给定的并发调度, 当且仅当它是可串行化的, 才认为是正确调度。

4.简述数据库中的死锁现象, 并简述如何使用有向图方法检测死锁。

答: 死锁是指当两个或多个事务相互等待对方所拥有的锁被释放时, 所产生的僵持局面。

有向图G=( T, U) 。

T为结点的集合, 每个结点表示正运行的事务; U为边的集合, 每条边表示事务等待的情况。

若T1等待
T2, 则T1, T2之间划一条有向边, 从T1指向T2。

事务等待图动态地反映所有事务的等待情况, 并发控制子系统周期性地检测事务等待图, 如果发现图中存在回路, 则表示系统中出现了死锁。

5.简述事务的ACID特性以及数据库管理系统是如何保证这些特性的。

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

它具有四个特性: 原子性( Atomicity) 、一致性( Consistency) 、隔离性( Isolation) 和持续性( Durability) 。

数据库管理系统采用日志和锁机制来保证事务的ACID特性。

用日志记录事务对数据库所做的更新, 如果某个事务在执行过程中发生错误, 就能够根据日志, 撤销事务对数据库已做的更新, 使数据库退回到执行事务前的初始状态, 而当多个事务同时更新数据库中相同的数据时, 只允许持有锁的事务能更新该数据, 其它事务必须等待, 直到前一个事务释放了锁, 其它事务才有机会更新该数据。

二、填空( 共10空, 每空2分, 共20分)
1.一个学生能够同时借阅零本或多本图书, 一本图书只能由一个
学生借阅, 可是能够不被学生借阅,
,
2.在关系模式中, 如果属性X、 Y之间有1∶1联系, 则存在函数依赖X «Y; 如果属性X、 Y之间有1∶m联系, 则存在函数依赖
3.E-R阶段使用。

4.在SQL语言中, 为了数据库的安全性, 设置了对数据的存取进
行控制的语句, , 收回所授的权
5那么在函数依赖范畴内,它已实现了彻底的分离。

6.关系数据库中有三种基本操作分别对应关系代数三种操作, 从
从表中选出满足
将两个关系中具有共同属性值的元
组连结到一起,
三、结构化查询语言SQL( 共5小题, 每题4分, 共20分)
对于如下关系模式:
Student (sNo, sName, sSex, sAge, sDept)
Course (cNo, cName, cPNo, cCredit, teacher)( 其中, cPNo 为课程先修课号, teacher为授课教师)
SC (sNo, cNo, score)
使用SQL语句完成以下操作:
( 1) 查询选修了课程号为”001”或者课程号为”002”的学生姓名;
select sName from Student where sNo in (select sNo from SC where cNo='001' or cNo='002')
( 2) 查询至少选修了课程号为”001”和课程号为”002”两门课程的学生姓名;
select sName from Student where sNo in (select sNo from SC where cNo='001') and sno in (select sNo from SC where cNo='002') ( 3) 查询平均成绩小于等于60分的课程名称;
select cName from Course where cNo in (select cNo from SC group by cNo Having AVG(score)<=60)
( 4) 查询先修课程名为”信息系统导论”的课程名称;
select cName from Course where cPNo = (select cNo from Course where cName = '信息系统导论')
( 5) 将所有学生”数据库系统”课程成绩增加10分。

update SC set score=score + 10 where cNo = (select cNo from Course where cName = '数据库系统')
四、设计题( 20分)
在一个教师信息管理系统中提供以下信息:
系: 系代号、系名、联系电话、联系地址。

相关主题