首页 理论教育SQLServer2012中的事务

SQLServer2012中的事务

【摘要】:在SQL Server 2012中,通过使用事务和锁机制,可以解决数据库的并发性问题。在SQL Server 2012中,事务要求处理时必须满足ACⅠD原则,即原子性、一致性、隔离性(Ⅰ)和持久性。图7—1事务的工作原理事务开始之后,事务所有的操作都陆续写到事务日志中。图7—2事务恢复和检查点

关系型数据库有四个显著的特征,即安全性、完整性、监测性和并发性。数据库的安全性就是要保证数据库中数据的安全,防止未授权用户随意修改数据库中的数据,确保数据的安全。完整性是数据库的一个重要特征,也是保证数据库中的数据切实有效、防止错误、实现商业规则的一种重要机制。在数据库中,区别所保存的数据是无用的垃圾还是有价值的信息,主要是依据数据库的完整性是否健全,即实体完整性、域完整性和参考完整性。对任何系统都可以这样说,没有监测,就没有优化。只有通过对数据库进行全面的性能监测,才能发现影响系统性能的因素和瓶颈,才能针对瓶颈因素,采取切合实际策略,提高系统的性能。并发性是用来解决多个用户对同一数据进行操作时的问题。特别是对于网络数据库来说,这个特点更加突出。提高数据库的处理速度,单单依靠提高计算机的物理速度是不够的,还必须充分考虑数据库的并发性问题,提高数据库并发性的效率

那么如何保证并发性呢?在SQL Server 2012中,通过使用事务和锁机制,可以解决数据库的并发性问题。

在SQL Server 2012中,事务要求处理时必须满足ACⅠD原则,即原子性(A)、一致性(C)、隔离性(Ⅰ)和持久性(D)。

1.原子性

原子性也称为自动性,是指事务必须执行一个完整的工作,要么执行全部数据的操作,要么全部不执行。

2.一致性

一致性是指当事务完成时,必须使所有的数据具有一致的状态。

3.隔离性

隔离性也称为独立性,是指并行事务的修改必须与其他并行事务的修改相互独立。一个事务处理的数据,要么是其他事务执行之前的状态,要么是其他事务执行之后的状态。但不能处理其他事务正在处理的数据。(www.chuimin.cn)

4.持久性

持久性是指当一个事务完成之后,将永久性地存于系统中,即事务的操作将写入数据库中。

事务的这种机制保证了一个事务或者提交后成功执行,或者提交后失败回滚,二者必居其一,因此,事务对数据的修改具有可恢复性,即当事务失败时,它对数据的修改都会恢复到该事务执行前的状态。而使用一般的批处理,则有可能出现有的语句被执行,而另外一些语句没有被执行的情况,从而有可能造成数据不一致。事务的工作原理如图7-1所示。

图7—1 事务的工作原理

事务开始之后,事务所有的操作都陆续写到事务日志中。这些任务操作在事务日志中记录一个标志,用于表示执行了这种操作。当取消这种事务时,系统自动执行这种操作的反操作,保证系统的一致性。系统自动生成一个检查点机制,这个检查点周期性地发生。检查点的周期是系统根据用户定义的时间间隔和系统活动的频度由系统自动计算出来的时间间隔。检查点周期地检查事务日志,如果在事务日志中,事务全部完成,那么检查点将事务日志中的事务提交到数据库中,并且在事务日志中做一个检查点提交标记。如果在事务日志中,事务没有完成,那么检查点将事务日志中的事务不提交到数据库中,并且在事务日志中做一个检查点未提交标记。事务的恢复以及检查点保护系统的完整和可恢复,可以使用如图7-2所示的示例说明。

图7—2 事务恢复和检查点