其他分享
首页 > 其他分享> > 如何跟女朋友解释清楚什么是事务?

如何跟女朋友解释清楚什么是事务?

作者:互联网

一、什么是事务?

1.1 业务和事务

业务可以理解为公司/领导/老师交给我们的任务,各种各样、花里胡哨。。。。

我们来举例几个场景

1.1.1 业务场景一

完成一个商品购买业务操作如下:

看似很完美??殊不知其中会出现非常非常非常多的问题!

问题一:我查询到了某件商品,并且点击查看详情了,但是商品浏览量增加失败(商家很生气)。

问题二:我选择了购买数量,下单成功,但是数据库中并没有订单记录(插入失败),就导致我查询不到消费记录(我懵了)。

问题三:下单成功之后,我的钱扣了,商家的钱却迟迟不加(我和商家都很生气

1.1.2 业务场景二

情人节到了,小刚为了表达对小美的爱意,打算给小美转账520元让他感动一番。

转账业务操作如下:

看完了场景一的问题之后,场景二会出现上面问题自己应该能想到了吧??

还是我来给你细细道来~~

问题一:支付宝扣小刚520元成功,记录消费记录时失败,导致后面小刚一直查询不到这条消费记录(小刚打电话投诉客服

问题二:支付宝扣小刚520元成功,最终调用发送短信代码失败,没有提醒小刚(导致小刚非常不满意此次消费

问题三:上面的情况都还好,最怕的就是小美没有接到来自小刚转的520元(导致小美向小刚提出分手,小刚疯了)。

以上场景都属于业务,我们在做业务模块的功能时都能遇得到。

1.2 什么是事务

上面我们分析的业务操作多种多样,仅仅是有业务的概念是远远不够的(小刚都分手了!),因此为了保证业务操作的安全,避免"导致小刚分手"这样的悲剧发生,我们提出了事务的概念。


事务(Transaction):如果一个业务操作中多次访问了数据库,必须保证每条SQL语句都执行成功。在一个事务中的所有操作,要么全部成功,要么全部失败。符合这个条件的业务,那就是事务。

即:事务中的任何操作,要么一起成功,要么一起失败。

在这里插入图片描述


我的女朋友懂了,你们的呢?

二、事务的四大特性

一个完整的事务具备有四个特性,分别为原子性(Atomicity)、一致性(Consistency)、隔离性、持久性。

小刚在转账时,如果其中有一个操作失败了,那么所有的操作必须全部回到小刚没有支付520元之前的状态。

不管小刚给小美转了多少钱,小刚和小美加起来的钱永远是一样的。这就跟你不管去淘宝上买多少东西,你和马云加起来的钱总是一样的(前提是马云没有消费你的钱,但这是不可能的,小美也不可能不消费你的钱)。

小刚最多同时只能给一个女生转账,不能给小美和小丽同时转账。

假设上面的转账案例全部完成(小刚成功扣款,小美成功加钱),小刚再也要不回小美的那520元钱了(系统不会无缘无故扣小美520元,然后给你加520元)。

标签:解释,事务,小美,业务,520,小刚,操作,女朋友
来源: https://blog.csdn.net/Bb15070047748/article/details/106555370