关于并发数据更新的问题

我们所使用的技术在源数据中不会出现并发更新的时候效果很好。话句话说,在任何时候都必须只有一个用户对数据库表中特定的行进行读写操作。但是,在许多应用程序中都会出现并发操作的情况。因此,如果没有准备的话,就会产生各种各样的问题。当有多个用户对数据进行更新时(通常将这个问题称为并发)所出现的一些情况,利用下面的例子我们很容易看出出现这种问题的原因。

例如,会计收到一个顾客的传真表明他的地址已经改变。于是她打开浏览器上的顾客记录对地址栏的值进行修改。于此同时,外送(他收到了传真的复印件)决定对这个顾客的送货路径代码进行更新,他打开浏览器上的顾客记录以修改路径代码栏的值。在外送进行操作的时候,会计完成了对地址的编辑,并将记录保存到了数据库中。不久后,外送也将他的更新记录保存到数据库中。

所发生的事情就是外送的记录,当他的记录被打开的时候,会计还没有保存她的修改,因此外送的记录中包含的是原来的地址信息。当外送将自己的记录保存到数据库中的时候,会计所作的修改就会丢失。并发情况的发生并不仅仅限于数据库(它是在各种多用户环境中都会出现的问题,在创建人和数据访问的应用程序时都不能忽略这个问题。

留言列表

发表留言:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。