事务的“一致性”怎么理解???
现在在看刚买不久的书,关于ms sql server的。
里面介绍事务的一致性的一段原话如下:
一致性:
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B数索引或双向链表)都必须是正确的。。
我怎么感觉第一句才和事务的一致性有关啊??
是我语文水平有限呢,还是这个介绍太操蛋了??
请各位帮忙解释解释事务的一致性,最好有例子说明!
谢谢!!!
[解决办法]
也不需咬文嚼字,实践多点就有感觉了
[解决办法]
事务的概念就是:一系列操作的一个集合,他是数据库能够进行操作的最小的逻辑单元。
原子性: 他是数据库能够进行操作的最小的逻辑单元,证明他包含的所有操作都是不可分割的。
一致性: 例如: 组成1个事务 可能由增、删、改、查四种操作,一致性就是他们要么同时全部成功,要么同时全部失败。成功与失败的操作保持一致。
隔离性:每个事务对于数据库执行来说都是不可拆分的最小单元,所以每个事务都有着自己独立的副本,由数据库进行执行与操作。
持久性:事务在运行成功之后,数据会持久保存到数据库上,所以事务可以做到数据持久化的。
这是我学习事务过程中 总结与理解的 ,基本都是正确的 ,我用自己理解的话说的 ,希望对你有帮助。
[解决办法]
事务中包含的一系列的操作,这些操作必须同时成功 或者 同时失败 这个是一致性的正解!
[解决办法]
我给你举个例子吧
例如 你有1个事务
里面包含了 几个操作
先增加2条记录 insert
删除1条记录 delete
查询剩余记录 search
修改1条记录 update
这个四个操作 合并成1个事务同时执行,如果4个操作全都没问题 顺利执行结束了 这个事务才会自动提交,如果这4个操作 任何1个发生了异常 事务会回滚 ,让这4个操作 全部撤销(哪怕是已经执行的操作也撤销),这样保证了 操作的一致性!
[解决办法]
一致性就是在一个用户未提交他的事务前(比如更新一个字段),其他用户 Select 出来的结果都一样
[解决办法]
这个就现实的项目举个例子,假如有一个产品表和一个产品明细表,是父子关系,当我们添加产品表的时候,一定要添加产品明细表的资料,如果我们只是添加了产品表没有添加产品明细,这样就会是数据不一致,混乱,这里我们就要用到事务了。不知道我说的明不明白。
[解决办法]
事物操作的目的就是保持数据的前后统一,两个关联的表,不可以只修改了第一个表而第二个表的数据不做修改,这样就会造成读脏数据,所以就会引用到事物的一致性处理,要么全部执行修改,要么全部都不执行修改。
不知道楼主明白没?
[解决办法]
都是一个目的,数据一致,您不觉得吗?
[解决办法]
BGEIN TRAN
……
IF @@ERROR <> 0
ROLLBACK TRAN
ELSE COMMIT TRAN