数据库 浅谈数据库事物

╰+哭是因爲堅強的太久メ 2022-05-24 14:12 316阅读 0赞

数据库事物

什么是事物?

事物是应用程序一系列的严密操作。所有操作必须全部完成,否则每个操作中所做的更改都会被回滚。
事物的结果有两种
1,操作全部成功。
2,操作只要失败一条,则全部回滚。回滚到事物开始之前。

事物的四大特性

  1. 原子性
    事物中包含的操作要么都做,要么都不做
  2. 一致性
    事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。
  3. 隔离性
    一个事物的执行不被其他事物干扰,即一个事物内部的操作及使用的数据对其他并发事物是个隔离的,并发执行的各个事物之间不能互相干扰。
  4. 持久性
    一个事物一旦提交,它对数据库中的数据的改变就应该是永久性的,之后的其他操作或者故障不应该对其执行结果有任何影响。

举个例子

A想要从自己的帐户中转3000块钱到B的帐户里。那个从A开始转帐,到转帐结束的这一个过程,称之为一个事务。在这个事务里,要做如下操作:

从A的帐户中减去3000块钱。如果A的帐户原来有3000块钱,现在就变成0块钱了。

在B的帐户里加3000块钱。如果B的帐户如果原来有0块钱,现在则变成3000块钱了。

如果在A的帐户已经减去了3000块钱的时候,忽然发生了意外,比如停电什么的,导致转帐事务意外终止了,而此时B的帐户里还没有增加3000块钱。那么,我们称这个操作失败了,要进行回滚。回滚就是回到事务开始之前的状态,也就是回到A的帐户还没减3000块的状态,B的帐户的原来的状态。此时A的帐户仍然有3000块,B的帐户仍然有0块。(一致性)

我们把这种要么一起成功(A帐户成功减少3000,同时B帐户成功增加3000),要么一起失败(A帐户回到原来状态,B帐户也回到原来状态)的操作叫原子性操作。

如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。这种特性就叫原子性

发表评论

表情:
评论列表 (有 0 条评论,316人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数据库事务

    事务的四大特性(ACID) 原子性 原子性是指事务包含的所有操作要么全部成功,要么全部失败。 例小王要向小李转账200元。则账要么转账成功小王账户减200元...

    相关 数据库范式

    一、相关概念 超键(super key):能唯一标识元组的属性集。 候选键(candidate key):不含有多余属性的超键(最小的超键)。 主键(primary ke

    相关 数据库事务

    事务是并发控制的基本单位。 事务用以维护数据库的完整性,在每个事务结束时,都能保持数据一致性。 事务是作为单个逻辑工作单元执行的一系列操作,这些操作要么都执行,要么都不执行

    相关 数据库设计

    第一章 需求分析 设计简介 根据业务需要,结合选用的DBMS,设计出最有的数据存储模型并建立好数据库中的表结构及表与表之间的关系使之有效的存储和高效的访问。  !

    相关 数据库设计

    第一章 需求分析 设计简介 根据业务需要,结合选用的DBMS,设计出最有的数据存储模型并建立好数据库中的表结构及表与表之间的关系使之有效的存储和高效的访问。 ![