DBMS中的并发控制是什么?
并发控制概念属于数据库管理系统(DBMS)中的事务。它是DBMS中的一个过程,用于帮助我们管理两个同时执行的进程之间的冲突,这些冲突发生在多用户系统中。
并发可以简单地说是同时执行多个事务。这是为了提高时间效率而需要的。如果许多事务尝试访问同一数据,则会产生不一致性。并发控制需要维护一致性数据。
例如,如果我们使用ATM机并且不使用并发,则多个人无法同时在不同地点取款。这就是我们需要并发的地方。
优势
并发控制的优点如下:
- 减少等待时间。
-
响应时间将减少。
-
资源利用率将提高。
-
系统性能和效率得到提高。
控制并发
在共享数据库上同时执行事务可能会导致多个数据完整性和一致性问题。
例如,如果太多人登录ATM机,每当完成交易时,银行服务器上都应该进行串行更新和同步,否则会提供错误的信息和错误的数据到数据库中。
并发使用中的主要问题
在使用并发时可能出现以下问题:
- 更新将丢失 - 一个事务进行了一些更改,另一个事务删除了该更改。一个事务使另一个事务的更新失效。
-
未提交依赖或脏读问题 - 在一个事务中更新了一个变量,同时另一个事务已开始并删除了该变量的值,在那里变量没有得到更新或提交,在第一个事务上进行的更新给我们提供了错误的值或变量的先前值,这是一个重大问题。
-
不一致的检索 - 一个事务正在更新多个不同的变量,另一个事务正在处理更新这些变量的问题,问题出在不同实例中相同变量的一致性。
并发控制技术
并发控制技术如下:
锁定
锁定确保当前事务对数据项的独占使用权。它首先通过获取锁来访问数据项,在事务完成后释放锁。
锁的类型
锁的类型如下:
- 共享锁[事务只能读取数据项的值]
-
独占锁[用于读取和写入数据项的值]
时间戳
时间戳是由DBMS创建的唯一标识符,用于指示事务的相对起始时间。无论我们进行什么样的事务,它都会存储事务的起始时间并表示特定的时间。
可以使用系统时钟或逻辑计数器来生成时间戳。这可以在启动事务时开始。在分配新的时间戳之后,逻辑计数器会递增。
乐观
它基于冲突是罕见的假设,并且允许事务继续进行而不会强制延迟以确保可串行化,这样更高效。