![]() |
|
本章不是重点章节,主要内容包括数据库保护的四种措施,数据库的恢复、并发控制、完整性和安全性。了解这些内容及其在SQL语言中的实现方式。
一、数据库的恢复( 领会 )来源:www.examda.com
1、 事务的概念 : 事务是一个操作序列 .这些操作要么什么都做,要么都不做,是一个 不可分割 的工作单位。事务以BEGIN TRANSACTION语句开始,以COMMIT(提交)语句或ROLLBACK(回退或撤消)语句结束。来源:www.examda.com
一个程序的执行可通过若干事务的执行序列来完成。来源:www.examda.com
2、 事务的性质 : 原子性 (atomicity)、 一致性 (consistency)、 隔离性 (isolation)和 持久性 (durability)。称为事务的ACID性质。
通过教材的例子来理解事务的性质 .来源:www.examda.com
3、故障类型和恢复方法来源:www.examda.com
4、恢复的基本原则和实现方法来源:www.examda.com
恢复的基本原则 很简单,就是“ 冗余 ”,即数据的重复存储 .
实现方法有:来源:www.examda.com
(1)定期对数据库进行 复制 或转储(dump)。注意几个概念:静态转储、动态转储、海量转储和增量转储。
(2)建立“ 日志 ”文件。来源:www.examda.com
(3) 恢复 .发生故障时有两种处理方法,如数据库已破坏,则由DBA装入最近备份的数据库然后利用“日志文件”执行REDO(重做)操作。如数据库未被损坏,但某些数据不可靠,则系统会自动执行UNDO操作恢复数据。
5、 运行记录优先原则 (即 先记录,再更新,先记完,再结束 )
(1)至少要等相应的运行记录已经写入“日志”文件后,才能允许事务往数据库在写数据。
(2)直到事务的所有运行记录都已写入运行“日志”文件后,才能允许事务完成“END TRANSACTION”处理。
6、SQL中的恢复操作,可上机观察。来源:www.examda.com
二、数据库的并发控制( 领会 )
1、并发控制带来的三类问题:来源:www.examda.com
(1)丢失更新的问题
(2)不一致分析问题
(3)“脏数据”的读出。(在数据库技术中,未提交的随后又被撤消的数据为“脏数据”。)
2、为解决并发控制带来的问题,通常要采用 封锁 (locking)技术,常用的封锁有:排它型封锁( X封锁) 和共享型封锁( S封锁 )两种。
X封锁的规则称为 PX协议 ,其内容为:任何企图更新记录R的事务必须先执行LOCK X(R)操作,以获得对该记录进行寻址的能力,并对它取得X封锁。如果未获得X封锁,那么这个事务进入等待状态,一直到获准X封锁,事务继续进行。
简记为: 先锁X,再执行,取不到,就等待。
PXC协议 :它由PX协议及一条规则“X封锁必须保留到 事务终点 (COMMIT或ROLLBACK)”组成。
S封锁的规则称为 PS协议 :其内容为:任何要更新记录R的事务必须先执行LOCK S(R)操作,以获得对该记录寻址的能力并对它取得S封锁。如果未获准S封锁,那么这个事务进入等待状态,一直到获准S封锁,事务才继续进行下去。当事务获准对记录R的要封锁后,在记录R修改前必须把S封锁升级为X封锁。
简记为: 先锁S,再执行,锁不到,就等待,若要修改则升X .
PSC协议:由PS协议和“将S封锁保持到事务终点”组成。
3、 活锁 :是指某个事务永远处于等待状态,得不到执行的现象。避免活锁的方法是采用“先来先服务”策略。
死锁 :有两个或以上的事务处于等待状态,每个事务都在等待另一个事务解除封锁,它才能继续执行下去,结果任何一个事务都无法执行,这种现象就是死锁。
解除死锁的方法是由DBMS中的“死锁测试程序”来检查,如发现死锁则牺牲一个事务,并做回退操作,解除它的所有封锁。
4、 两段封锁法 ( 识记 )
两段封锁协议规定所有事务都要遵守下列规则:(1)在对任何数据进行读写操作之前,事务首先要获得对该数据的封锁;(2)在释放一个封锁之后,事务不再获得任何其他封锁。
针对课本的例子来理解。 转贴于:自考_考试大
[1] [2]