DBMS 中的事务和可序列化 - 冲突
Posted
技术标签:
【中文标题】DBMS 中的事务和可序列化 - 冲突【英文标题】:Transaction and Serializability on DBMS - Conflicts 【发布时间】:2013-07-04 15:58:40 【问题描述】:任何人都可以解释一下,为什么它如此重要,以至于我调查了与数据库一起使用冲突的事务计划。 Transaction之间的冲突是什么意思,DBMS将如何处理。
我希望任何人都可以帮助我...谢谢:D
【问题讨论】:
这不是一个问题,而是你问的一章 【参考方案1】:当您对数据库进行插入或更新时,事务很有用。 您不希望只有一部分数据被插入(或更新)!您只对两种情况感兴趣:什么都没有或什么都没有。
所以,这就像一个“try-catch”(在 java 中)......如果一切正常,你“提交”! ...否则你“回滚”!
【讨论】:
【参考方案2】:一个事务由许多动作组成。考虑两个动作:T1 的动作 A1 和 T2 的动作 A2。如果
-
A1 和 A2 都写入同一个对象 V:在调度中更改 A1 和 A2 的顺序可能会影响结果,那么 A1 和 A2 就会发生冲突。
A1 写入 V,A2 读取 V(反之亦然):更改 A1 和 A2 会影响结果,则 A1 和 A2 会发生冲突。
A1 和 A2 都读取同一个对象:A1 和 A2 的顺序不重要,所以 A1 和 A2 不冲突
A1 读/写到 V1 和 A2 读/写到 V2(!= V1):A1 和 A2 的顺序并不重要。因此 A1 A2 不冲突。
【讨论】:
以上是关于DBMS 中的事务和可序列化 - 冲突的主要内容,如果未能解决你的问题,请参考以下文章