交易

2024 年 8 月 28 日 | 阅读 2 分钟
  • 事务是一组逻辑上相关的操作。它包含一组任务。
  • 事务是由单个用户执行的、用于执行访问数据库内容的操作或一系列操作。

示例:假设一家银行的员工将 800 卢比从 X 的账户转入 Y 的账户。这个小小的交易包含几个低级任务。

X 账户

Y 账户

事务的操作

以下是事务的主要操作:

Read(X):Read 操作用于从数据库读取 X 的值并将其存储在主内存的缓冲区中。

Write(X):Write 操作用于将缓冲区的值写回数据库。

让我们举一个从账户扣款的例子,该例子包含以下操作:

假设在事务开始前 X 的值为 4000。

  • 第一个操作从数据库读取 X 的值并将其存储在缓冲区中。
  • 第二个操作会将 X 的值减少 500。所以缓冲区将包含 3500。
  • 第三个操作会将缓冲区的值写回数据库。因此 X 的最终值将是 3500。

但是,由于硬件、软件或电源等故障,事务可能在完成集合中的所有操作之前失败。

例如:如果在上述事务中,扣款事务在执行完第二个操作后失败,那么 X 的值将仍然是数据库中的 4000,这是银行无法接受的。

为了解决这个问题,我们有两种重要的操作:

Commit(提交):用于永久保存已完成的工作。

Rollback(回滚):用于撤销已完成的工作。


下一主题DBMS 事务属性