首页 > 数据库 >【转载】数据库事务的四大特性

【转载】数据库事务的四大特性

时间:2022-09-18 13:56:32浏览次数:311  
标签:状态 事务 数据库 特性 提交 一致性 转载

数据库事务的四大特性(ACID)

  ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性。

1、原子性(Atomicity)

  说的是一个事务内所有操作共同组成一个原子包,要么全部成功,要么全部失败。这是最基本的特性。

2、一致性(Consistency)

  计算机指令是有先后顺序的,这样就决定了数据库提交事务会有一个过程。如果提交的时候,存在一个时间差,在提交的第一秒,一个删除过程还没完成到了第三秒才完成,会不会第一秒访问的人和第三秒访问的人得到不同的结果?出现不一致,状态的混沌?为了防止这样的情况,数据库事务的一致性就规定了事务提交前后,永远只可能存在事务提交前的状态和事务提交后的状态,从一个一致性的状态到另一个一致性状态,而不可能出现中间的过程态。也就是说事务的执行结果是量子化状态,而不是线性状态。 这就是一致性得保证的只会有前状态和后状态,绝不会出现中间态。

3、隔离性(Isolation)

  由于多个事务可能同时操作同一个资源,不同的事务为了保证隔离性,会有很多锁方案。

4、持久性(Durability)

  当一个事务提交之后,数据库状态永远的发生了改变,这个事务只要提交了,哪怕提交后宕机,他也确确实实的提交了,不会出现因为刚刚宕机了而让提交不生效。

 

参考:

https://www.jianshu.com/p/7c4a8a13e923

标签:状态,事务,数据库,特性,提交,一致性,转载
From: https://www.cnblogs.com/ayic/p/16704699.html

相关文章

  • 可能会遇到的数据库连接问题,与cj有关,数据库版本
    可能会遇到的数据库连接问题,与cj有关:数据库版本的问题,如果是8.0x版本的数据库驱动文件,对此,需要将加载数据库驱动的语句更改为:com.mysql.cj.jdbc.Driver如果是5.0X版......
  • nodejs <a>带参数返回路由标记执行数据库操作
    今天在测试mongo数据库操作维护的时候,测试了一下直接在表内添加操作列来完成数据的删除操作,直接返回数据库ID1、mongo数据操作functiondelStudentid(id,callback){ ......
  • 第二十一章 MySQL数据库优化
    一、数据硬件优化(选型)1.数据库选择1.真实的硬件物理机,虚拟化,搭建数据库2.云服务器ECS,自己搭建数据库3.云数据库(RDS,DRDS)2.数据库类型1.OLTP 在线事务处理系统,支持大......
  • 第六章 MongoDB数据库开发
    FireDAC也在DX10的版本中开始加入支持NoSQL型态的数据库,并选择其中最为流行的MongoDB为第1个支持的目标。MongoDB的数据体结构是以 (Key,Value)组合的,储存的方式是使......
  • 数据库备份差异备份和增量备份的区别
    一般都三种备份种类:完全备份、差异备份、增量备份。完全备份:备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。(在备份过程中,任何现有的标记都被清除,每个......
  • 名为WSS_Content_xxx 的 SharePoint 数据库已存在。您必须为该新数据库提供其他名称
    英文报错:ASharePointdatabasenamedWSS_Content_xxxalreadyexists. Youmustsupplyanothernameforthenewdatabase. 使用命令创建内容数据库,中途报错了Ne......
  • 天体数据库:数据准备(第 2 部分)
    天体数据库:数据准备(第2部分)Photoby泽维尔米兰达on不飞溅我需要使用PostgreSQL创建一个天体数据库这个freeCodeCamp项目.如果您对“天体”一词不熟悉,它指......
  • 数据库MySQL
    主要语句一、数据库--创建数据库CREATEDATABASEdemo;--删除数据库DROPDATABASEdemo;--查看数据库SHOWDATABASES;--创建数据表CREATETABLEdemo.test(字段名类......
  • Sql Server 查询数据库,所有表,列,类型
    1--查询所有表2selectSysobjects.NamefromSysObjects34--查询所有类型5selectSysTypes.NamefromSysTypes67--查询所有列8selectSy......
  • Spring事务(二)-@Transactional事务失效的场景
    有时候,我们明明在类或者方法上添加了@Transactional注解,却发现方法并没有按事务处理。其实,以下场景会导致Spring的@Transactional事务失效。1、事务方法所在的类没有......