首页 > 编程知识 正文

简述什么是事务,事务的例子

时间:2023-05-03 13:10:30 阅读:186763 作者:1718

1 .什么是事务:

事务是程序中的一系列严格操作,所有操作的执行都必须成功。 否则,在每个操作中所做的更改将被撤消。 这也是事务的原子性质。

2 .事务特性:

事务特性分为四种:原子性(Atomicity )、一致性(Consistency )、隔离性(Isolation )和持久性(Durability ) (简称ACID )。

事务处理的特点如下

原子性:事务必须是原子工作单元; 关于其数据修正,要么全部执行,要么全部不执行。 通常,与事务相关的操作有一个共同的目标,并且是相互依存的。 如果只执行这些操作的一个子集,则可能会破坏整个事务的目标。 原子性消除了系统处理操作子集的可能性。

一致性:事务必须在完成时使所有数据保持一致。 相关数据库必须将所有规则应用于事务更改,以维护所有数据的完整性。 事务结束时,所有内部数据结构(如b树索引和双向链表)都必须正确。 一些维护一致性的责任由APP应用程序开发人员承担,必须确保APP应用程序强制执行所有已知的完整性约束。 例如,如果要开发用于转移的APP应用程序,请不要在转移过程中任意移动小数点。

隔离:合并事务所的修改应与其他合并事务所的修改隔离。 事务显示数据时,数据的状态可能是另一个并发事务更改数据之前的状态,也可能是另一个事务更改数据之后的状态,事务不会显示中间状态的数据。 这被称为独立性。 因为您可以重新加载开始数据,然后重新播放一系列事务,以便数据以与原始事务相同的状态结束。 如果事务是可序列化的,则会获得最高隔离级别。 在此级别上,从一组可并行执行的事务中获得的结果与连续执行每个事务所获得的结果相同。 由于高度隔离限制了可同时执行的事务数,因此某些APP应用程序降低了隔离级别以提高吞吐量。

持久性:事务完成后,对系统的影响将是持久性的。 即使发生致命的系统故障,该修复也会一直保持。

事务可以保证数据库的完整性,避免由于各种原因导致数据库内容不一致或产生错误的数据,事务可以保证数据的安全性,事务控制实际上控制着数据访问的安全性

3 .举个例子:

要创建用户,必须对三个表和三个sql进行操作。

sql1:='insert into table1. ';

sql2:='insert into table2. ';

sql3:='insert into table3. ';

如果不添加事务,sql2将通过,直到sql1,但sql3执行了错误.

数据库中的相关数据可能无法同步,可能会产生很多影响

这个时候需要追加事务

==========事务开始=====================事务开始

sql1:='insert into table1. ';

sql2:='insert into table2. ';

sql3:='insert into table3. ';

==========事务提交==================事务提交

如果中途发生事故,则回滚事务.

除非这三个sql都通过,否则在提交事务之后,所有数据最终都会写入数据库

如果发生任何sql执行错误,事务将回退,并且上一操作成功的sql也将无效。

不会签入所有数据。 保证数据库中的每个表数据一致。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。