数据库理论:事务可串行化
嘿, 我正在为考试学习,并遇到了以下问题:
采取 历史(或 Schedule),
H = w1[x] w2[x] w2[y] c2 w1[y] w3[x] w3[y] c3 w1[z] c1
其中 w1[x]
表示:事务 1 写入数据对象 X(r1[x]
表示读取)和 c1
表示:事务 1 提交。
为什么此事务视图可序列化?
对于视图可串行性,历史记录 H 必须在视图上等同于事务 1、2、3 的顺序执行。因此,进一步,每个数据对象的最后写入必须与历史记录 H 的事务的顺序执行相同。因此,H 的最后写入是:
- x 和 y 的事务 3 以及
- z 的事务 1
但是,在没有顺序执行的情况下,最后写入是这样分布的,因此历史记录 H 不能被查看可序列化。
我的错误在哪里?
谢谢大家。
Hy,
I'm learning for my exams and came over the following question:
Take the History (or Schedule)
H = w1[x] w2[x] w2[y] c2 w1[y] w3[x] w3[y] c3 w1[z] c1
where w1[x]
means: Transaction 1 writes to Data-Object X (r1[x]
means read) and c1
means: Transaction 1 commits.
Why is this transaction view serializable?
For view Serializability the History H must be view-equivalent to a sequential executing of the transaction 1,2,3. So, futher, the last-writes of each data-Object must be the same as in a sequential execution of the transaction of the History H. So the last-Writes of H are:
- Transation 3 for x and y and
- Transation 1 for z
But, in no sequential execution the last-writes are distributed like this, so the History H can't be view serializable.
Where is my mistake?
Thanks everyone.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,我自己发现了:最后一句话当然是错误的:
事实上,顺序执行 1,2,3 导致了这个 History:
和 follogint last-Writes:
这是与历史 H 的最后写入相同
Okay, found out myself: The last sentence if of course wrong:
In fact the sequential execution 1,2,3 leads to this History:
and the follogint last-Writes:
which is the same than the last-writes of History H