关系数据库并发控制技术研究

2018-01-18 08:51刘娜
活力 2018年20期
关键词:事务

刘娜

[摘要]数据庫技术是使用计算机管理数据的一门新的科学技术。在科技、文化、经济和军事等各个领域,我们会遇到大量的数据,这些数据不但复杂,而且数据量大,因此如何科学地管理数据是一个极为重要的课题,特别是在多个对象同时访问同一数据时,有可能带来一系列的数据错误,本文讨论的是在数据库并发操作过程中采用的并发控制技术。

[关键词]SQL Server;事务;并发控制;ACID特性

数据库的重要特征是可以为多个用户提供数据共享,当多用户在同一时刻访问同一数据的时候,数据库管理系统(简称DBMS)必须提供并发控制机制来协调并发用户的并发操作带来的问题,以保证并发事务的隔离性,从而达到数据库的数据一致性和完整性。

事务和锁是两个紧密联系的概念。事务使用锁,防止其他用户修改另外一个还没有完成的事务中的数据。在关系数据库中有多种锁,允许事务锁定不同的资源,锁就是保护指定的资源不被其他事务操作,锁是保证并发控制的手段,该过程中锁定的方式称为并发控制机制。

一、事务的概念及特性

事务是数据库的逻辑工作单位,是用户定义的一组操作序列,这些操作要么全做,要么全不做。例如转账交易事务,包含资金转出和转入两个操作,只有当这两个操作都完成,转账才能成功,或者两个操作都不做,也不会影响原始资金,假设只完成转出一个操作,就会造成资金的丢失。事务具有四个特性原子性(Atomicity)、一致性(Consistency)、隔离性(Isotation)和持续性(Durability),这四个特性也简称为ACID特性。

(一)原子性(Atomic)

事务是一个不可分割的工作单位,事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全都不执行。通常与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标,原子性消除了系统处理操作子集的可能性。

(二)一致性(Consistency)

一致性是指当事务完成时,必须使所有数据都具有一致的状态。在关系型数据库中,所有的规则必须应用到事务的修改上,以便维护所有数据的完整性。所有的内部数据结构,在事务结束之后,必须保证正确。事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态。

(三)隔离性(Isolation)

事务的执行不受其他事务的干扰,事务内部的操作及使用的数据对其他并发事务是隔离的.就是指并行事务的修改必须与其他并行事务的修改相互独立。一个事务看到的数据要么是另外一个事务修改这些事务之前的状态,要么是第二个事务已经修改完成的数据,但是这个事务不能看到正在修改的数据,这种特征也称为串行性。

(四)持久性(Durability)

事务一旦提交,对数据库中数据的改变是永久性的。持久性是指当一个事务完成之后,它的影响永久性地产生在系统中,也就是这种修改写到了数据库中。事务完成之后,它对于系统的影响是永久性的,该修改即使出现致命的系统故障也将一直保持。

二、事务的并发操作带来的问题

为了充分利用数据库资源,发挥数据库共享资源的特点,允许多个用户并行地存取数据库,即同一时刻多个事务操作同一数据对象,称为并发操作。事物的并发操作带来的数据不一致性主要包括以下三类:

(一)丢失修改

即事务1和事务2同时读取同一数据,事务1更新了该数据后,事务2也修改该数据并提交,这时事务1的修改就会被事务2修改的值覆盖,这将导致数据丢失,称为丢失修改。

(二)不可重复读

即事务1读取某一数据后,事务2对其进行了修改,当事务1再次读取数据时,得到的数据与第一次读取的值不一样,称为不可重复读。

(三)读“脏”数据

即事务1读取并修改某一数据后将结果写回了磁盘,事务2读取同一数据后,事务1由于某种原因撤销并将修改过的数据恢复原值,这时事务2读取的数据就与数据库中的数据不一致,称为读“脏”数据。

三、数据库并发控制技术

并发控制就是采用正确的方法调度并发操作,对数据访问排队,避免造成数据的不一致性,使一个用户事务的执行不受其他事务的干扰,并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。在某些情况下,这些措施保证了当用户和其他用户一起操作时,所得的结果和他单独操作时的结果是一样的。在某些情况下,这表示用户的工作按预定的方式受其他用户的影响。

结语

数据库的并发操作将会造成一系列的数据出错,本文详细分析了并发操作带来的三类数据不一致性,分别是丢失修改、不可重复读和读“脏”数据,避免数据不一致性的方法和技术就是并发控制。全文通过对事务的描述,事务的并发操作有可能带来的问题,提出相应的并发控制策略,为管理维护数据提供了控制机制保障。

参考文献:

[1]陈俊伽,王韬.关系数据库并发控制机制研究[J].科学技术与工程,2007,7 (18):4635-4637+4643.

[2]毛应爽,郑永春.常用关系数据库并发控制的比较研究[J].制造业自动化,2010 (13):78-80.

[3]陈秋月,张剑妹.关系数据库的并发控制与实现途径[J].长治学院学报,2012,29 (5):30-33.

猜你喜欢
事务
针对基于B/S架构软件系统的性能测试研究
一种Web服务组合一致性验证方法研究
Hibernate框架持久化应用及原理探析
SQL SERVER中的事务处理教学研究