事务中部分提交和提交状态有什么区别?

Sin*_*ham 2 rdbms transactions

我知道如果一个事务成功执行了它的所有操作,就说它已提交。它的所有影响现在都永久地建立在数据库系统上。

但我不明白什么是部分提交状态?

根据定义:

部分提交状态是当事务执行其最终操作时,称为部分提交状态。

由于部分提交和已提交状态都发生在所有事务操作执行完毕之后。

如何区分这两种交易状态。

Tim*_*sen 7

该参考文献来看,当数据库事务的所有组件都已完成并且 RDBMS 已逻辑上承诺将这些更改持久保存到数据库但尚未实际持久保存时,就会出现部分提交状态。我在这里使用“逻辑上”这个词是因为在事务工作完成后,仍然可能会发生故障。考虑到这种可能性,RDBMS 将足够的信息写入磁盘,以保证即使发生故障,也可以重新创建事务结果,并且可以适当更新数据库。

因此从逻辑的角度来看,部分提交状态和已提交状态是相同的。但它们的不同之处在于,前者数据库本身可能并不实际反映事务的结果。

这是一个有用的图表,显示了数据库事务的各种状态,取自上述参考文献:

在此输入图像描述