当前位置: 首页 > news >正文

事务基础概念

事务

事务是什么?

事务是一种机制,一个操作序列,包含了一组数据库操作命令,并且把所有命令作为一个整体一起向系统提交或者撤销操作请求,即统一这组命令要么一起执行,要么一起不执行

简短概况就是:事务即是一组命令序列,他们要么一起执行;要么一起不执行;从而保证了数据的完整性和统一性。

事务的特性

acid特性:原子性,一致性,隔离性,持久性

原子性atomicity

事务是一个不可分割的整体,事务中的所有操作要么一起执行,要么一起不执行。而事务中只要有一个操作不成功,那么整个事务都将会被回滚。 ​ 案例:a向b转账1000元,当只执行了扣款语句时断电了,a账号发生了扣款,b账号却没有收到打款。此时事务的原子性就会来保证事务要么都执行,要么都不执行了。 ​

一致性cinsustency

事务开始前和事务执行结束后,数据库的完整性约束没有被破坏。
即事务开始前,数据库的数据处于一致状态;事务完成时,数据也必须处于一致状态。当事务运行时,数据可能会处于不一致的状态,但当事务完成时,数据必须回到一致状态。

案例:
对银行转账事务,不管事务成功与否,都应该再事务结束后保持前后二者存款总额与事务执行前一致

当多个用户对同一个表进行操作时,可能会出现以下一致性问题:
1脏读
a修改了这条数据但未提交后,此时b却可以看到a这条未提交的修改记录。--脏读

2不可重复读
a在一个事务c内,反复读取同一个数据时。在这个事务还没有结束时,b在另一个事务d中也访问了这个数据。那么,再第一个事务c中读到数次的数据,可能由于第二个事务d的修改,导致第一个事务c读到的数据前后不一致。--不可重复读

3幻读
一个事务对表中的所有数据进行了修改;同时,另一个事务向这个表添加了数据,操作第一个事务的用户会发现:表中还有一行数据没有被修改,像中了幻觉一样。--幻读

4丢失更新
两个事务同时读取同一条记录,a先修改记录,b也修改记录;当b提交后,那么a修改的结果会被b修改的结果覆盖。--丢失更新

隔离性

隔离性确保并发执行事务的状态保存与顺序执行事务时的状态相同

持久性

事务完成后,该事务对数据库所做的更改会持久的保存在数据库中,并且不会被回滚;
即不够系统是否发生故障,事务处理的结果都是永久的。一旦事务被提交,那么事务的效果将会永久的保存在数据库中。

总结

事务管理中,原子性是基础,隔离性是手段,一致性是目的,持久性是结果。

相关文章:

  • HarmonyOS优化应用内存占用问题性能优化四
  • 奇好 PDF安全加密 + 自由拆分合并批量处理 OCR 识别
  • 常见嵌入式软件架构
  • JavaSE常用API之Runtime类:掌控JVM运行时环境
  • UDP和TCP示例程序
  • 机器学习算法-sklearn源起
  • 【JVM 05-JVM内存结构之-堆】
  • RabbitMQ 应用
  • Python知识图谱工具全解析
  • SDL2常用函数:SDL_LoadBMP 数据结构详解与示例
  • ABP VNext + Orleans:Actor 模型下的分布式状态管理最佳实践
  • 基于Java+MySQL 实现(Web)网络考试系统
  • C++篇——C++11的更新内容
  • github开源版pymol安装(ubuntu22.04实战版)
  • 最宽温度范围文本格式PT1000分度表-200~850度及PT1000铂电阻温度传感器计算公式
  • BLIP论文笔记
  • 软件名称:系统日志监听工具 v1.0
  • 二、ZooKeeper 集群部署搭建
  • HTMLUnknownElement的使用
  • CSS专题之flex: 1常见问题
  • 灰色词秒收录代发/百度seo收费
  • 高校档案网站建设的目的是什么意思/神秘网站
  • 成都网站建设制作设计/2022新闻热点事件简短30条
  • 寿光网站制作/小程序开发哪家好
  • 个人做慈善网站/网站页面seo
  • 做网站付费流程/网站建设的技术支持