数据库理论:事务可串行化

发布于 2024-09-16 03:28:39 字数 751 浏览 10 评论 0原文

嘿, 我正在为考试学习,并遇到了以下问题:

采取 历史(或 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

溇涏 2024-09-23 03:28:39

好吧,我自己发现了:最后一句话当然是错误的:

事实上,顺序执行 1,2,3 导致了这个 History:

w1[x] w1[y] w1[z] c1   w2[x] w2[y] c2    w3[x] w3[y] c3

和 follogint last-Writes:

  • Transaction 3 for x and y and
  • Transaction 1 for z

这是与历史 H 的最后写入相同

Okay, found out myself: The last sentence if of course wrong:

In fact the sequential execution 1,2,3 leads to this History:

w1[x] w1[y] w1[z] c1   w2[x] w2[y] c2    w3[x] w3[y] c3

and the follogint last-Writes:

  • Transaction 3 for x and y and
  • Transaction 1 for z

which is the same than the last-writes of History H

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文