【发布时间】:2011-08-09 00:16:40
【问题描述】:
在多用户系统中并发执行数据库事务是什么意思?为什么需要并发控制?
我遇到了麻烦。以及并发控制的一些非正式示例。 任何帮助将不胜感激。
【问题讨论】:
标签: database concurrency
在多用户系统中并发执行数据库事务是什么意思?为什么需要并发控制?
我遇到了麻烦。以及并发控制的一些非正式示例。 任何帮助将不胜感激。
【问题讨论】:
标签: database concurrency
在多用户系统中并发执行数据库事务是指任意数量的用户可以同时使用同一个数据库。需要并发控制以避免数据库中的不一致。 例子 假设有两个管理员 Oliver 和 gorge 可以访问组织中相同用户的数据库记录。 Oliver 正在尝试更新特定用户的记录之一,而 Ross 正在尝试更新同一用户的记录。如果没有适当的方法来处理这些数据的同时访问,则可能该用户更新数据的最终结果可能不准确
【讨论】:
我的英语不太好,但我正在尽力回答提到的术语。
在我看来,这个动作太快了,看起来好像是同时按用户数量来完成工作。同时做工作意味着并行地做工作,但在并发的情况下不会发生这种情况。
Concurrency 是两个任务可以在重叠的时间段内启动、运行和完成的时间。这并不一定意味着它们会同时运行。
例如在单核机器上进行多任务处理。
【讨论】:
多用户系统中数据库事务的并发执行意味着任意数量的用户可以同时使用同一个数据库。需要并发控制以避免数据库中的不一致。
以下是这种情况如何导致不一致的示例:
假设我们有两个用户 Alice 和 Bob,他们都可以访问同一个银行帐户。爱丽丝想要存入 100 美元,而鲍勃想要提取 200 美元。假设帐户中有 500 美元,如果他们同时执行操作,以下是执行可能的方式:
两次操作后的新余额应为 400 美元。现在数据库处于不一致状态。
并发控制可以通过向 Alice 提供数据库上的临时“锁定”来防止不一致,直到她完成操作为止。
【讨论】:
嗯,就这么简单...假设您有一家银行,同时有两个人试图从一个有 100 欧元的帐户中提取 100 欧元。这些是并发操作。
您需要确保其中只有一个人设法提取 100 欧元。这是并发处理。
【讨论】: