数据库管理系统试题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库管理系统试题及答案
————————————————————————————————作者:————————————————————————————————日期:
2
一、简答题(共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特性。用日志记录事务对数
1 / 7
据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对
数据库已做的更新,使数据库退回到执行事务前的初始状态,而当多个事务同时更新数
据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前
一个事务释放了锁,其他事务才有机会更新该数据。
二、填空(共10空,每空2分,共20分)
1.一个学生可以同时借阅零本或多本图书,一本图书只能由一个学生借阅,但是可以不被学生借阅,则学生和图书之间为一对多的联系,学生在联
系参与性约束中的最小值为 0。
2.在关系模式中,如果属性X、Y之间有1∶1联系,则存在函数依赖X Y;
如果属性X、Y之间有1∶m联系,则存在函数依赖Y->X ;
3.E-R数据模型一般在数据库设计的概念设计阶段使用。
4.在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语
句,对用户授权使用GRANT语句,收回所授的权限使用REVOKE语句。
5.一个关系模式如果满足了 BCNF,那么在函数依赖范畴内,它已实现了
彻底的分离。
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分的课程名称;
2 / 7