2018年河南科技大学信息工程学院341农业知识综合三[专业硕士]之数据库系统概论考研基础五套测试题
● 摘要
一、简答题
1. 具有检查点的恢复技术有什么优点? 试举一个具体例子加以说明。
【答案】(1)在采用检查点技术之前,利用日志技术进行数据库的恢复时需要从头扫描日志文件,而利用检查点技术只需要从检查点所处时间点起开始扫描日志,这就缩短了扫描日志的时间,改善恢复效率。
(2)例如当事务T 在一个检查点之前提交,T 对数据库所做的修改已经写入数据库,那么在进行恢复处理时,没有必要对事务T 执行REDO 操作。
2. 什么是NoSQL ,试述NoSQL 系统在人数据库发展中的作用。
【答案】(1)NoSQL 是以互联网大数据应用为背景发展起来的分布式数据管理系统,它有两种解释:一种是 Non-Relational ,即非关系数据库;另一种是Not Only SQL, 即数据管理技术不仅仅是SQL 。NoSQL 系统支持的 数据模型通常分为
:
(document )。
(2)NoSQL 系统为了提高存储能力和并发读写能力采用了极其简单的数据模型,支持简单的查询操作,而 将复杂操作留给应用层实现。该系统对数据进行划分,对各个数据分区进行备份,以应对结点可能的失败,提高 系统可用性;通过大量结点的并行处理获得高性能,釆用的是横向扩展的方式(scale out)。
3. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种小致的情况?
【答案】(1)并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。
①丢失修改。两个事务
致的修改被丢失。 ②不可重复读。不可重复读是指事务读取数据后,事务
一次读取结果。
③读“脏”数据。读“脏”
数据是指事务修改某一数据,并将其写回磁盘,事务
据后,由于某种原因被撤销,这时已修改过的数据恢复原值,
数据不一致,则读到的数据就为“脏”数据,即不正确的数据。
(2)产生上述三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。
第 2 页,共 59 页 模型、BigTable 模型、文档读入同一数据并修改,提交的结果破坏了提交的结果,导
无法再现前读取同一数执行更新操作,使读到的数据就与数据库中的
4. 在操作系统中也有并发控制问题,为什么数据库管理系统还要并发控制机制?
【答案】操作系统提供的封锁机制和DBMS 的封锁机制在封锁对象、封锁对象的状态、封锁
DBMS 的粒度、及封锁的类型上存在很大的差别,操作系统的封锁机制不能直接应用在DBMS 中,
必须重新设计,来满足复杂的封锁需求。
5. 试述数据库管理系统的基本功能。
【答案】DBMS 具有如下基本功能:
(1)数据库定义和创建
创建数据库主要是用数据定义语言DDL 定义和创建数据库模式、外模式、内模式等数据库对象。
(2)数据组织、存储和管理
DBMS 要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。
(3)数据存取
提供用户对数据的操作功能,实现对数据库数据的检索、插入、修改和删除。
(4)数据库事务管理和运行管理
DBMS 运行控制和管理功能。这些功能保证了数据库系统的正常运行,保证了事务的ACID 特性。
(5)数据库的建立和维护
数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及性能监测分析等功能。
(6)其他功能
包括DBMS 与网络中其他软件系统的通信功能;一个DBMS 与另一个DBMS 或文件系统的数据转换功能;异构数据库之间的互访和互操作功能等。
6. 关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?
【答案】关系代数的基本运算包括并、差、笛卡尔积、投影和选择5种运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。
(1)交运算:
(2)连接运算:
(3)除运算:
7. 如何用封锁机制保证数据的一致性?
DBMS 在对数据进行读、【答案】写操作之前首先对该数据执行封锁操作,例如图中事务
对A 进行修改之前先对A 执行Xlock A,即对A 加X 锁。这样,当
绝,只能等待释放A 上的锁后才能获得对A 的X 锁,这时它读到的A 是
第 3 页,共 59 页 在请求对A 加X 锁时就被拒更新后的值,再
按此新的A 值进行运算。这样就不会丢失
致性。
的更新。DBMS 按照一定的封锁协议,对并发操作进行控制,使得多个并发操作有序地执行,避免了丢失修改、不可重复读和读“脏”数据等数据不一
图
8. 假设已建立了学生基本表 Student (SnO , Sname,Ssex , Sage,Sdept ),课程基本表 Course (Cno , Cname, Ccredit ),基本表SC (Sno , Cno,Grade ),试用SQL 的授权和回收语句完成下列操作:
(1)把查询Student 表的权限授予用户U1。
(2)把对Student 表和Course 表的全部权限授予用户U2和U3。
(3)把对表SC 的查询权限授予所有用户。
(4)把查询Student 表和修改学生学号的权限授给用户U4。
(5)把对表SC 的INSERT 权限授予U5, 并允许他再将此权限授予其他用户。
(6)DBA 把在数据库S C中建立表的权限授予用户U8。
(7)把用户U4修改学生学号的权限收回。
(8)收回所有用户对表SC 的查询权限。
(9)把用户U5对SC 表的INSERT 权限收回。
【答案】(1) GRANT SELECT ON TABLE Student TO U1
(2)GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3
(3)GRANT SELECT ON TABLE SC TO PUBLIC
(4)GRANT UPDATE (Sno ),SELECT ON TABLE Student TO U4
(5)GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION
(6)GRANT CREATE1: AB ON DATABASE S C TO U8
(7)REVOKE UPDATE (Sno ) ON TABLE Student FROM U4
(8)REVOKE SELECT ON TABLE SC FROM PUBLIC (9 ) REVOKE INSERT ON TABLE SC FROM U5
第 4 页,共 59 页