ACID是数据库事务正确执行的四个基本要素的缩写,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有ACID特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。

原子性(Atomicity)

– 事务的所有操作,要么全部完成,要么全部不完成,不会结束在某个中间环节。

一致性(Consistency)

– 事务开始之前和事务结束之后,数据库的完整性限制未被破坏。

隔离性(Isolation)

– 当多个事务并发访问数据库中的同一数据时,所表现出来的相互关系。

持久性(Durability)

– 事务完成之后,事务所做的修改持久化保存,不会丢失。

1.原子性

整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

2. 一致性

在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。

3. 隔离性

隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。

这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。

4. 持久性

在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

由于一项操作通常会包含许多子操作,而这些子操作可能会因为硬件的损坏或其他因素产生问题,要正确实现ACID并不容易。ACID建议数据库将所有需要更新以及修改的资料一次操作完毕,但实际上并不可行。

目前主要有两种方式实现ACID:第一种是Write ahead logging,也就是日志式的方式。第二种是Shadow paging。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2125599/,如需转载,请注明出处,否则将追究法律责任。

php事务基本要素,数据库事务正确执行的四个基本要素相关推荐

  1. acid(数据库事务正确执行的四个基本要素的缩写)

    ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability).一个支持事务(T ...

  2. ACID(数据库事务正确执行的四个基本要素)

    关系型数据库都会有ACID(数据库事务正确执行的四个基本要素的缩写) ACID其中包含:原子性,一致性,隔离性,持久性.一个支持事务的数据库,必须要具有这四种特性,否则在事务过程当中无法保证数据的正确 ...

  3. 数据库事务隔离级ORACLE数据库事务隔离级别介绍

    本文系转载,原文地址:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted.Read committ ...

  4. 使用事务注解导致数据库事务一直在运行

    使用事务注解导致数据库事务一直在运行 1.问题出现原因: 场景: @Override//bcId 要选择的品牌对应bcid 不是头部的@Transactional(rollbackFor = Exce ...

  5. mysql事务并发控制_数据库 事务并发控制

    事务是一个逻辑工作单元, SQLServer 2005 提供了几种自动的可以通过编程来完成的机制,包括事务日志. SQL 事务控制语句,以及事务处理运行过程中通过锁定保证数据完整性的机制.当用户对数据 ...

  6. Spring事务管理--(一)数据库事务隔离级别与mysql引擎基础讲解

    一.前言 本篇文章来自网络整理,很简单,但是很实用对于初级和中级工程师. 原创地址1:http://www.cnblogs.com/hollen/archive/2012/05/13/2498309. ...

  7. Spring JDBC-Spring事务管理之数据库事务基础知识

    概述 数据库事务的概念 原子性 一致性 隔离性 持久性 数据并发的问题 脏读dirty read 不可重复读unrepeatable read 幻象读 phantom read 幻象读和不可重复度的区 ...

  8. pgsql数据库默认配置事务类型_PostgreSQL数据库事务出现未知状态的处理方法

    背景 数据库的事务是原子操作,要么成功,要么失败.但是实际上在客户端的视角,可能有第三种状态:unknown状态. 当客户端提交事务结束(rollback , commit , prepare xac ...

  9. spring配置mysql事务管理_Spring 数据库事务管理机制

    要点1 Spring事务管理方法编程式事务(TransactionTemplate.PlatformTransactionManager) 声明式事务(配置式.注解式) 2 Spring 注解 @Tr ...

最新文章

  1. php注册表唯一电脑,PHP常见设计模式之注册表模式
  2. [云炬创业基础笔记]第五章创业机会评估测试8
  3. JS替换地址栏参数值
  4. 数据结构之线索化二叉树
  5. hdfs里的文件下载HDFS之fsimage、metadata、edits、fstime(二十七)
  6. 网站里的MG电子是一个服务器吗,魔兽世界中的品质生活,从MG电子游艺开始!...
  7. Topaz Sharpen AI 4 人工智能锐化
  8. 全球计算机病毒损失报告,世界十大计算机病毒 CIH的危险被公认,第二经济损失26亿美元...
  9. BOOST的JSON解析库Boost.JSON简介
  10. 大数据之oracle:next_day函数
  11. Swing实现五子棋
  12. 瑞云科技联合飞蝶VR教育、大朋VR推出元宇宙 5G VR智慧教育整体解决方案
  13. 关于godot第三方功能增强版
  14. Opencv配置常见问题:
  15. 【游戏开发创新】当我学了Blender 建模,自制3D电脑桌面,回收站爆发了,把我做的模型都吐了出来(Blender | Unity | FBX)
  16. python五角星符号怎么打出来_如何使用python输出连续星号?
  17. SATA系列专题之六:浅析NCQ原生指令序列
  18. 在Linux中安装mysql后遇到错误20008解决方案
  19. getElementsByTagName用法详解
  20. 计算机的用途英语作文带翻译,关于计算机的英文作文带翻译

热门文章

  1. 用perl操作excel的介绍
  2. 31 款轻量高效的开源 JavaScript 插件和库
  3. asm.js性能提升,让游戏飞起来
  4. ajax获取session值_【JavaWeb】91:Cookie与Session
  5. Eclipse快捷键之搜索
  6. lib-flexible vue项目(移动端适配)
  7. 配置 sql server linux,配置SQL Server on Linux(2)
  8. excel打印预览在哪里_excel预览打印超出范围该怎么办呢?
  9. awk 匹配_20分钟降服awk
  10. 表单多条相同name数据的获取