数据库系统及应用复习——第十章数据库恢复技术与第十一章并发调度的可串行性

本文介绍了数据库恢复技术,包括事务的原子性、一致性和隔离性等性质,以及针对不同故障类型的恢复策略。同时,讨论了并发控制的重要性,特别是如何避免丢失更新、不可重复读和读脏数据等问题,提出了封锁技术,如X封锁和S封锁,以及解决死锁和活锁的方法。并发调度的可串行化和两段锁协议确保了事务的正确执行。
摘要由CSDN通过智能技术生成

第十章数据库恢复技术

一、数据库的恢复

1、事务的概念:事务是一个操作序列。事务以BEGIN TRANSACTION语句开始,以COMMIT(提交)语句或ROLLBACK(回退或撤消)语句结束。 一个程序的执行可通过若干事务的执行序列来完成。

2、事务的性质:

原子性(atomicity):这些操作要么什么都做,要么都不做,是一个不可分割的工作单位。

一致性(consistency):一个符合逻辑的稳定状态到另一个符合逻辑的稳定状态

隔离性(isolation):并发执行的事务之间是不能互相干扰的

持久性(durability):一个事务一旦提交对数据的改变就是永久的。

3、故障类型和恢复方法

故障类型恢复方法:

  • 事务故障:应用程序自动进行恢复;
  • 系统故障:重新启动时则恢复子系统将所有非正常终止的事务回退,恢复到正确状态;
  • 介质故障:通过DBMS把其他务份磁盘或第三级介质中的内容再复制回来

4、恢复的基本原则和实现方法

恢复的基本原则:“冗余”,即数据的重复存储。

实现方法有:

(1)定期对数据库进行复制或转储(dump)。(静态转储(无运行事务时进行)、动态转储(随时可以,转储与事务并发执行)、海量转储(一次性转储全部数据库)和增量转储(每次只转储更新部分)。)

(2)建立“日志”文件。(更新操作,用于恢复)

5、运行记录优先原则(即先记录,再更新,先记完,再结束)

(1)至少要等相应的运行记录已经写入“日志”文件后,才能允许事务往数据库在写数据。

(2)直到事务的所有运行记录都已写入运行“日志”文件后,才能允许事务完成“END TRANSACTION”处理。

具有有检查点的恢复技术:P303UNDO队列与REDO队列
重新开始文件/检查点(日志文件中)

第十一章并发调度的可串行性

 1、并发控制带来的三类问题:  

  • (1)丢失更新的问题(同时读,同时修改,后者的修改使得前者的修改丢失了)
  • (2)不可重复读(一个事务要都多次,另一个事务要修改)
  • (3)读“脏数据”。(一个读,一个写了又撤销; 未提交的随后又被撤销)    

P311图11.2

问题的主要原因:办法操作破坏了事务的隔离性

2、为解决并发控制带来的问题,通常要采用封锁(locking)技术,常用的封锁有:排它型封锁(X封锁)(写锁)和共享型封锁(S封锁)(读锁)两种。  

X最强,IS最弱

P322图11.11数据锁的相容矩阵

 3、死锁和活锁

活锁:是指某个事务永远处于等待状态,得不到执行的现象。

方法:采用“先来先服务”策略。    

死锁:有两个或以上的事务处于等待状态,每个事务都在等待另一个事务解除封锁,它才能继续执行下去,结果任何一个事务都无法执行,这种现象就是死锁。    

方法:由DBMS中的“死锁测试程序”来检查,如发现死锁则牺牲一个事务,并做回退操作,解除它的所有封锁。    

意向锁:对于某个结点加意向锁,则说明该节点的下层结点正在被加锁。

4、并发事务正确调度的准则是事务可串行化。    

5、事务遵守两段锁协议是可串行化调度的充分条件

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值