原子性-属性-ACID-数据库的-分歧性-隔离性-耐久性 (原子性质是什么)
咱们说到数据库的时刻,经常提到其ACID属性。那么ACID是什么意思呢?
ACID是用来形容数据库事务的属性。反上来说,满足ACID属性的一系列数据库操作被称为事务。
下图解释了ACID在数据库事务中的含意。
图片
01原子性(Atomicity)
事务中的写操作是一次性性口头的,不能合成成更小的局部。假设在口头事务时出现缺点,同一个事务中的写入将被回滚。运行程序可以安保地重试同一事务,而不会发生任何反作用。
因此,原子性象征着"全有或全无"(AllorNothing)。
02分歧性(Consistency)
CAP定理中的"分歧性"是指每次读取都会收到最近的写入或失误。与CAP定理不同的是,这里的分歧性是指保管数据库的不变性。事务写入的任何数据都必定合乎事前定义的规定,并坚持数据库处于良好形态。比如咱们在数据库中设置了Trigger用来降级关联表,那么数据写入后必定保障其正确口头。
03隔离(Isolation)
当有来自两个不共事务的并发写入时,这两个事务是相互隔离的。最严厉的隔离是"序列化"(serializability),即每个事务运转时都像数据库中惟一运转的事务一样。但是,这在事实中很难成功,所以咱们通常驳回较弱的隔离级别。
04耐久化(Durability)
事务提交后,即使系统出现缺点,数据也会被耐久化。数据库会经常使用预写日志(Write-AheadLog)或相似机制来确保耐久化。在散布式系统中,耐久化象征着数据会复制到其余节点。
神书DDIA(Designing>
数据库中的事务(Transaction)的ACID指的是什么
事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。
ACID是Atomic(原子性)
Consistency(一致性)
Isolation(隔离性)
Durability(持久性)的英文缩写。
Atomic(原子性):指整个数据库事务是不可分割的工作单位。只有使据库中所有的操作执行成功,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。
Consistency(一致性):指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。例如对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNTS表中Tom和Jack的存款总额为2000元。
Isolation(隔离性):指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。
Durability(持久性):指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。
acid四大特性
二.事务的四大特性(ACID)
事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。
原子性
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性
数据库总是从一个一致性的状态转移到另一个一致性的状态。一致性确保了即使在执行第三、第四条语句之间时系统崩溃,前面执行的第一、第二条语句也不会生效,因为事务最终没有提交,所有事务中所作的修改也不会保存到数据库中。
隔离性
一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。
一.什么是事务
事务(Transaction)是并发控制单位,是用户定义的一个操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。
事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。
事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。