数据库系统必须维护事务的以下特性(简称ACID):

原子性(Atomicity)

一致性(Consistency)

隔离性(Isolation)

持久性(Durability)

⑴ 原子性(Atomicity)

原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

⑵ 一致性(Consistency)

一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。

⑶ 隔离性(Isolation)

隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。

关于事务的隔离性数据库提供了多种隔离级别。

⑷ 持久性(Durability)

持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

数据库事务的四大特性:

事务(Transaction)是并发控制的基本单位。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。

1、数据库事务必须具备ACID特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性)的英文缩写。

1)原子性(Atomicity)

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

2)一致性(Consistency)

事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。

3)隔离性(Isolation)

指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。

4)持久性(Durability)

指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。

2、事务的(ACID)特性是由关系数据库管理系统(RDBMS,数据库系统)来实现的。数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。

数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。

3、在关系型数据库中,事务的隔离性分为四个隔离级别,在解读这四个级别前先介绍几个关于读数据的概念。

1)脏读(Dirty Reads):所谓脏读就是对脏数据(Drity Data)的读取,而脏数据所指的就是未提交的数据。也就是说,一个事务正在对一条记录做修改,在这个事务完成并提交之前,这条数据是处于待定状态的(可能提交也可能回滚),这时,第二个事务来读取这条没有提交的数据,并据此做进一步的处理,就会产生未提交的数据依赖关系。这种现象被称为脏读。

2)不可重复读(Non-Repeatable Reads):一个事务先后读取同一条记录,但两次读取的数据不同,我们称之为不可重复读。也就是说,这个事务在两次读取之间该数据被其它事务所修改。

3)幻读(Phantom Reads):一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为幻读。

mysql三大特性_数据库四大特性相关推荐

  1. mysql三大范式_数据库的三大范式?

    展开全部 1.第一范式(1NF) 所谓第一范式(1NF)是指在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,32313133353236313431303231363533e59b9e ...

  2. 数据库四大特性与隔离级别

    数据库四大特性ACID Atomicity (原子性) :事务(transaction)是由指逻辑上对数据的的一组操作,这组操作要么一次全部成功,如果这组操作全部失败,是不可分割的一个工作单位. Co ...

  3. 【数据库】数据库四大特性ACID

    一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析. // 创建 ...

  4. mysql 时间 设计模式_数据库时间设计模式

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. mysql变红_数据库变成红色紧急

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. mysql事务的四大特性_数据库事务四大特性是什么?

    展开全部 1.原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因e5a48de588b662616964757a686964616f3133336630376 ...

  7. 阐述一下Mysql事务的四个特性_数据库事务的四个基本性质?

    本文转载:http://www.sqlstudy.com/sql_article.php?id=2008080302 数据库事务概念 什么是数据库事务? 事务(transaction)是由一系列操作序 ...

  8. mysql数据库设计三大范式_数据库设计三大范式详解

    引言数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟,不 ...

  9. 数据库四大特性ACID

    Automicity:一次事务内的操作要么全做,要么全不做 Consistence:实务操作前后,系统的整体状态保持一致 Isolation:并发的事务执行后的结果应该与他们串行时执行一致 Durab ...

最新文章

  1. linux无人值守安装+PXE
  2. mysql5.5数据库操作_命令行下mysql数据库基本操作
  3. 特征值与特征向量 matlab数值解,用MATLAB和numpy求解特征值和特征向量,matlab,与
  4. 深度学习(主要是CNN)用于图片的分类和检测总结
  5. input和textarea的区别
  6. 有序数组原地删除重复出现的元素问题(js)
  7. Node的底层调用你知道吗?
  8. 如何理解互斥锁、条件锁、读写锁以及自旋锁?(转载)
  9. 【模拟电路知识】运算放大器没有反馈电路——做电压比较器应用
  10. 袁老走好,谢谢您!我辈也当自强。
  11. 【去哪儿旅行】产品分析报告
  12. xp系统显示无打印机服务器,怎样解决WinXP系统使用打印机提示无法设置默认打印机...
  13. Python之——获取电脑连接过的所有wifi名称和密码
  14. 十年再出发:阿里云智能战略加速的“四级火箭”
  15. 理解目标检测中的老大难:小目标检测
  16. java调用七鱼返回文件_网易七鱼 Android 高性能日志写入方案
  17. pixabay注册失败原因以及解决办法
  18. 无线投影协作服务器,安全高效 开启无线协作新模式_巴可 CSE-200_投影机导购-中关村在线...
  19. 把PE写进U盘的一个分区
  20. 商城项目(四)整合SpringTask实现定时任务

热门文章

  1. 2.2.3 VLAN 间路由配置命令
  2. 超构透镜专栏(2)——超构透镜的原理与进展
  3. idea设置默认配置
  4. 2018 年秋季 10 月江苏省计算机等级考试回忆(三级偏硬-微机接口)
  5. android闹钟程序后台运行,Android闹钟启动时间设置无效问题的解决方法
  6. 小程序判断用户是否关注了关联的公众号
  7. android5.0日历范围
  8. 将中文论文翻译成英文(ChatGPT调教)
  9. U9 一条龙服务(SO-LRP-GreatMo-Dispatch)
  10. 英国Pickering公司加入了OpenTAP 自动化测试开源软件合作伙伴计划