第四章 数据更新 4-3 事务

Posted mumulin99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四章 数据更新 4-3 事务相关的知识,希望对你有一定的参考价值。

一、什么是事务
在RDBMS中,事务是对表中数据进行更新的单位。简单来说,事务就是需要在同一个处理单元中执行的一系列更新处理的集合。
 
二、创建事务

技术分享图片

事务的开始语言:

技术分享图片

例子:

技术分享图片

事务结束的命令:
(1)COMMIT 提交处理
COMMIT是提交事务包含的全部更新处理的结束指令。相当于文件处理中的覆盖保存。
一旦提交,就无法恢复到事务开始前的状态了。

技术分享图片

注:虽然我们不知道事务开始的时间点,但是事务结束时一定要仔细进行确认。
 
(2)ROLLBACK 取消处理
ROLLBACK是取消事务包含的全部更新处理的结束指令,相当于文件处理中的放弃保存。
一旦回滚,数据库就会恢复到事务开始之前的状态。

技术分享图片

例子:

技术分享图片

三、事务处理何时开始
 
在不使用指令而悄悄开始事务的情况下,应该如何区分各个事务呢?
分两种情况:
(1)自动提交模式:每一条SQL语句就是一个事务。
(2)直到用户执行COMMIT或者ROLLBACK为止算一个事物。
使用(1)规则的数据库有SQL Server、PostgreSQL、mysql
使用(2)规则的数据库有Oracle
 
三、ACID特性
DBMS的事务都遵循四种特性,ACID特性,所有DBMS都必须遵守的规则。
(1)原子性Atomicity
原子性是指事务结束时,其中所包含的更新处理要么全部执行,要么完全不执行,也就是说要么占有一切,要么一无所有。
(2)一致性 Consistency
一致性是指事务中包含的处理要满足数据库提前设置的约束,如主键约束,NOT NULL约束等。对于SQL来说,不合法的SQL会被回滚。一致性也称为完整性。
技术分享图片

技术分享图片

(3)隔离性 Isolation
隔离性指的是在保证不同事务之间互不干扰的特性。该特性保证了事务之间不会互相嵌套。
此外,在某个事务中进行的更改,在该事务结束之前,对其他事务而言是不可见的。
(4)持久性 Durability
持久性称为耐久性,指的是在事务(不论是提交还是回滚)结束后,DBMS能够保证该时间点的数据状态会被保存的特性。
即使由于系统故障导致数据丢失,数据库也一定能够通过某种手段进行恢复。

以上是关于第四章 数据更新 4-3 事务的主要内容,如果未能解决你的问题,请参考以下文章

数据库系统原理第十四章

MySQL学习之第四章-事务

第四章Redis的事务锁及管理命令

数据库系统概念笔记——第四章:中级SQL

第四章数据库应用系统功能设计与实施

2017.06.29数据挖掘基础概念第四章