当前位置:   article > 正文

软考中级——数据库系统工程师

数据库系统工程师

第十一章—事务管理

自己关于备考软考中级(数据库系统工程师)的一些知识点的补充
  • 1

1 事务的基本概念

1.1事务定义语句

  • BEGIN TRANSACTION:事务开始
  • END TRANSACTION:事务结束
  • COMMIT:事务提交。事务成功地结束,它将通知事务管理器该事务的所有更新操作,现在可以被提交或永久地保留。
  • ROLLBACK:事务回滚。事务非成功地结束,它将通知事务管理器出故障了,数据库可能处于不一致状态,该事务的所有更新操作必须回滚或撤消。

1.2 事务的特性(ACID)

  • 原子性(Atomicity):不可分割性,事务的所有操作要么都做,要么都不做。
  • 一致性(Consistency):事务运行的结果保持数据的一致性,数据的平衡。一致性可以由DBMS的完整性约束机制来自动完成,复杂的事务则由应用程序来完成。
  • 隔离性(Isolation):多个事务的执行操作互不干扰,相互隔离。
  • 持久性(Durability):一个事务一旦提交,它对事务的改变必须是永久的。

2 数据库的并发控制

2.1事务调度

  • 串行调度:多个事务串行执行,一个事务所有操作都执行完成在执行另一个事务,N个事务有N!种正确的串行调度。
  • 并发调度:利用分时的方法同时处理多个事务,调度方案远大于N!个。并发调度的结果与某个串行调度的结果相同,则此并发调度是正确的。
  • 可恢复调度:当事务Tj要读事务Ti写的数据时,事务Ti必须要先于事务Tj提交。

2.2并发操作带来的问题

不一致性有三类:丢失修改、不可重复读、读脏数据。

  • 丢失修改:缺少了另一个事务对结果的修改。
  • 不可重复读:同一事务内对同一组数据的相同运算结果不同。
  • 读脏数据:事务T1对C做修改,事务T2读取C,随后事务T1回滚,事务T2读取的C无效,所读为丢掉的的垃圾值
    在这里插入图片描述

2.3两段锁协议

1.封锁协议:一级封锁协议、二级封锁协议、三级封锁协议。

  • 一级封锁协议:事务T对A修改前对其加X锁,直至事务结束才释放。解决了丢失修改的问题。
  • 二级封锁协议:在一级封锁协议上,在事务T读取A前必须对其加上S锁,读完即可释放S锁。解决了读脏数据的问题。
  • 三级封锁协议:在一级封锁协议上,在事务T读取前必须对其加S锁,直至事务及诶苏才释放S锁。解决了不可重复读的问题。

2.两端锁协议:任何数据进行读写之前必须对该数据加锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁。两段的含义是指事务分为两个阶段,第一阶段是获得封锁(称为扩展阶段),第二阶段是释放封锁(称为收缩阶段)。

2.4活锁与死锁

  • 活锁:事务T1封锁了数据R,事务T2等待,T1释放锁,系统先批准了事务T3,T3释放了,系统批准了事务T4。T2永远等待,解决方法,先到先服务
  • 死锁:两个以上的事务分别请求封锁对方已经封锁的数据,互相等待。解决办法,选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有的锁,使其他事务得以继续允许下去

死锁的预防:一次封锁法或顺序封锁法
死锁的诊断:超时法或事务等待图法

3 数据库的故障与恢复

3.1故障种类(四类)

  • 1.事务故障:由于程序执行错误而引起。逻辑错误,非法输入、找不到数据、溢出、超出资源限制等原因引起的事务执行失败;系统错误,系统进入一种不良状态(如死锁),导致事务无法继续执行。事务故障意味着没有达到预期的终点(COMMIT或者ROLLBACK),数据库处于不正确状态。恢复操作为事务撤消(UNDO)
  • 2.系统故障:、硬件故障(CPU故障)、软件(DBMS、OS或应用程序)漏洞的影响下,影响了正在运行的所有事务,但不破坏数据库。恢复操作为对撤消队列中的各个事务进行撤消处理(UNDO),对重做队列中的各个事务进行重做处理(REDO)
  • 3.介质故障:数据库的存储介质发生故障,如磁盘损坏、瞬间强磁场干扰。恢复操作为重装数据库,然后重做已完成的事务
  • 4.计算机病毒:一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序。

3.2恢复的实现技术

恢复的基本原理:冗余
建立冗余数据的的技术:数据转储登记日志文件

  • 数据转储:数据库恢复中采用的基本技术。两种状态:动态转储、静态转储。两种方式:海量转储、增量转储。
    - 动态转储:转储期间允许对数据库进行存取或修改。
    - 静态转储:转储期间不允许对数据进行存取或修改。
    - 海量转储:每次转储全部数据库。
    - 增量转储:每次只转储上一次转储后更新过的数据。
  • 登记日志文件
    -日志文件的主要格式:以记录为单位、以数据快为单位。
    -日志文件的作用:1.事务故障恢复和系统故障恢复必须用日志文件;2.在动态转储中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库;3.在静态转储中也可以建立日志文件。
    -登记日志文件需遵循的两条原则:1.登记的次序严格按并发事务执行的事件次序;2.必须先写日志文件,后些数据库。

最后,我也是成功拿证了~~

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/375859
推荐阅读
相关标签
  

闽ICP备14008679号