首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库事务理论

数据库事务理论
EN

Stack Overflow用户
提问于 2015-01-23 11:32:59
回答 1查看 67关注 0票数 1

似乎没有一本书能够回答这个问题。

假设我有两个事务:

T1:锁定A、锁定B、解锁A

T2:锁定B、解锁B、锁定A、解锁A

Q1。有多少种方法可以计划这些事务?(这只是一个简单的图形,结果是3!* 4!?)

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

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

EN

回答 1

Stack Overflow用户

发布于 2015-01-23 14:52:20

Q1是7。证明:首先,我们必须将集合'Lock A','Lock B','Unlock A‘(我表示为A1,A2,A3)合并到集合'Lock B',..,'Unlock 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之间有6*2=12和B3。因此,我们有35-3-8-9-12=3。但我们也应该满足包含-排除原则:同时添加违反两个规则的解。它们只能是这样的: B1 A2 B2 B3 B4,A1位于两个左侧位置中的任意一个,A3位于两个右侧位置中的任意一个。总共4个。因此,我们得到了最终答案35 -3-8-9- 12 +4= 7。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28102584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档