RSS
热门关键字:  项目经理  分析师  中间件  报名费  CEO





事务的基本概念

来源: 作者: 时间:2008-04-02 点击:

1. 事务定义


事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位.一个事务可以是一条SQL语句,也可以是一组SQL语句.如银行转帐操作,从A帐号转入1000元资金到B帐号,包括从A帐号取出1000元和将1000元存入B帐号两个操作,如果从A帐号取出1000元成功而B帐号存入1000元失败,或者从A帐号取出1000元失败而B帐号存入1000成功,只要其中一个操作失败,转帐操作失败.事务是这样一种机制,它确保多个SQL语句被当作单个工作单元来处理.


在SQL语言中,事务控制的语句有:BEGIN TRANSACTION,COMMIT,ROLLBACK.如果用户没有指明事务的开始和结束,DBMS按缺省规定自动划分事务.用户以BEGIN TRANSACTION开始事务,以COMMIT或ROLLBACK结束事务.COMMIT表示提交事务,用于正常结束事务.ROLLBACK表示回滚,在事务执行过程中发生故障,事务不能继续,撤消事务中所有已完成的操作,回到事务开始的状态.


2. 事务性质


事务具有四个特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持续性(Durability).简称为ACID特性.


(1) 原子性


事务是数据库的逻辑工作单位,被看做一个单一的,不可分割的操作单元.事务中包括的所有操作要么都做,要么都不做.


(2) 一致性


事务执行的结果必须是使数据库从一个一致状态变到另一个一致状态.因此当数据库只包含成功事务提交的结果时,就说数据库处于一致状态.如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据库的所有已完成的操作全部撤消,回滚到事务开始时的一致状态.


(3) 隔离性


一个事务的执行不能被其他事务干扰.即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰.


(4) 持续性


指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的.接下来的其他操作或故障不应该对其执行结果有任何影响.


保证事务ACID特性是事务处理的重要任务.事务ACID特性可能遭到破坏的因素有:


(1) 多个事务并行运行时,不同事务的操作交叉执行.


(2) 事务在运行过程中被强行停止.


在第一种情况下,数据库管理系统必须保证多个事务的交叉运行不影响这些事务的原子性;在第二种情况下,数据库管理系统必须保证被强行终止的事务对数据库和其它事务没有任何影响.这些就是数据库管理系统中并发控制和恢复机制的任务.





最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
企业电子商务
赞助商