第十一章—事务管理

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

文章目录

  • 第十一章—事务管理
    • 1 事务的基本概念
      • 1.1事务定义语句
      • 1.2 事务的特性(ACID)
    • 2 数据库的并发控制
      • 2.1事务调度
      • 2.2并发操作带来的问题
      • 2.3两段锁协议
      • 2.4活锁与死锁
    • 3 数据库的故障与恢复
      • 3.1故障种类(四类)
      • 3.2恢复的实现技术

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.必须先写日志文件,后些数据库。

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

软考中级——数据库系统工程师相关推荐

  1. 2023年上半年软考中级数据库系统工程师如何高效备考?难吗?

    考试题型介绍: (1)基础知识,考试时间为150分钟,笔试,满分75分.45分及格. (2)应用技术,考试时间为150分钟,笔试,满分75分.45分及格. (3)只有基础知识.应用技术均在45分(含) ...

  2. 软考中级数据库系统工程师好考吗?

    数据库还好的,每年五月份考试,通过率20-30%. 数据库系统工程师,主要考核内容:数据库系统基本概念及关系理论:常用的大型数据库管理系统的应用技术:数据库应用系统的设计方法和开发过程:数据库系统的管 ...

  3. 软考中级数据库系统工程师备考

    中国计算机技术职业资格网,报名官网网址:https://www.ruankao.org.cn/ 1.考试介绍 计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试)是原中国计算机软件专 ...

  4. 2023 软考中级 数据库系统工程师 考试题型

  5. 计算机软考中级网络工程师,如何复习计算机软考中级网络工程师更有效

    原标题:如何复习计算机软考中级网络工程师更有效 教材是基础知识最好的来源,教材中每一章课后都会总结出本章重点以及考点,这对我们有模块的复习很有帮助.对于教材而言,盛泰鼎盛认为目录是很重要的,当你能够清 ...

  6. (干货)备战2021年软考中级网络工程师-04知识产权与标准化

    备战2021年软考中级网络工程师-04知识产权与标准化 本文目录 一.前言 二.中级网络工程师复习笔记-04知识产权与标准化 (一)知识产权 1.著作权人的确定 2.著作权法保护对象 3.著作权保护期 ...

  7. 软考-中级-网络工程师-笔记-第1章-计算机网络概论

    第1章 计算机网络概论 1.1 计算机网络的形成和发展 1977年 ISO制定了OSI/RM参考模型 ARPAnet 1984年 TCP/IP正式标准(DoD) 1.2 计算机网络的分类和应用 按功能 ...

  8. 软考中级网络工程师必背考试知识点集锦(三)

    软考中级网络工程师必备考试知识点第三弹!建议大家点赞收藏,复习的时候拿出来背一背. 十二.计算机组成 程序计数器(PC):用于存储指令的地址,程序员可以访问 指令寄存器(IR):用于暂存内存中取出的, ...

  9. 软考-中级-网络工程师-笔记-第4章-局域网与城域网

    第4章 局域网与城域网 4.1 局域网体系和拓扑结构 4.1.1局域网和城域网体系结构IEEE 4.2 CSMA/CD载波侦听多路访问/冲突检测 4.2.1 CSMA/CD 在共享型网络里面解决冲突的 ...

  10. 软考-中级-网络工程师-笔记-第5章-无线通信

    第5章 无线通信网 5.1 WLAN基础 移动通信发展 模拟蜂窝 数字蜂窝 蜂窝通信系统的频率复用 移动通信制式 运营商 2G 3G 4G 备注 中国移动 GSM TD-SCDMA TD-LTE 2 ...

最新文章

  1. 堡垒机的使用-及功能
  2. 做 SQL 性能优化真是让人干瞪眼
  3. JAVA字节码指令iload_n为什么只有0到3?
  4. MUI 上滑加载(没有更多数据)页面回弹 - 效果
  5. Python项目生成requirements.txt的多种方式
  6. 学习笔记-error LNK2019
  7. 蓝桥杯 ALGO-21算法训练 装箱问题 java版
  8. selenium自动化测试框架_自动化测试框架
  9. 差分pid模块_基于数字PID切换控制的Buck变换器研究
  10. miniconda安装BWA 以及miniconda的环境配置
  11. Java多线程系列--“JUC线程池”
  12. java多线程(简单介绍)
  13. JQuery常用属性整理
  14. STM32之UART、RS232、RS485通讯
  15. textcnn模型实践
  16. Unity-人物移动
  17. Unity 代码加密 Mono 编译与加密 windows版
  18. 加速打开win10自带图片查看器
  19. 我在知乎学写作 | 知乎写作课
  20. qt -- QTableWidget的使用

热门文章

  1. 【联想拯救者R7000】安装nvidia驱动Perform MOK management 界面键盘失灵现象(已解决)
  2. ddos php源码,ddos PHP版_php
  3. 数据挖掘导论课后习题答案-第六章
  4. cadence入门学习
  5. 廖雪峰Git学习 | 笔记五:撤销修改
  6. iso12233测试方法_详解ISO12233 Chart(分辨率测试标板)使用方法
  7. SQL2008安装教程
  8. Java之函数式接口
  9. 服务器远程预览本地设备视频, 预览多个,打不开视频流
  10. 尚硅谷大数据技术之 Flink-CDC(转)