Database 数据库问题-事务
数据库处于不一致状态意味着什么Database 数据库问题-事务,database,Database,数据库处于不一致状态意味着什么 我知道它与事务相关,但不完全确定它的含义是什么?这意味着数据不一致,可能是因为某些表在未更新相关表的情况下进行了更新。这通常可能意味着几件事:损坏的数据库文件(在Access中经常发生)或者事务仍在处理中或未完成,或者与数据库相关的文件处于打开状态。一旦“工作”完成,状态应返回到“一致”。假设您有一个银行应用程序,并且您没有使用交易。您打算将资金从一个帐户转移到另一个帐户,首先执行类似于更新余额集值=值+20美元,其中account=account2,然后执行更新
我知道它与事务相关,但不完全确定它的含义是什么?这意味着数据不一致,可能是因为某些表在未更新相关表的情况下进行了更新。这通常可能意味着几件事:损坏的数据库文件(在Access中经常发生)或者事务仍在处理中或未完成,或者与数据库相关的文件处于打开状态。一旦“工作”完成,状态应返回到“一致”。假设您有一个银行应用程序,并且您没有使用交易。您打算将资金从一个帐户转移到另一个帐户,首先执行类似于
更新余额集值=值+20美元,其中account=account2
,然后执行更新余额集值=值-$20,其中account=account1
。现在让我们说在这些查询(服务器崩溃、提交查询崩溃的客户机,或者甚至另一个客户端进入中间查询并弄乱事情)之间发生了一些不好的事情……你的数据库有问题
对于事务,您的多个查询将是原子的。那就是。。要么全部,要么什么都不做——在提交完整事务之前,没有其他客户端可以看到您的部分更改,并且数据库不会记录一个更改而不记录另一个更改
余额多少有些琐碎和人为的,但是当向多个表添加多个条目时,同样的问题很容易发生,每个条目都是相关的。典型情况发生在具有并发进程的事务环境中,解释如下:
- 处理表A中的1个请求数据
- 处理表A中的2请求数据
- 流程1更新表A中的数据
- 过程2使用表A中未更新的数据进行详细说明