你真的理解数据库事务吗?

Posted 奔跑吧测试人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你真的理解数据库事务吗?相关的知识,希望对你有一定的参考价值。



一、事务的四大特性

⑴ 原子性(Atomicity)

事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。

⑵ 一致性(Consistency)

事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。

⑶ 隔离性(Isolation)

多个事务并发执行时,一个事务的执行不应影响其他事务的执行。

⑷ 持久性(Durability)

一个事务一旦提交,他对数据库的修改应该永久保存在数据库中。


举例:

用一个常用的“A账户向B账号汇钱”的例子来说明如何通过数据库事务保证数据的准确性和完整性。熟悉关系型数据库事务的都知道从帐号A到帐号B需要6个操作:

1、从A账号中把余额读出来(500)。
2、对A账号做减法操作(500-100)。
3、把结果写回A账号中(400)。
4、从B账号中把余额读出来(500)。
5、对B账号做加法操作(500+100)。
6、把结果写回B账号中(600)。


详情请点击左下角阅读原文


-------欢迎关注奔跑吧测试人--------




以上是关于你真的理解数据库事务吗?的主要内容,如果未能解决你的问题,请参考以下文章

多线程中的事务回滚,你真的用对了吗?

什么是三层架构?你真的理解分层的意义吗?

你真的理解函数式编程吗?

会优化,你真的会优化吗?其实你可能真的缺少一份理解数据库篇

理解片段事务期间片段的生命周期方法调用

你真的理解Java的按引用传递吗?