`

一个打酱油的故事来理解事务的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

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

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

    通过综合分析这份“一种酱油瓜子.pdf”文档,我们可以看到酱油瓜子生产的每一个环节都体现了对食品加工技术、设备设计和质量管理的深入理解和精细把控。从原料的精选到成品的包装,每一个步骤都需要精心设计和严格把...

    离散数学分酱油

    在“分酱油”问题中,我们可以构建一个状态数组来记录每一步最优解的状态,以快速找到平均分配的方案。 在C语言实现中,我们首先需要定义合适的数据结构来存储每个瓶子的酱油量以及参与分配的人数。随后,我们需要...

    c#文件传输酱油版

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

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

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

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

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

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

    综合来看,酱油市场是一个极具复杂性和动态变化的领域。它不仅受到地域文化差异、消费习惯的影响,还与品牌定位、产品创新和市场策略密切相关。深入理解消费者需求,持续关注市场动态,对于生产商和零售商来说是抓住...

    酱油生产技术_十一_低盐固态发酵法酱油生产技术_五_.pdf

    由于每批次的酱油都可能受到生产周期和原材料差异的影响,因此必须通过调和来确保每一批次的酱油都能达到相同的质量标准。在配制过程中,将综合考量产品的感官特性、理化指标和卫生指标,确保产品在风味和营养上的...

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

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

    jQuery 时间插件 瓜头酱油汉化

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

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

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

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

    为了深入理解这一变化,一份详尽的《调味品行业报告-酱油篇》应运而生,为业内人士及有兴趣的读者提供了一个全面的分析框架。 报告的开篇通过对酱油行业历史背景的回顾,概述了该行业从古至今的发展轨迹。在这个...

Global site tag (gtag.js) - Google Analytics