您的位置: 网界网 > 周报全文 > 正文

[周报全文]数据库访问中锁定策略的使用方法?

2010年04月01日 14:10:49 | 作者:CNW.com.cn | 来源:网界网 | 查看本文手机版

摘要:数据库管理系统在事务范围之内提供锁定机制,采用读取或更新锁,可防止应用程序的不一致行为。

标签
锁定策略
数据库访问

【CNW.com.cn 专稿】数据库管理系统在事务范围之内提供锁定机制,采用读取或更新锁,可防止应用程序的不一致行为。锁的实际使用取决于开发人员使用的SQL语句类型,以及在数据库连接中指定的隔离级别。但是,仅仅依靠数据库本身的锁定是不够的。在某些场景中,可能需要长时间的“逻辑锁”,以防止对某个用户正在使用的数据进行更改。这被称为会话锁定,以区别于仅存在于事务范围内的显式数据库锁定功能,而后者则被称为事务锁定。

带用户界面系统中的会话锁定,通常是用于解决“居间更新”问题。在这种情况下,用户读取一条记录,更改并更新数据库,但另一个用户也在同时读取相同记录并进行更改。在此场景中,其中一个用户所做的更改将丢失。

有两种常用方法处理这种问题。一种是使用逻辑锁的悲观方法,由所有可能访问数据的应用程序理解并遵从(+本站微信networkworldweixin),用于阻止访问业务事务中使用的某行(或多行)数据。这些数据可被“锁定”一段时间,因此使用时须谨慎。

另一种乐观方法则不锁定任何数据,而是维护正在使用的数据的相关信息,这样就可以在用户会话期间得知数据是否已被更改(例如,通过保存数据行的时间戳或序列号信息)。如果应用程序在更新时看到该值已经更改,则不会进行更新,并通知用户需要重试其操作。

更多内容详见http://www.cnw.com.cn/P/2261

[责任编辑:程永来 cheng_yonglai@cnw.com.cn]