Database 数据库原子性一致性

Database 数据库原子性一致性,database,acid,Database,Acid,原子性和一致性之间的区别是什么?在我看来,两人用不同的词说的是同一件事 原子性 事务的所有任务都已执行,或者没有任何任务被执行。没有部分交易。例如,如果一个事务开始更新100行,但系统在20次更新后失败,那么数据库将回滚对这20行的更改 一致性 事务将数据库从一个一致状态转换为另一个一致状态。例如,在借记储蓄账户并贷记支票账户的银行交易中,故障不得导致数据库仅贷记一个账户,这将导致数据不一致 看起来原子性是一致性的子集,那么它应该是cid(一致性、隔离性、duriebility),没有原子性,原

原子性和一致性之间的区别是什么?在我看来,两人用不同的词说的是同一件事

原子性

事务的所有任务都已执行,或者没有任何任务被执行。没有部分交易。例如,如果一个事务开始更新100行,但系统在20次更新后失败,那么数据库将回滚对这20行的更改

一致性

事务将数据库从一个一致状态转换为另一个一致状态。例如,在借记储蓄账户并贷记支票账户的银行交易中,故障不得导致数据库仅贷记一个账户,这将导致数据不一致


看起来原子性是一致性的子集,那么它应该是cid(一致性、隔离性、duriebility),没有原子性,原子性实际上是指每个事务要么全部执行,要么什么都没有,这意味着它的所有操作都被执行,并且没有部分操作

然而,一致性涉及确保任何事务都能将数据库从一个有效状态带到另一个有效状态。根据所有定义的规则,写入数据库的任何数据都必须有效,包括但不限于约束、级联、触发器及其任何组合 . 这基本上意味着只向数据库写入有效状态,如果事务不违反数据一致性,则执行该事务;如果事务违反数据一致性,则回滚该事务


希望它能帮您解决问题。

一致性的简单解释:如果数据库中的字段类型是整数,则它应该只接受整数值,而不接受其他类型。如果您想在此字段中存储其他类型,则会违反一致性。在此条件下,事务将回滚。

原子性:
Bunch of statement以100条语句为例,这些语句也可以是insert语句,如果在处理过程中有任何语句失败,则应恢复剩余语句,这意味着数据库应恢复原始状态

大宗报价

自动提交=错误

try{
   statement one ;
   statement two ;
    `enter code here`
    `enter code here`
    `enter code here`
   statement three;
  }
   catch (){rollback;}
  finally(){commit;} t
一致性: 如果您试图向数据库中插入需要满足约束条件的日期,则在您尝试向数据库中插入数据时会出现级联、触发器,但表具有主键约束,因此您计划插入的数据应满足主键约束条件

隔离: 若两个进程在数据库上运行,则假定一个正在读取数据,另一个正在将数据写入数据库。 读取线程应该只读取提交的数据,而不应该是内存中的数据

耐久性
一旦提交到数据库中的事务数据应处于同一阶段,则不应因电源故障或系统崩溃而影响其他任何

非原子、一致:部分事务可能使系统处于一致状态。原子性,非一致性:系统的两个部分可能在不一致的情况下维护原子性(事务记录在一个部分中,而不记录在另一个部分中)。看起来原子性是一致性的子集,那么它应该是cid(一致性、隔离性、不一致性),没有原子性