`

一个打酱油的故事来理解事务的ACID特性

阅读更多

       对于事务的特性,或者说要求,提出的规则是ACID,也就是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和持久性(Durability)。

       从一般的字面上理解,会有些模糊,下面举个例子来说明。

       妈妈给小明(嗯,小明又出现了)100元,去买两包酱油。那么,对于小明来说,这就是一次事务。

      小明得拿着钱,下楼,过马路,到小店,拿两包酱油,去结账,找回钱,回家,交给妈妈两包酱油,同时还有多余的钱。这一系列动作,就构成了一个事务。必须同时拿回酱油和余钱。如果小明没把酱油和余钱同时给妈妈,那么这个事务就不是成功的。如果因为其它原因,比如今天酱油居然因为美国不出口大豆给中国,酱油短缺,那么小明得拿回100元。这就是原子性,事务中的一系列结果,要么都成功,要么都不成功。所以,妈妈说明:记得找回钱。

      假设酱油1元一包,那多余的钱应该是98元,如果变成96元,那一定是小明拿着钱,嘴馋了,还买一个根棒棒糖。。。这个就破坏了一致性,事务中一系列约束,必须不被破坏。所以,妈妈加一句:找回98元,别买零食。

      如果小明去买酱油的时候,还拉上隔壁小红一起去,可小红正在做作业呢,很显然,干扰了小红,这就破坏了事务的隔离性,妈妈在‘设计’这个事情的时候,就告诉小明:别招惹隔壁家小红啊。这就保证了事务的隔离性,一个事务不应该影响其它事务,也不依赖其它事务

      小明回到家以后,把酱油和钱都交给了妈妈,妈妈说放在桌上吧,那小明随手一放,结果瓶子没放稳,打碎了,那。。。该挨骂了。。。因为破坏了事务的持久性,事务的结果是永久的。所以妈妈得提醒小明:别把瓶子打碎了,不然你中午别吃饭了。叫喊

       最后再啰嗦一句:所谓ACID,就是应该从设计事务者的角度来考虑的原则,预测各种出问题的细节,针对性提供改善方案,从而设计出一个完美的事务。

分享到:
评论

相关推荐

    Discuz! 打酱油模板

    众多模板中的一款,其名称可能源于网络流行语“打酱油”,寓意轻松、随意的氛围。这款模板以其独特的设计和易用性吸引了不少用户。 1. **模板特点**: "打酱油模板"主要特点是简洁明快,色调柔和,旨在为用户提供...

    范例双缓冲之超级打酱油

    "范例双缓冲之超级打酱油"这个项目可能是一个示例程序,它利用了双缓冲技术和CImageList类来实现类似FLASH的动画效果。 首先,我们来详细了解一下双缓冲的概念。在没有使用双缓冲的情况下,每当图形界面更新时,...

    作业:打酱油代码hello

    作业:打酱油代码hello

    通达信指标公式源码打酱油 主图源码.doc

    打酱油是自定义的一个摆动指标,计算当前收盘价与前一日收盘价的差值占绝对差值的百分比,通过SMA函数平滑处理。当打酱油指标超过84,会显示'油客逃顶'的文本提示,表明市场可能到达顶部,同时配合DRAWICON显示卖出...

    MYSQL中事务、日志、锁

    - **原子性**(Atomicity):一个事务的所有操作要么全部完成,要么完全不执行。 - **一致性**(Consistency):事务执行前后,数据必须保持一致的状态。 - **隔离性**(Isolation):事务之间的操作互不影响。 - **...

    打酱油要小费话题作文1000字.pdf

    打酱油要小费话题作文1000字.pdf

    C语言之分酱油

    "分酱油"这个题目可能听起来有些生活化,但它实际上是一个编程问题,旨在考察C语言的基本语法和逻辑控制。现在,我们将深入探讨如何用C语言解决这一问题。 首先,我们来理解这个问题的核心:假设你需要将一整瓶酱油...

    酱油生产技术(七)低盐固态发酵法酱油生产技术(一).pdf

    同时,对发酵过程中产生的代谢产物进行分析,如氨基酸组成、香气成分、抗氧化物质等,有助于我们理解酱油的营养特性和风味形成机制。 总的来说,低盐固态发酵法酱油生产技术是一种兼顾健康与口感的生产工艺,它的...

    c#文件传输酱油版

    6. **用户界面**:如果这是一个图形用户界面(GUI)程序,那么可能需要使用WinForms或WPF等技术来构建交互界面,让用户能够选择文件并启动传输过程。 综上所述,“c#文件传输酱油版”项目虽然简单,但涵盖了C#编程...

    浅谈酱油生产过程中的电气控制.rar

    总的来说,酱油生产过程中的电气控制是一个集成了自动化、传感器技术、控制理论和工艺知识的复杂系统。通过对顺序、条件和规律的有效管理,可以实现高效、稳定且品质一致的酱油生产。而这一领域的持续发展,也将推动...

    离散数学分酱油

    "分酱油"这个问题虽然标题简洁,但其实是一个涉及算法和逻辑推理的典型实例,常用于教授离散数学中的组合优化概念。在编程领域,这可能是一个关于如何有效地分配资源的问题。 描述中提到使用C语言来实现,这意味着...

    行业文档-设计装置-一种酱油瓜子.zip

    酱油瓜子作为一种深受消费者喜爱的休闲零食,其制作工艺涉及到多个环节,包括原料选择、清洗、炒制、调味等,每个环节都可能有独特的设计和技术应用。 首先,设计装置在食品行业中起着至关重要的作用。它关乎到生产...

    酱油基础知识及市场分析.pptx

    综合来看,酱油市场是一个复杂且动态的领域,不仅受到地域文化、消费习惯的影响,还与品牌定位、产品创新和市场策略密切相关。因此,对酱油市场的深入理解和持续分析对于生产商和零售商来说至关重要,以便更好地满足...

    hackerchenzhuo#ccf_pat_leetcode.etc#CCF 201709-1-打酱油1

    样例输入样例输出样例说明把40元分成30元和10元,分别买3瓶和1瓶,其中3瓶送1瓶,共得到5瓶。样例输入样例输出样例说明把80元分成30元和50元,分别买3瓶

    降低榨菜酱油中铵盐含量超标的工艺研究

    尤其在榨菜酱油的生产过程中,如何有效控制和降低铵盐含量,以满足国家标准,成为了一个值得研究的课题。铵盐含量超标会导致榨菜酱油不符合生产标准,影响产品的质量和市场销售。本文即是对榨菜酱油中铵盐含量超标...

    jQuery 时间插件 瓜头酱油汉化

    jQuery是一个高效、简洁且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。通过使用jQuery,开发者可以编写更少的代码来实现更复杂的功能,从而提高开发效率。 接着,我们来看看...

    行业文档-设计装置-一种酱油[2].zip

    在给定的压缩包文件“行业文档-...综上所述,这份“一种酱油[2].pdf”文档可能涵盖了酱油从原料选择、生产工艺、质量控制到市场策略等多个方面的详细知识,对于理解酱油产业的技术进步和市场动态具有很高的参考价值。

    调味品行业报告-酱油篇(35页).zip

    这有助于读者对整个行业有一个宏观的认识,理解酱油生产从原料采购到产品销售的全过程。 其次,报告可能分析了市场细分,比如不同类型的酱油(生抽、老抽、海鲜酱油等)的市场份额、消费量及增长情况,同时对比了...

    酱油基础知识中国酱油市场分析.ppt

    总的来说,中国酱油市场是一个高度成熟且竞争激烈的领域,消费者的需求多样化,市场细分趋势明显。企业需关注消费者行为变化,提升产品品质,塑造强大的品牌形象,才能在激烈的市场竞争中占据一席之地。同时,通过...

Global site tag (gtag.js) - Google Analytics