【数据库系统概论】第十章、十一章:数据库恢复技术、并发控制

2023-11-18

第十章:数据库恢复技术

事务

事务的四大特性:ACID。

A-原子性:
要么全做,要么全不做。

C-一致性
一致性与原子性密切相关,要么全做,要么全不做,否则就会导致数据的不一致。比如:银行汇钱,两边都有操作才行。

I-隔离性
一个事务的执行不能被其他事务所干扰。

D-持久性
数据库的改变是永久的,比如要落入磁盘。

故障

故障的种类:

  1. 事务内部的故障:采取REDO重做和UNDO撤销技术
  2. 系统故障:系统突然停转,系统要重启
  3. 介质故障:硬件损坏
  4. 计算机病毒

ps:
REDO-重做
UNDO-不做了

恢复技术

数据转储:对失败的事务重新执行
日志文件:记录事务对数据的更新操作的文件

恢复策略

对事务故障的恢复:事务异常终止,那么撤销之前的所有操作
对系统故障的恢复:还没执行完的事务UNDO,丢失的事务REDO
对介质故障的恢复:重装数据库,重做已完成的事务

检查点之前的就是已经保存了的,所以T1不要重做。
Tf时,系统故障,此时T3和T5都没做完,所以要撤销。
T2,T4已经做完(丢失了),所以要重做。
在这里插入图片描述

第十一章:并发控制

并发带来的问题和解决

带来的问题

  1. 丢失修改
  2. 读脏数据
  3. 不可重复读

丢失数据:我修改的东西丢失了。如我把票价改成11元,但结果还是原来的21元。

读脏数据:我读的数据是已经撤回的无效数据。如我把车票改成1元,发现太便宜了,撤回。结果还没来得及撤回,就被别人读到了。

不可重复读:在同一个事务中,连续两次读到的数据不一样。比如我第一次读到的票价为1元,结果一个人把它偷偷改成21元,我第二次读就是21元了。

在这里插入图片描述
解决方法

引入锁的概念:

  1. 排它锁:写锁——X锁
  2. 共享锁:读锁——S锁

封锁协议

一级封锁协议
修改时,必须加X锁,直到结束——解决丢失修改

二级封锁协议
读的时候,加S锁,用完就放——解决读脏数据

三级封锁协议
读的时候,加S锁,直到结束——解决不可重复读

在这里插入图片描述

死锁和活锁

死锁:多个锁相互等待,互相谦让,没人上锁。
如:
T1有A,并把它上锁了,等待B。
T2有B,并把它上锁了,等待A。

活锁:该锁永远等待,得不到机会上锁。
(类似饥饿)

可串行性

并发调度中的某一次的结果与串行调度一致,称为可串行化。

可串行化是事务正确调度的准则。

举个例子:
先执行A,再执行B,再执行C的结果为D1.
A、B、C同时执行的结果为D2.
若D1与D2相同,则可串行化。

两段锁协议
上锁的过程与解锁的过程分别在两边。
若遵循两段锁协议,则上S锁和上X锁都在左边,解锁都在右边。
在这里插入图片描述

封锁的粒度

封锁粒度大,并发度小,开销小。
封锁粒度小,并发度大,开销大。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【数据库系统概论】第十章、十一章:数据库恢复技术、并发控制 的相关文章

