一、选择题
1. B 2. B 3. C 4. A 5. C
6. D 7. A 8. C 9. D 10. D
11. B 12. B 13. A 14. D 15. A
二、填空题
- 安全性控制、完整性控制、并发性控制、数据库恢复
- 数据对象、操作类型
- 授权粒度、授权表中允许的登记项的范围
- 原始数据(或明文)、不可直接识别的格式(或密文)、密文
- 事务、原子性、一致性、隔离性、持久性
- 丢失更新、污读、不可重读
- 封锁、排它型封锁、共享封锁
- 利用数据的冗余
- 登记日志文件、数据转储
- 事务故障、系统故障、介质故障
- 海量转储和增量转储
- 静态转储和动态转储
- 完整性
- 登录账号、用户账号
- public
- 服务器、数据库
三、简答题
1.什么是数据库保护?数据库的安全性保护功能包括哪几个方面?解释它们的含义。
数据库保护又叫做数据库控制,是通过四方面实现的,即安全性控制,完整性控制,并发性控制和数据恢复。
数据库的安全性是指保护数据库以防止非法使用所造成数据的泄露、更改或破坏。
数据库的完整性是指防止合法用户使用数据库时向数据库中加入不符合语义的数据。
数据的并发性控制是指对数据共享时数据的并发读取操作进行控制,以保持数据库中数据的一致性,即在任何一个时刻数据库都以相同形式给用户提供数据。
数据的恢复是指在数据库放生故障的时候,能够把数据从错误状态恢复到某一正确状态。
2.什么是数据库的安全性?试述DBMS提供的安全性控制功能包括哪些内容。
数据库的安全性是指保护数据库以防止非法使用所造成的数据泄露、更改或破坏。DBMS提供的安全性控制功能主要包括:用户标识和鉴定、用户存取权限控制、定义视图、数据加密和审计等几类。
3.什么是数据库的完整性?关系数据库中有哪些完整性规则,各包括哪些内容?
数据库的完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。
完整性规则主要由以下三部分构成。
(1)触发条件:规定系统什么时候使用完整性规则来检查数据。
(2)约束条件:规定系统检查用户发出的操作请求违背了什么样的完整性约束条件。
(3)违约响应:规定系统如果发现用户发出的操作请求违背了完整性约束条件,应该采取一定的动作来保证数据的完整性,即违约时要做的事情。
4.什么是事务?事务的提交和回滚是什么意思?
事务是数据库系统中执行的一个工作单位,它是由用户定义的一组操作序列。
COMMIT表示事务的提交,即将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,此时事务正常结束;
ROLLBACK表示事务的回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤销,再回滚到事务开始时的状态。
5.在数据库中为什么要有并发控制?
为了充分利用数据库资源,很多时候数据库用户都是对数据库系统并行存取数据,这样就会发生多个用户并发存取同一数据的情况,如果对并发操作不加控制可能会产生不正确的数据,破坏数据的完整性。并发控制就是要解决这类问题,以保持数据库中数据的一致性,即在任何一个时刻数据库都将以相同的形式给用户提供数据。
6.并发操作会带来什么样的后果?
数据库的并发操作导致的数据库不一致性主要丢失更新(Lost Update)、污读(Dirty Read)和不可重读(Unrepeatable Read)三种。
7.什么是封锁?封锁的基本类型有几种,含义如何?
所谓封锁就是当一个事务在对某个数据对象(可以是数据项、记录、数据集以及整个数据库)进行操作之前,必须获得相应的锁,以保证数据操作的正确性和一致性。基本的封锁类型有两种:排他型封锁和共享封锁。
排他型封锁又称写封锁,简称为X封锁,它采用的原理是禁止并发操作。
共享封锁又称读封锁,简称为S锁,它采用的原理是允许其他用户对同一数据对象进行查询,但不能对该数据对象进行修改。
8.试述发生死锁的条件和消除死锁的常用方法。
发生死锁的必要条件有以下四个。
互斥条件:一个数据对象一次只能被一个事务所使用,即对数据的封锁采用排他式。
不可抢占条件:一个数据对象只能被占有它的事务所释放,而不能被别的事务强行抢占。
部分分配条件:一个事务已经封锁分给它的数据对象,但仍然要求封锁其他数据。
循环等待条件:允许等待其他事务释放数据对象,系统处于加锁请求相互等待的状态。
预防死锁常用的方法有一次加锁法和顺序加锁法两种,如果已经发现死锁,DBA从依赖相同资源的事务中抽出某个事务作为牺牲品,将它撤销,解除它的所有封锁,释放此事务占用的所有数据资源,分配给其他事务,使其他事务得以继续运行下去
9.数据库运行过程中可能产生的故障有哪几类,各类故障如何恢复?
数据库运行过程中可能出现的故障可分为以下三类:事务故障、系统故障和介质故障。
1.事务故障(Transaction Failure)及其恢复
事务故障表示由非预期的、不正常的程序结束所造成的故障。发生事务故障时,被迫中断的事务可能已对数据库进行了修改,为了消除该事务对数据库的影响,要利用日志文件中所记载的信息,强行回滚(ROLLBACK)该事务,将数据库恢复到修改前的初始状态。
2.系统故障(System Failure)及其恢复
系统故障是指系统在运行过程中,由于某种原因,造成系统停止运转,致使所有正在运行的事务都以非正常方式终止,要求系统重新启动。系统故障的恢复要完成两方面的工作,既要撤销所有未完成的事务,还需要重做所有已提交的事务。
3.介质故障(Media Failure)及其恢复
介质故障是指系统在运行过程中,由于辅助存储器介质受到破坏,使存储在外存中的数据部分丢失或全部丢失。解决此问题需要装入发生介质故障前最新的数据库后备副本,然后利用日志文件重做该副本所运行的所有事务。
10.简述规则和CHECK约束的区别与联系。
联系:
规则(Rule)就是数据库对存储在表中的列或用户自定义数据类型中的值的规定和限制。
规则和CHECK约束都是实施数据完整性的方法;规则和CHECK约束都可用于规定和限制表中列的值;规则和CHECK约束可以同时使用。
区别:相比之下,在ALTER TABLE或CREATE TABLE命令中使用的CHECK约束是更标准的限制列值的方法,但CHECK约束不能直接作用于用户自定义数据类型。规则是单独存储的独立的数据库对象,CHECK约束与其作用的表存储在一起;规则与其作用的表或用户自定义的数据类型是相互独立的,CHECK约束与其作用的表及列是紧密联系的;表的一列或一个用户自定义数据类型只能与一个规则绑定,而表的一列可以同时由多个CHECK约束。