ACID是指在 数据库管理系统(DBMS)中事物所具有的四个特性:原子性、一致性、隔离性、持久性

事物:在数据库系统中,一个事务是指由一系列连续的数据库操作组成的一个完整的逻辑过程。这组操作执行前后,系统需要处于一个可预知的、一致的状态。

1、原子性:在一个事物中所有的操作要么都成功,要么多失败。如银行转账,A向B账户转账1000元,这里可分为三个操作,1.A向B转账、2.银行处理、3.B账户收到转账。原子性就是保证这三个操作要么都成功,要么多失败,如果1、2操作成功,3失败了,那么1、2操作要进行回滚

2、一致性:在事务执行前后,数据库的一致性约束没有被破坏。ACID中的一致性包含实体完整性约束不被破坏,完整性包含实体完整性(主属性不为空)、参照完整性(外键必须存在原表中)、用户自定义的完整性。比如列值非空(not null)、列值唯一(unique)、列值是否满足一个bool表达式(check语句,如性别只能有两个值、岁数是一定范围内的整数等),例如age smallint CHECK (age >=0 AND age <= 120).数据库保证age的值在[0, 120]的范围,如果不在这个范文,那么更新操作失败,事务也会失败。

3、隔离性:隔离性是指两个事物之间互不干扰。实现事物隔离性主要有两种方式。1.枷锁、2.多版本控制。

  sql定义了4个隔离的级别:

  READ_UNCOMMITTED
  READ_COMMITTED
  REPEATABLE_READ
  SERIALIZABLE

4、持久性:事物对数据库所做的更改会持久的保存在数据库中,不会被回滚。持久性需要考虑到事物在执行过程中可能出现的各种异常,并对异常做出相应的处理。

转载于:https://www.cnblogs.com/dyfbk/p/7725051.html

数据库的ACID特性详解相关推荐

  1. 还在用JDK6的同学,来看看JDK13新特性详解吧

    点击上方"搜云库技术团队"关注,选择"设为星标" 回复"面试题"或"1024"获取 4T 学习资料 在 JDK 版本的世 ...

  2. oracle数据库中索值,Oracle数据库中的索引详解

    Oracle数据库中的索引详解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一 ROWID的概念 存储了row在数据文 ...

  3. oracle dataguard详解,Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向

    Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向 在前面的文章<Oracle 19c 十大新特性一览>中,我们曾经提到 Oracle 19c的一个重要增强, ...

  4. Mybatis的特性详解——动态SQL

    Mybatis的特性详解--动态SQL 前言 一.动态sql的元素 1.MyBatis if标签:条件判断 2.MyBatis choose.when和otherwise标签 3.MyBatis wh ...

  5. java8-stream新特性详解及实战

    Java8 Stream新特性详解及实战 背景介绍 在阅读Spring Boot源代码时,发现Java 8的新特性已经被广泛使用,如果再不学习Java8的新特性并灵活应用,你可能真的要out了.为此, ...

  6. python3.9性能_Python3.9新特性详解

    本文主要介绍Python3.9的一些新特性,如:更快速的进程释放,性能的提升,简便的新字符串函数,字典并集运算符以及更兼容稳定的内部API,详细如下: 字典并集和可迭代更新 字符串方法 类型提示 新的 ...

  7. C#高级--特性详解

    C#高级–特性详解 零.文章目录 一.特性是什么 1.特性定义 **特性(Attribute)**是用于在运行时传递程序中各种元素(比如类.方法.结构.枚举.组件等)的行为信息的声明性标签.您可以通过 ...

  8. Oracle 18c新特性详解-多租户专题

    Oracle 18c,传说中全球第一款自动驾驶数据库,正式到来.18c不仅仅是数据库,更是一种云服务,包括着Oracle数据库18c,Oracle云基础架构和Oracle云工具,机器学习,能够实现自治 ...

  9. php mysql source_Mysql数据库导入命令Source详解

    Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p data ...

最新文章

  1. 生成式对抗网络GAN有哪些最新的发展,可以实际应用到哪些场景中
  2. 论文阅读:An Enhanced Deep Feature Representation for Person Re-identification
  3. jQuery scroll事件
  4. 使用MAP文件快速定位程序崩溃代码行
  5. Vue项目使用百度地图——经纬度地图组件的封装及使用
  6. C# NTP时间同步类
  7. 【 批量爬取下载geo.datav.aliyun.com下地图的json文 】
  8. redhat常用基础命令代码
  9. iOS 创建推送证书
  10. 单生产者/单消费者 的 FIFO 无锁队列
  11. 【数据结构 严蔚敏版】 顺序表基本操作
  12. Tomcat 500错误:实例化Servlet类异常
  13. 【摘录】模拟物流快递系统程序设计
  14. 基于韦东山视频 regulator 学习笔记
  15. ESP32学习笔记(2)——GPIO接口使用
  16. PHY--PDSCH
  17. 连续52周,每周推出一个新的应用程序
  18. vue 脚手架 elementUi element-ui 兼容 ie 360 急速/兼容模式 完美处理
  19. 杂谈---令人抓狂的数据库行级锁问题
  20. picgo免费搭建个人图床

热门文章

  1. HDLC和 PPP的实验
  2. 实现软件自动启动代码
  3. c语言外部中断th0,帮忙看看void int0() interrupt 1 //采用中断0 控制节拍 { TH0=0xd8; TL0=0xef; n--; } 啥意思...
  4. 捉虫记 单步跟踪 条件断点 变量查看实践
  5. SQLite学习(三) - SQLite源代码文件结构
  6. golang中的strings.Trim
  7. is null和is not null运算符
  8. 如何将字符数组里的内容转换成uint8的类型?将一个字符数组里面的所有元素变成一个字符串?
  9. mybaits二十一:1连接池以及事务控制
  10. 汇编: 在代码中安排自己定义的数据,栈空间