在多用户系统中并发执行数据库事务是什么意思?为什么需要并发控制?

时间:2011-04-19 20:44:29

标签: database concurrency

多用户系统中并发执行数据库事务的含义是什么?为什么需要并发控制?

我遇到了麻烦。什么是并发控制的非正式示例。 任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:9)

在多用户系统中并发执行数据库事务意味着任意数量的用户可以同时使用同一数据库。需要并发控制以避免数据库中的不一致。

以下是此方案如何导致不一致的示例:

假设我们有两个用户,Alice和Bob,他们都可以访问同一个银行帐户。爱丽丝希望存入100美元,鲍勃想要提取200美元。假设帐户中有500美元,那么如果他们同时执行操作,可能的执行方式如下:

  1. Alice获得初始金额(x = $ 500)
  2. Bob获得初始金额(x = $ 500)
  3. Alice存款$ 100(x + 100)= $ 600
  4. Bob退出$ 200(x - 200)= $ 300
  5. Alice保存新余额($ 600)
  6. Bob保存新余额($ 300)
  7. 两次行动后的新余额应为400美元。现在数据库处于不一致状态。

    并发控制可以通过向Alice提供对数据库的临时“锁定”来防止不一致,直到她完成了她的操作。

答案 1 :(得分:4)

嗯,就这么简单......假设你有一家银行,同时有两个人试图从100欧元的账户中提取100欧元。这些是并发操作。

您需要确保其中只有一个设法提取100欧元。这是并发处理。

答案 2 :(得分:0)

我的英语不太好,但我正尽力回答上述提到的那个词:..)

在我看来,这个动作太快了,以至于它似乎同时按照用户的数量进行工作....同时做这项工作意味着平行地完成工作..但这个不要发生在并发的情况...并发是指两个任务可以在重叠的时间段内启动,运行和完成。这并不一定意味着它们都会在同一时刻运行。例如。在单核机器上进行多任务处理。

答案 3 :(得分:-1)

在多用户系统中并发执行数据库事务是指任意数量的用户可以同时使用同一数据库。为了避免数据库不一致,需要进行并发控制。 例子 假设有两个管理员Oliver和gorge可以访问组织中同一用户的数据库记录。奥利弗(Oliver)试图同时更新特定用户的记录之一,罗斯(Ross)试图更新同一用户的记录。如果没有适当的方法来同时处理这些数据,则该用户更新数据的最终结果可能不准确