个性化阅读
专注于IT技术分析

DBMS事务处理概念

  • 事务是一组逻辑相关的操作。它包含一组任务。
  • 交易是一个动作或一系列动作。它由单个用户执行, 以执行用于访问数据库内容的操作。

示例:假设一家银行的雇员将800卢比从X的帐户转入Y的帐户。这个小事务包含几个底层任务:

X的帐户

Open_Account(X)
Old_Balance = X.balance
New_Balance = Old_Balance - 800
X.balance = New_Balance
Close_Account(X)

Y的帐户

Open_Account(Y)
Old_Balance = Y.balance
New_Balance = Old_Balance + 800
Y.balance = New_Balance
Close_Account(Y)

交易操作

以下是交易的主要操作:

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

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

让我们举一个例子来说明如何从一个包含以下操作的帐户中借记交易:

1.	R(X);
2.	X = X - 500;
3.	W(X);

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

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

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

例如:如果在上述交易中, 借记交易在执行操作2之后失败, 则X的值将在数据库中保留4000, 这是银行不可接受的。

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

提交:用于永久保存所做的工作。

回滚:用于撤消已完成的工作。

赞(0)
未经允许不得转载:srcmini » DBMS事务处理概念

评论 抢沙发

评论前必须登录!