控制并发访问的主要方法?
发布网友
发布时间:2022-04-08 21:01
我来回答
共2个回答
热心网友
时间:2022-04-08 22:30
选B
并发控制的主要技术有封锁、时间戳、和乐观控制法,商用的DBMS一般都采用封锁方法。
封锁是实现并发控制的一个非常重要的技术。
所谓封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。
就解释这么些,希望对你有所帮助,我并不是为了分数来的,我是为了感受这种大家互相提问以及解答从而达到学习的方式。。。
热心网友
时间:2022-04-08 23:48
保守式并发控制 - 在从获取记录直到记录在数据库中更新的这段时间内,该行对用户不可用。开放式并发控制 - 只有当实际更新数据时,该行才对其他用户不可用。更新将在数据库中检查该行并确定是否进行了任何更改。如果试图更新已更改的记录,则将导致并发冲突。最后的更新生效 - 只有当实际更新数据时,该行才对其他用户不可用。但是,不会将更新与初始记录进行比较;而只是写出记录,这可能就改写了自上次刷新记录后其他用户所进行的更改。
保守式并发
保守式并发通常用于两个目的。第一,在某些情况下,存在对相同记录的大量争用。在数据上放置锁所费的成本小于发生并发冲突时回滚更改所费的成本。
在事务过程中不宜更改记录的情况下,保守式并发也非常有用。库存应用程序便是一个很好的示例。假定有一个公司代表正在为一名潜在的客户检查库存。您通常要锁定记录,直到生成订单为止,这通常会将该项标记为“已订购”状态并将其从可用库存中移除。如果未生成订单,则将释放该锁,以便其他检查库存的用户得到准确的可用库存计数。
但是,在断开的结构中无法进行保守式并发控制。连接打开的时间只够读取数据或更新数据,因此不能长时间地保持锁。此外,长时间保留锁的应用程序将无法进行伸缩。
开放式并发
在开放式并发中,只有在访问数据库时才设置并保持锁。这些锁将防止其他用户在同一时间更新记录。除了进行更新这一确切的时刻之外,数据始终可用。有关更多信息,请参见开放式并发。
当试图更新时,已更改行的初始版本将与数据库中的现有行进行比较。如果两者不同,更新将失败,并引发并发错误。这时,将由您使用所创建的业务逻辑来协调这两行。