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

问题描述 投票:10回答:3

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

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

database concurrency
3个回答
10
投票

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

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

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

  1. 爱丽丝获得初始金额(x = $ 500)
  2. 鲍勃获得初始金额(x = $ 500)
  3. 爱丽丝存款100美元(x + 100)= 600美元
  4. Bob退出200美元(x - 200)= 300美元
  5. Alice保存新余额(600美元)
  6. 鲍勃保存新余额(300美元)

两次行动后的新余额应为400美元。现在数据库处于不一致状态。

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


4
投票

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

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.