数据库交易理论

时间:2015-01-23 03:32:59

标签: sql database transactions

似乎没有书可以回答这个问题。

假设我有两个交易:

T1:锁定A,锁定B,解锁A

T2:锁定B,解锁B,锁定A,解锁A

Q1。计划这些交易的方式有多少? (它只是一个简单的图表,结果是3!* 4!?)

Q2。这些方法中有多少是可序列化的?

我真的很想知道什么是思考过程,你如何得到答案?

1 个答案:

答案 0 :(得分:1)

Q1是7。 证明:首先,我们必须合并锁定A'锁定B'解锁A' (我将项目表示为A1,A2,A3)进入集合'锁定B',...,'解锁A' (我将它们表示为B1..B4),即将3个项目放入5个位置(B' s之间),允许重复,即二项式系数。从(5-1 + 3)中选择3。它等于7!/(3!* 4!)= 35 接下来,我们必须放弃“坏”。解决方案(锁定条件阻止的解决方案)。其中A1位于B3和B4之间(3个溶液),A2位于B1和B2之间(2 * 4 = 8)。此外,我们还必须在A1和A3之间排除B3的解决方案。在A1和A2之间存在3 * 3 = 9的B3,并且在A2和A3之间具有B3的6 * 2 = 12。因此,我们有35-3-8-9-12 = 3。但我们也应该满足包含 - 排除原则:添加同时违反两个规则的解决方案。它们可能只是这样:B1 A2 B2 B3 B4,左边两个位置都有A1,右边两个都有A3。总共4个。所以,我们有最终答案35 - 3 - 8 - 9 - 12 + 4 = 7.

相关问题