专栏首页小麦苗的DB宝专栏【DB笔试面试441】事务的持久性是指?()

【DB笔试面试441】事务的持久性是指?()

题目部分

事务的持久性是指?()

A、事务中包括的所有操作要么都做,要么不做

B、事务一旦提交,对数据库的改变是永久的

C、一个事务内部的操作及使用的数据对并发的其他事务是隔离的

D、事务必须是使数据库从一个一致性状态变到另一个一致性状态

答案部分

答案:B。

事务有4个特性,一般都称之为ACID特性,简单记为原一隔持(谐音:愿意各吃,即愿意各吃各的),如下表所示:

表 2-5 事务的ACID特性

名称

简介

举例

原子性(Atomicity)

所谓原子性是指事务在逻辑上是不可分割的操作单元,其所有语句要么都执行,要么都撤销执行。当每个事务运行结束时,可以选择“提交”所做的数据修改,并将这些修改永久应用到数据库中。

假设有两个账号,A账号和B账号。A账号转给B账号100元,这里有两个动作在里面,①A账号减去100元,②B账号增加100元,这两个动作不可分割即原子性。

一致性(Consistency)

事务是一种逻辑上的工作单元。一个事务就是一系列在逻辑上相关的操作指令的集合,用于完成一项任务,其本质是将数据库中的数据从一种一致性状态转换到另一种一致性状态,以体现现实世界中的状况变化。至于数据处于什么样的状态算是一致状态,这取决于现实生活中的业务逻辑以及具体的数据库内部实现。

拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。

隔离性(Isolation)

隔离性是针对并发事务而言的,所谓并发是指数据库服务器同时处理多个事务,如果不采取专门的控制机制,那么并发事务之间可能会相互干扰,进而导致数据出现不一致或错误的状态。隔离性就是要隔离并发运行的多个事务间的相互影响。关于事务的隔离性,数据库提供了多种隔离级别,后面的章节会介绍到。

隔离性即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其它事务在并发地执行。

持久性(Durability)

事务的持久性(也叫永久性)是指一旦事务提交成功,其对数据的修改是持久性的。数据更新的结果已经从内存转存到外部存储器上,此后即使发生了系统故障,已提交事务所做的数据更新也不会丢失。

当开发人员在使用JDBC(Java DataBase Connectivity,Java数据库连接)操作数据库时,在提交事务后,提示用户事务操作完成,那么这个时候数据就已经存储在磁盘上了。即使数据库重启,该事务所做的更改操作也不会丢失。

& 说明:

有关事务ACID特性的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2141490/

本文分享自微信公众号 - DB宝(xiaomaimiaolhr),作者:小麦苗best

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【DB笔试面试392】Oracle的自治事务是什么?

    Oracle的自治事务(Autonomous Transaction)是将一个主事务分割成几个子事务,在执行完子事务以后再继续执行主事务。这里的关键是,子事务是...

    小麦苗DBA宝典
  • 在Oracle中,分布式事务ORA-01591错误如何解决?

    这个错误是由于分布式事务引起,而不是普通的锁引起的。若检查一般对象数据表锁定,则只需要检查V$LOCKED_OBJECT和V$TRANSACTION视图,就可以...

    小麦苗DBA宝典
  • 【DB笔试面试523】在Oracle中,数据库物理结构有哪些文件?

    Oracle数据库的物理结构由控制文件(Control files)、数据文件(Data files)、联机Redo日志文件(Online Redo log f...

    小麦苗DBA宝典
  • 阿里分布式事务框架GTS开源啦!

    就在9号这天,阿里分布式事务框架GTS开源了一个免费社区版Fescar,看到了这个消息内心非常的激动!在微服务系统中,分布式事务一直是痛点,也是难点。社区里也有...

    用户5224393
  • Spring详解--一篇文章让你弄懂spring事物管理

      事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。

    Java编程指南
  • 【面试】Spring事务面试考点整理

    Spring和事务的关系 关系型数据库、某些消息队列等产品或中间件称为事务性资源,因为它们本身支持事务,也能够处理事务。 Spring很显然不是事务性资源,...

    Java团长
  • Spring 事务管理

    事务是正确执行一系列的操作(或动作),使得数据库从一种状态转换成另一种状态,且保证操作全部成功,或者全部失败。

    希希里之海
  • 网易MySQL微专业学习笔记(九)-数据库事务

    这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL数据库对象与应用”中的MySQL数据类型相关笔记。

    汐楓
  • 事务与隔离级别------《Designing Data-Intensive Applications》读书笔记10

    1983年,Andreas Reuter and Theo Härder 提出了事务之中重要的四个特性:

    HappenLee
  • Hibernate中的事务隔离问题(脏读、不可重复读、幻读)

    2)一致性:组成事务的各种操作,要么全部成功,要么全部失败。其中有一个失败,事务无法完成

    用户2409797

扫码关注云+社区

领取腾讯云代金券