随机推荐

  • Hutool工具类excel导出详细教程

    Hutool工具类excel导出 1 导入依赖
  • wxpython 用calendarctrl制作日历以及显示当前日期在statictext上

    calendar的日期显示 def beginEvent self event dlgb wx Dialog None id 1 title Calendar size 300 200 self datepick wx adv Calend
  • Leetcode 1解题思路以及代码整理

    Two Sum Description Given an array of integers return indices of the two numbers such that they add up to a specific tar
  • 虚拟列表的实现思路(附带react代码)

    虚拟列表实现思路 代码链接 div class 滚动容器 div class 撑起列表正常高度 div div class 列表容器 div class 列表项 div div div 1 列表项 的高度确定 2 利用 滚动容器 的高度计算
  • 114个计算机毕业设计项目,适用于所有JAVA计算机专业毕业生,不走弯路

    对于将要面临毕业设计的计算机专业的学生们 挑选题目和完成设计项目可能是一个复杂而又让人头痛的问题 今天 我们会向大四的学生分享一些毕业设计项目 希望能为你解决一些难题 一 成品列表 以下所有springboot框架项目的源码博主已经打包好上
  • Ansys workbench 云图如何不显示边框

    由于对workbench不熟悉 走了很多弯路 云图上有边框总是不好看 但是又不知道在哪里关掉它 经过一番摸索终于找到了 关闭前 关闭方法 工具栏 WireFrame 按钮 点一下即可 希望对有需要的朋友有用
  • 蓝桥杯:基础练习 特殊回文数(java实现)

    问题描述 123321是一个非常特殊的数 它从左边读和从右边读是一样的 输入一个正整数n 编程求所有这样的五位和六位十进制数 满足各位数字之和等于n 输入格式 输入一行 包含一个正整数n 输出格式 按从小到大的顺序输出满足条件的整数 每个整
  • MySQL 重命名表名 2种方法

    今天用 phpMyAdmin 创建了一张表后 发现 表名字 取得有点后悔 想直接删除重新创建一个 但是这个表的字段又有点多 居然有30多个字段 后来就找到了MySQL表重命名的方法 也可以说是MySQL修改表名称 先创建一张表 创建用户表
  • Navicat连接本地数据库,报错误:2059

    错误 使用Navicat Premium 连接MySQL时出现如下错误 原因 mysql8 之前的版本中加密规则是mysql native password 而在mysql8之后 加密规则是caching sha2 password 解决
  • 小程序云函数使用

    1 开通云开发 2 project config json 文件中加入配置 cloudfunctionRoot cloudFuction description 项目配置文件 cloudfunctionRoot cloudFuction 3
  • SSHUtil填写入参报错Too many characters in character literal

    当光标放到错误上面 提示Too many characters in character literal 翻译过来就是符字面量太多 解决方法 就是把单引号改成双引号就可以了 参考 https blog csdn net for him ar
  • 初级PHP工程师对于进阶的思考

    突然想写篇博客记录下刚毕业这段时间的经历 主要是对于人生的下一阶段的思考和诸多事物触起的思考 一 人生的下一阶段 人生的意义从来不是为自己奋斗 生活的意义也从来不是奋斗 今年毕业 距离博文发表的现在约莫有2个月 毕业前的我是一个极度执着追求
  • 四十六.冒泡排序C语言实现

    include
  • SeleniumLibrary4.5.0 关键字详解(七)

    SeleniumLibrary4 5 0 关键字详解 七 库版本 4 5 0 库范围 全局 命名参数 受支持 简介 SeleniumLibrary是Robot Framework的Web测试库 本文档说明了如何使用SeleniumLibra
  • FbxSDK使用总结

    Fbx文件结构太复杂 FbxSDK太难理解 Fbx官网文档功能介绍太不清晰 FbxSDK中的示例程序太冷门 太不解决问题 网络上找不到能够解决我的痛点的方法 有相同烦恼的不只我一个人 一个叫 Tianyu Lang 的歪果仁也发出抱怨 并怒
  • 常见芯片算力对比(一)

    常见芯片算力对比 一 Hi3559A 即Hi3559ARFCV100 4T算力 封装 FC BGA 常备 Hi3519A Hi3519ARFVV100 才是AI芯片 2T算力 kirin980 4 2TOPS kirin990 10T算力
  • 性能测试与压力测试

    一 性能测试指软件运行的各方面指标 百度百科定义 性能测试 是通过自动化的测试工具模拟多种正常 峰值以及异常负载条件来对系统的各项性能指标进行测试 多用户并发性能测试 负载测试 强度测试 容量测试是性能测试领域里的几个方面 其实压力测试也属
  • Ubuntu16.04 安装 Anaconda

    前言 对于我这个新手来说 安装Pandas以及其余的NumPy 和SciPy等工具包可能会有点困难 最简单的方法不是直接安装Pandas 而是安装Python和构成SciPy数据科学技术栈的最流行的工具包 IPython NumPy Mat
  • 【排错】-vSphere with Tanzu - SupervisorControlPlaneVM 卡在 NotReady 状态

    故障 最近机房意外断电 导致所有虚拟机关机 等来电之后 开启了所有虚拟机 业务均恢复正常 奇怪的是 Tanzu Workload Management Supervisor 集群 的状态为NotReady 导致部分业务pod不能正常访问 如
  • 【数据库系统概论】第十章、十一章:数据库恢复技术、并发控制

    文章目录 第十章 数据库恢复技术 事务 故障 恢复技术 恢复策略 第十一章 并发控制 并发带来的问题和解决 死锁和活锁 可串行性 封锁的粒度 第十章 数据库恢复技术 事务 事务的四大特性 ACID A 原子性 要么全做 要么全不做 C 一致