DBMS 中的事务

2025年7月1日 | 阅读 5 分钟

引言

在日益发展的数据库技术世界中,事务主要被认为是数据完整性的基石 数据库 系统。无论个人处理的是银行系统、电子商务平台还是其他任何数据敏感型应用程序,理解事务的工作原理都至关重要。事务必须代表一项必须完全完成或失败的数据库工作单元,从而确保选定的数据集保持准确和有效的一致性。

在本文中,我们将探讨 DBMS 中事务的概念、其作为步骤的生命周期以及它们必须满足的属性。

DBMS

DBMS 代表 数据库管理系统,它是用于创建、删除或操作当前数据库的工具或软件。

交易

在数据库数据上进行的任何逻辑工作或一组工作都称为事务。逻辑工作可以是向当前数据库插入新值、删除现有值或更新数据库中的当前值。

Transactions in DBMS

例如,将新成员添加到团队数据库是一项事务。

要完成一项事务,我们必须遵循一些使事务成功的步骤。例如,我们从 ATM 取现是一项事务,可以通过以下步骤完成

  • 事务初始化
  • 将 ATM 卡插入机器
  • 选择语言
  • 选择账户类型
  • 输入现金金额
  • 输入密码
  • 收取现金
  • 中止事务

因此,同样,在 DBMS 中,我们有三个步骤来进行事务,它们是:

  • 读取数据
  • 写入数据
  • 提交

我们可以通过一个例子来理解上述三个状态。假设我们有两个账户,account1 和 account2,初始金额均为 1000 卢比。如果我们想从 account1 转账 500 卢比到 account2,那么我们将提交事务。

  • 所有账户详细信息都存储在辅助存储器中,以便在事务中将其调入主存储器。
  • 现在我们将读取 account1 的数据并从中扣除 500 卢比。现在,account1 包含 500 卢比。
  • 现在我们将读取 account2 的数据并向其添加 500 卢比。现在,account2 将有 1500 卢比。
  • 最后,我们将使用 commit 命令,这表示事务已成功,我们可以将更改存储在辅助存储器中。
  • 如果在 commit 命令之前的任何情况下发生失败,系统将恢复到其之前的状态,并且不会有任何更改。

在事务的整个过程中,有很多状态,如下所述

Transactions in DBMS

活动状态

当事务顺利进行而没有任何错误时,称为活动状态。如果所有操作都良好,它将进入部分提交状态;如果失败,它将进入失败状态。

部分提交状态

读取和写入操作后数据库中的所有更改都需要反映在永久存储器或数据库中。因此,部分提交状态系统将进入已提交状态以进行永久更改;如果存在任何错误,它将进入失败状态。

失败状态

如果硬件或软件出现任何错误导致系统失败,则进入失败状态。在失败状态下,所有更改都将被丢弃,系统将恢复到之前的一致状态。

中止状态

如果在执行过程中发生任何故障,系统将从失败状态进入中止状态。从中止状态开始,事务将从头开始或从新的活动状态重新开始执行。

已提交状态

如果事务执行成功,则更改将写入主存储器并永久存储在数据库中,这称为已提交状态。

终止状态

如果事务处于中止状态(失败)或已提交状态(成功),则执行停止,称为终止状态。

Transactions in DBMS

事务的属性

事务在事务期间应维护四个属性。

Transactions in DBMS
  • 原子性

这意味着事务要么发生,要么失败。不会有部分完成之类的中间状态。

  • 一致性

事务前后数据库应保持一致。在事务期间应维护正确性和完整性约束。

  • 隔离

此属性意味着多个事务可以同时发生而不会相互影响。如果一个事务正在发生,那么它不应对正在并发发生的其他事务的数据进行任何更改。

  • 耐用性

这意味着如果事务成功,则所有更改都应永久生效,因此如果发生任何系统故障,我们将能够检索更新的数据。

关于 DBMS 中事务的事实

使用 DBMS 中的事务已包含各种事实如下:

  1. 事务通常代表一个完整的进程,该进程以有意义、可靠的方式更新或操作数据库。
  2. 尽管如此,它还确保所有步骤都成功完成,或者没有一个成功,从而防止任何半成品更改。
  3. 保存更改(提交)、撤销更改(回滚)和允许安全并行使用(并发控制)等重要操作都属于事务处理的一部分。

常见问题解答

问题 1:为什么事务被称为 DBMS 中的重要元素?

回答:事务之所以重要,是因为它们允许多个操作作为单个逻辑单元执行。没有事务,数据在更新过程中可能会变得不一致,尤其是在系统崩溃、电源故障或同时访问的情况下。事务确保所有步骤要么成功,要么都不成功,从而有效地保持数据库的可靠性。

问题 2:如果在完成之前事务失败会怎样?

回答:如果事务在到达“commit”状态之前的任何阶段都可能失败,那么在这种特殊情况下,选定的数据库集将回滚在过程中所做的所有有效更改。此回滚将系统恢复到其最后一个一致状态,确保没有部分或损坏的数据保留。

结论

respectivos DBMS 中的事务主要确保数据在操作过程中保持安全、准确和一致。还建议它们遵循严格的规则并在特定状态之间转换,以便成功完成或干净地中止而不会有效率地留下错误。此过程可保护数据库免受系统故障的影响,并确保所采取的每项操作的有效性。


下一个主题DBMS 中的元组