事务管理基础:数据库的并发控制相关知识笔记
1、并发操作的概念介绍
并发操作主要是指在多用户共享的系统当中,可能存在很多用户同时对同一个数据进行操作。并发操作会造成丢失更新、不可重复读、读脏数据。主要原因是事务的并发操作破坏了事务的隔离性。
2、事务调度相关知识
事务调度主要有串行调度、并发调度、可恢复调度三种。
2.1 串行调度
串行调度是指多个事务依次串行执行,并且只有当一个事务的所有操作都执行完成后才可以执行另一个事务的所有操作。
特点:串行调度和执行顺序无关,执行的结果都是稳定和正确的,对于N个事务,最多有N!中正确的串行调度。
2.2 并发调度
并发调度是指利用分时的方法同时处理多个事务。针对N个事务进行并发调度,所产生的调度方案远大于N!个,并且并发调度的结果很有可能是错误的。只有并发调度的结果和串行调度的结果一致,才说明并发调度的结果是正确的。
2.3 可恢复调度
如果事务T1提交失败,则应当撤销T1的影响以保证其原子性。在允许并发执行的系统中,还必须保证依赖T1的任何事务T2也中止。比如T2要读写T1写的数据,则称为T2依赖于T1。
可恢复调度应满足:如果事务T2要读取事务T1写的数据时,事务T1必须要先于T2提交事务。这样T2事务读取的数据才是真实可靠的数据。
3、并发操作带来的危害
3.1 丢失修改
丢失修改主要是指多个事务同时对数据库更新操作,正常情况下应该都执行情况,但会因为并发操作,造成其中某些事务的更新操作丢失。比如12306售票系统,同时售出了两张火车票,但数据库中票数只减少了一张,从而造成了数据的不一致。
丢失修改破坏了事务的隔离性。
3.2 不可重复读
比如事务A首先读取了一条数据,然后执行逻辑的时候,事务B将这条数据改变了,然后事务A再次读取的时候,发现数据不匹配了,这就是所谓的不可重复读了。
通俗来说,当前事务先进行了一次数据读取,然后再次读取到的数据是别的事务修改成功的数据,导致两次读取到的数据不匹配,也就照应了不可重复读的语义。
不可重复读干扰了事务的独立性。
3.3 读脏数据
脏读,其实就是读到了其他的事务回滚前的脏数据。比如事务B执行过程中修改了数据X,在未提交前,事务A读取了X,而事务B却回滚了,这样事务A就形成了脏读。
简单来说,当前事务读到的数据是别的事务想要修改成为的但是没有修改成功的数据。
读脏数据时事务隔离性的破坏而破坏了数据的一致性。
IT技术分享社区
个人博客网站:https://programmerblog.xyz
文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识
事务管理基础:数据库的并发控制相关知识笔记相关推荐
- SQLServer数据库文件组相关知识笔记
1.数据库文件组概念 数据库文件被组织在称为"文件组"的逻辑组中.文件组是所创建对象(如表或索引)的目标容器,对象数据将分散在其所在目标文件组的文件中,文件组可以按你要求的方式来控 ...
- 数据库系备份相关知识笔记
1.数据库备份的知识介绍 在互联网时代,最珍贵的财产不是计算机应用软件,更不是计算机硬件,而是企业在业务长期发展过程中积累下来的业务数据.建立网络最根本的用途是更加方便的传递.使用数据,人为原因.硬盘 ...
- SQL语言基础:SQL授权相关知识笔记
1.数据控制 数据控制是控制对用户存取的权力,由DBA来决定.DBMS数据控制与功能: 1.通过GRANT和REVOKE将授权通知系统,并存入数据字典. 2.当用户发起请求时,根据授权情况检查是否执行 ...
- 项目管理基础:系统切换相关知识笔记
1.系统试运行主要任务 对新系统进行初始化.补录各种原始数据记录 记录系统运行过程中的数据和状况 核对新旧系统输出结果是否正确 对实际系统的输入方式进行考察主要包括是否方便.效率.可靠性.误操作保护等 ...
- 计算机网络基础:广域网协议相关知识笔记
广域网常指覆盖范围广.数据传输速率较低,以数据通信为目的的数据通信网.广域网主要是通过专用的或交换式的连接把计算机连接起来.广域网传输协议主要包括:PPP(点对点协议).DDN.ISDN(综合业务数字 ...
- js基础--数据类型检测的相关知识
欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...
- Spring JDBC-Spring事务管理之数据库事务基础知识
概述 数据库事务的概念 原子性 一致性 隔离性 持久性 数据并发的问题 脏读dirty read 不可重复读unrepeatable read 幻象读 phantom read 幻象读和不可重复度的区 ...
- Spring的事务管理和数据库事务相关知识
1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱. ...
- 事务管理:事务的状态相关知识笔记
1.事务的几个概念 中止事务:事务在执行过程中发生故障,不能执行完成的事务.可以进行事务回滚,保持数据库的一致性. 事务回滚:将中止事务对数据库的更新操作撤销称为事务回滚. 已提交事务:成功执行完成的 ...
最新文章
- 软件公司因女员工怀二胎拒绝与其续约
- 【五线谱】踏板标记 ( 踩下踏板 Ped 标记 | 松开踏板 * 标记 | MIDI 中的对应踏板指令 | 连续控制信号 | 开关控制信号 )
- linux下安装navicat并生成桌面图标
- Java 多线程(三) 线程的生命周期及优先级
- 浏览器专属 CSS Hack:区分 Firefox / Opera / Safari / Internet Explorer
- Windows Server 2008 将与 Visual Studio 2008 和 SQL Server 2008 于2008年2月27 日在洛杉矶共同发布...
- 一键免费自动 AI 抠图,效果连 PS 大哥也点赞! | 程序员硬核评测
- [CC-CHEFINV]Chef and Swaps
- 软件工程毕设(二)·任务书
- 2-牛头刨床机构分析
- 14届数独-真题标准数独-Day 7-20220122
- 计算机报名登录老显示验证码错误是怎么回事,为何登录博客时输入了正确的验证码却总提示验证码错误?...
- win10 GPT分区和win 7 mbr 分区的区别
- 5大原因告诉你,Python程序员为何如此难招!
- 深度linux时间.年日调整,deepin深度商店中的Linux版应用体验分享(一)
- 小法表态愿重返枪手 回忆离别一刻赞温格忠诚
- 人工智能笔记之专业选修课4.1.5 - 博弈论 9.重复博弈,效用,随机博弈
- 爬虫学习笔记,从基础到部署。
- 异地多活场景下的数据同步之道
- bazel编译protobuf时 “ERROR: cc_toolchain does not have mandatory provider ‘ProtoInfo‘. “