首页 > 编程学习 > 达梦数据库事务

达梦数据库事务

发布时间:2022/11/24 23:14:28

我们知道数据库事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)四个特性,简称 ACID。

1. 原子性
事务的原子性保证事务包含的一组更新操作是原子不可分的,也就是说这些更新操作是
一个整体,对数据库而言全做或者全不做,不能部分地完成。这一性质即使在系统崩溃之后
仍能得到保证,在系统崩溃之后将进行数据库恢复,用来恢复和撤销系统崩溃时处于活动状
态的事务对数据库的影响,从而保证事务的原子性。系统对磁盘上的任何实际数据的修改之
前都会将修改操作本身的信息记录到磁盘上。当发生崩溃时,系统能根据这些操作记录当时
该事务处于何种状态,以此确定是撤销该事务所做出的所有修改操作,还是将修改的操作重
新执行。
2. 一致性
数据一致性是指表示客观世界同一事务状态的数据,不管出现在何时何处都是一致的、
正确的、完整的。换句话说,数据一致性是任何点上保证数据以及内部数据结构的完整性,
B 树索引的正确性。
一致性要求事务执行完成后,将数据库从一个一致状态转变到另一个一致状态。它是一
种以一致性规则为基础的逻辑属性,例如在转账的操作中,各账户金额必须平衡,这一条规
则对于程序员而言是一个强制的规定。事务的一致性属性要求事务在并发执行的情况下事务
的一致性仍然满足。
3. 隔离性
事务是隔离的,意味着每个事务的执行效果与系统中只有该事务的执行效果一样,也就
是说,某个并发事务所做的修改必须与任何其他的并发事务所做的修改相互隔离。这样,只
有当某个值被一个事务修改完并提交后才会影响到另一个事务。事务只会识别另一并发事务
修改之前或者修改完成之后的数据,不会识别处于这中间状态的数据。事务的隔离行为依赖
于指定的隔离级别。
4. 持久性
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其
他操作和数据库故障不应该对其有任何影响。即一旦一个事务提交,DBMS 保证它对数据库
中数据的改变应该是永久性的。如果 DM 数据库或者操作系统出现故障,重启的时候,数据库会自动恢复。如果某个数据驱动器出现故障,并且数据丢失或者被损坏, 可以通过备份和联机重做日志来恢复数据库。需要注意的是,如果备份驱动器也出现故障, 且系统没有准备其他的可靠性解决措施,备份就会丢失,那么就无法恢复数据库了。
事务隔离性

脏读

在一个事务中可以读到其他未提交的事务产生或变更的数据。

不可重复读

不可重复读指的是在同一事务内,不同的时刻读到的同一批数据可能是不一样的,可能会受到其他事务的影响,比如其他事务改了这批数据并提交了。通常指数据更新(UPDATE)操作。

幻读

在一个事务中, 再次执行同样的SQL, 得到的结果可能不一致。通常指数据插入(INSERT)操作。

达梦数据库中的事务
达梦没有显式指定事务的开始,写入第一个语句是事务的开始。
事务的结束是commit或rollback语句,也可以隐式提交事务。

一个事务提交之后终止,不可重复提交。

隐式提交:可以在DM管理工具设置自动提交,运行SQL语句,隐式提交事务。如下图,勾选自动提交选项即可实现隐式提交
DM数据库默认的事务隔离级别是读提交,与Oracle相同。

达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心达梦数据库产品体验站,DM8在线试玩,达梦数据库全系列产品免费下载,官方权威的快速上手文档和产品手册,最活跃的达梦技术社区,面向全行业ISV厂商免费的云适配服务。https://eco.dameng.com


本文链接:https://www.ngui.cc/zz/1443264.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000