
务的:原子性、一致性、分离性、持久性
原子性、一致性、分离性、持久性
(1) 原子性
事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改 *** 作要么全部执行,要么完全不执行。这种特性称为原子性。
事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。就是说事务的 *** 纵序列或者完全应用到数据库或者完全不影响数据库。这种特性称为原子性。
假如用户在一个事务内完成了对数据库的更新,这时所有的更新对外部世界必须是可见的,或者完全没有更新。前者称事务已提交,后者称事务撤消(或流产)。DBMS必须确保由成功提交的事务完成的所有 *** 纵在数据库内有完全的反映,而失败的事务对数据库完全没有影响。
(2) 一致性
事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。
一致性处理数据库中对所有语义约束的保护。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。例如,当数据库处于一致性状态S1时,对数据库执行一个事务,在事务执行期间假定数据库的状态是不一致的,当事务执行结束时,数据库处在一致性状态S2。
(3) 分离性
分离性指并发的事务是相互隔离的。即一个事务内部的 *** 作及正在 *** 作的数据必须封锁起来,不被其它企图进行修改的事务看到。
分离性是DBMS针对并发事务间的冲突提供的安全保证。DBMS可以通过加锁在并发执行的事务间提供不同级别的分离。假如并发交叉执行的事务没有任何控制, *** 纵相同的共享对象的多个并发事务的执行可能引起异常情况。
DBMS可以在并发执行的事务间提供不同级别的分离。分离的级别和并发事务的吞吐量之间存在反比关系。较多事务的可分离性可能会带来较高的冲突和较多的事务流产。流产的事务要消耗资源,这些资源必须要重新被访问。因此,确保高分离级别的DBMS需要更多的开销。
(4)持久性
持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保证。
持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即对已提交事务的更新能恢复。一旦一个事务被提交,DBMS必须保证提供适当的冗余,使其耐得住系统的故障。所以,持久性主要在于DBMS的恢复性能。
数据库事务是指作为单个逻辑工作单元执行的一系列 *** 作。设想网上购物的一次交易,其付款过程至少包括以下几步数据库 *** 作:· 更新客户所购商品的库存信息· 保存客户付款信息--可能包括与银行系统的交互· 生成订单并且保存到数据库中· 更新用户相关信息,例如购物数量等等正常的情况下,这些 *** 作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。-----------------------------------------------资料: >
以oracle自带的scott为例:
1、select
t1ename,t2ename
as
mgrname,ddname
from
scottemp
t1,scottemp
t2,scottdept
d
where
t1mgr=t2empno
and
t2deptno=ddeptno
2、select
d
from
scottdept
d,(select
rownum
n,
tt
from
(select
count()
c,deptno
from
scottemp
group
by
deptno
order
by
c
desc)
tt)t
where
tn=1
and
tdeptno=ddeptno
3、select
from(select
t,dense_rank()over
(partition
by
deptno
order
by
sal)
r
from
scottemp
t
where
deptno=30)
where
r<=3
4、select
from(select
t,rank()over
(partition
by
n
order
by
sal)
r
from
(select
''
as
n,tt
from
scottemp
tt)
t)
where
r
between
5
and
10
一 事务处理介绍
事务是这样一种机制,它确保多个SQL语句被当作单个工作单
元来处理。事务具有以下的作用:
一致性:同时进行的查询和更新彼此不会发生冲突,其他
用户不会看到发生了变化但尚未提交的数据。
可恢复性:一旦系统故障,数据库会自动地完全恢复未完
成的事务。
二 事务与一致性
事务是完整性的单位,一个事务的执行是把数据库从一个一
致的状态转换成另一个一致的状态。因此,如果事务孤立执行时
是正确的,但如果多个事务并发交错地执行,就可能相互干扰,
造成数据库状态的不一致。在多用户环境中,数据库必须避免同
时进行的查询和更新发生冲突。这一点是很重要的,如果正在被
处理的数据能够在该处理正在运行时被另一用户的修改所改变,
那么该处理结果是不明确的。
已提交的事务就是已经成功执行,并也入到对应的数据表中。
数据库在执行事务的过程是不会在实际的数据表中 *** 作数据的。
只有当你事务执行成功,才会提交事务。
否则,事务就会回滚,此时事务对数据表无任何作用。
以上就是关于请举个具体例子简单介绍一下数据库事务的4大特性全部的内容,包括:请举个具体例子简单介绍一下数据库事务的4大特性、数据库中的事务是什么、Oracle定义事务的SQL语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)