Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 这是可序列化的吗?_Database_Transactions - Fatal编程技术网

Database 这是可序列化的吗?

Database 这是可序列化的吗?,database,transactions,Database,Transactions,我正在复习考试,这是我在模拟试卷上看过的问题之一 根据标记方案,答案是事务是可序列化的。但我不明白怎么做 T1和T2被困在一个循环中,因为T1指向T2,然后在优先图中指向T1,因此不能使其序列化。标记是错误的还是我遗漏了什么 我认为这里的关键是T1中止。如果在事务提交之前我没有弄错,那么可以安全地假设磁盘没有被修改。这意味着T1中止时,数据库的状态与此操作序列相同。这是T2正在观看的 因此,如果我们有 write(T1, balx), read(T2, balx), write(T1, balx

我正在复习考试,这是我在模拟试卷上看过的问题之一

根据标记方案,答案是事务是可序列化的。但我不明白怎么做


T1和T2被困在一个循环中,因为T1指向T2,然后在优先图中指向T1,因此不能使其序列化。标记是错误的还是我遗漏了什么

我认为这里的关键是T1中止。如果在事务提交之前我没有弄错,那么可以安全地假设磁盘没有被修改。这意味着T1中止时,数据库的状态与此操作序列相同。这是T2正在观看的

因此,如果我们有

write(T1, balx), read(T2, balx), write(T1, balx), commit(T2), abort(T1)
然后数据库和事务T2的状态将与示例中的状态相同。现在,如果T1已经提交,那么通过调用优先级图,您将是正确的

标记:“序列化是将对象转换为可存储和稍后检索的格式的过程。”这是我的错误:)。
write(T1, balx), write(T1, balx), abort(T1), read(T2, balx), commit(T2)
read(T2, balx), commit(T2), write(T1, balx), write(T1, balx), abort(T1)