`

事务(一)———事务的4个特性

 
阅读更多

 

例如:支票表和储蓄表

start transaction

            Select balance from checking where customer_id=12345;

            Update checking set balance=balance-100 where customer_id=12345;

            Update savings set balance=balance+100 where customer_id=12345;

            Commit;

 

 

原子性(atomicity

       一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么完全提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。

 

 

一致性(consistency

      数据库总是从一个一致的状态转换到另外一个一致性的状态。在上面的例子中,一致性确保了,即使在执行第三、四语句之间时系统崩溃,支票账户中也不会损失100元钱,因为事务最终没有提交,所以事务中所做的修改也不会保存到数据库中。

 

隔离性(isolation

    通常来说,一个事务所做的修改在最终提交之前,对其他事务是不可见的。在上面的例子中,当执行完第三条语句、第四条语句还未开始时,此时有另外一个账号汇总程序开始运行,则其看到的支票账户的余额并没有被减去100元钱。

    Ps:通常来说的解释,read uncommitted级别

 

持久性(durability

一旦事务提交,则其所做的修改就会永久保存到数据库中。此致即使系统崩溃,修改的数据也不会丢失。持久性是个有点模糊的概念,因为实际上持久性也分很多不同的级别。有些持久性策略能够提供非常强的安全保障,而有些则未必。而且不可能有能做到100%的持久性保证的策略(如果数据库本身就能做到真正的持久性那么备份又怎么能增加持久性呢?)。

 

 ANSI SQL事务隔离级别

隔离级别

脏读可能性

不可重复读可能性

幻读可能性

加锁读

read uncommitted

Yes

Yes

Yes

No

read committed

No

Yes

Yes

No

repeatable read

No

No

Yes

No

serializable

No

No

No

Yes

 

 

分享到:
评论

相关推荐

    事务传播特性了解事务的几种传播特性

    事务传播特性了解事务的几种传播特性 总共有七种propagation——required propagation——support propagation——mandatory propagation——not——supported propagation_required_new propagation_never ...

    mysql——事务

    文章目录mysql——事务四大特性概念使用事务四大隔离级别版本链ReadView读视图 mysql——事务 四大特性 原子性,一致性,隔离性,持久性简称ACID 以转账的例子解释ACID,A向B转1000元 原子性: A扣1000元,B加1000元...

    Storm事务性拓扑详解教程.docx

    Storm0.7.0实现了一个新特性——事务性拓扑,这一特性使消息在语义上确保你可以安全的方式重发消息,并保证它们只会被处理一次。在不支持事务性拓扑的情况下,你无法在准确性,可扩展性,以空错性上得到保证的前提下...

    解析MySQL8.0新特性——事务性数据字典与原子DDL

    主要介绍了MySQL8.0新特性——事务性数据字典与原子DDL的相关资料,帮助大家更好的理解和学习MySQL8.0感兴趣的朋友可以了解下

    大数据导论-6.1.4-熟悉大数据处理技术——大数据的处理模式.pptx

    当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。 大数据导论-6全文共20页,当前为第4页。 ...

    LearningNeo4j官方推荐读物

    程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。 Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注.

    neo4j-community-4.3.5-windows.zip

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而...程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。

    架构探险——从零开始写Java Web框架 绝对完整!强烈推荐

    《架构探险——从零开始写Java Web框架》首先从一个简单的 Web 应用开始,让读者学会如何使用IDEA、Maven、Git等开发工具搭建 Java Web 应用;接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求...

    neo4j-restful

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而...程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。

    maven项目:neo4j实例

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而...程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。

    Visual C++实践与提高-COM和COM+篇『PDF』

    12.3.1 事务特性 12.3.2 安全性 12.3.3 同步服务 12.3.4 COM+对象池 12.4 COM+新增系统服务 12.4.1 COM+队列组件 12.4.2 COM+事件模型 12.4.3 负载平衡 12.3.4 内存数据库 小结 第13章 COM+应用开发 13.1 最...

    聊聊MySQL事务的特性和隔离级别

    网上对于此类的文章已经十分饱和了,那还写的原因很简单——...​​  换句话说,事务就是一个整体单位,里面的SQL语句不会单独执行,就像某些商品一般,由多个组件组成,但是我绝对不单独卖组件,要买就买整个商品,

    neo4j-driver-manual-1.7-java.pdf

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而...程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。

    Neo4j权威指南

    neo4j权威指南,Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据...程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。

    neo4j安装使用笔记.docx

    本文为自己在安装使用neo4j过程中的笔记。 Neo4j是一个高性能的,NOSQL...程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处

    erlang——Mnesia用户手册.pdf

    2.2.一个示例 3、构建.Mnesia.数据库 3.1.定义模式 3.2.数据模型 3.3.启动.Mnesia 3.4.创建新表 4、事务和其他上下文存取 4.1.事务属性 4.2.锁 4.3.脏操作 4.4.记录名与表 4.5.作业(Activity)...

    广工——数据库原理与应用试题

    3、事务的特性包括 、 、隔离性和一致性。 4、 是并发事务正确性的准则。 5、F逻辑蕴涵的全体函数依赖构成的函数依赖的集合,称为F的 。 6、数据是 。 二、选择题(每题2分,共20分) 在数据库的三级模式结构中...

    neo4j community 3.1.3 [windows & linux]

    程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。 Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注.

    Neo4j开发手册

    程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。 Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注.

Global site tag (gtag.js) - Google Analytics