数据库-事务解析

 

数据库是一个多用户使用的共享资源,当多个用户并发地存储初级的时候,在数据库中就会产生多个用户同时存储同一数据的情况,若对并发操作不进行控制,就可能产生读取和存储不正确的数据,破坏数据的一致性,而事务是并发控制的基本单位

 

所谓事务

事务是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。举个例子来说,银行转账的工作,从一个账户A扣款,并使用另一个账户B收款,这两个操作要么都不执行,要么都执行,所以应该把这个工作看成是一个事务。

事务是数据库维护数据一致性的单位,事务处理可以确保除非事务性单元内的所有操作都成功完成,在每个事务结束时都能保持事务的一致性,否则不会永久更新面向数据的资源。

我们可以把事务看成是一组SQL语句,这组SQL语句是一个不可分割的逻辑工作单元,这组SQL语句的执行结果应该看作一个整体,永久地修改数据库的内容或者作为一个整体取消对数据库的修改。

 

事务的基本特征(ACID)

事务具有4个基本特征,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID

 

1. 原子性(Atomicity

是指事务中包含的操作都被看作是一个逻辑单元,这个逻辑单元的操作,只允许出现两种情况:

  • 要么全部成功
  • 要么全部失败

这也意味着事务中的所有元素作为一个整体提交(commit回滚(rollback)。事务的所有元素是不可分割的,是一个完整的操作。

 

2. 一致性(Consistency

是指事务开始之前和事务开始之后,数据库都处于一致性状态,数据库的完整性约束没有被破坏。

像之前谈到的例子,从一个账户A扣款,并使用另一个账户B收款,不能因为账户A没有扣款,而账户B却收到了款,反之亦然。

 

3. 隔离性(Isolation

是指对数据库进行修改的多个事务是彼此隔离的,这说明事务必须是独立的,不应该以任何形式影响其他事务。

一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务是不能互相干扰的。

 

4. 持久性(Duration

是指事务完成之后对于系统的影响是永久的,该修改的,的却真实地修改了数据库,即使系统出现故障,也会一直保留。

 

 

事务的相关语句

开始事务:BEGIN TRANSACTION
提交事务:COMMIT TRANSACTION
回滚事务:ROLLBACK TRANSACTION

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值