当前位置: 首页 > 面试题库 >

请你说一下数据库事务以及四个特性

戚学
2023-03-14
本文向大家介绍请你说一下数据库事务以及四个特性相关面试题,主要包含被问及请你说一下数据库事务以及四个特性时的应答技巧和注意事项,需要的朋友参考一下

参考回答:

事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。事务是DBMS中最基础的单位,事务不可分割。

事务具有4个基本特征,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID。

\1. 原子性(Atomicity)

原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,[删删删]因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

\2. 一致性(Consistency)

一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

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

\3. 隔离性(Isolation)

隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

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

多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。

这指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。

不同的隔离级别:

Read Uncommitted(读取未提交[添加中文释义]内容):最低的隔离级别,什么都不需要做,一个事务可以读到另一个事务未提交的结果。所有的并发事务问题都会发生。

Read Committed(读取提交内容):只有在事务提交后,其更新结果才会被其他事务看见。可以解决脏读问题。

Repeated Read(可重复读):在一个事务中,对于同一份数据的读取结果总是相同的,无论是否有其他事务对这份数据进行操作,以及这个事务是否提交。可以解决脏读、不可重复读。

Serialization(可串行化):事务串行化执行,隔离级别最高,牺牲了系统的并发性。可以解决并发事务的所有问题。

\4. 持久性(Durability)

持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务以及正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕,但是数据库因为故障而没有执行事务的重大错误。

 类似资料:
  • 本文向大家介绍请你说一说数据库事务相关面试题,主要包含被问及请你说一说数据库事务时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要

  • 本文向大家介绍请你说一说数据库事务隔离相关面试题,主要包含被问及请你说一说数据库事务隔离时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。

  • 本文向大家介绍请你说一说数据库索引相关面试题,主要包含被问及请你说一说数据库索引时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。 索引的一个主要目的就是加快检索表中数据的方法,亦即能协助信息搜索者尽快的找到符合限

  • 本文向大家介绍说一下数据库的事务隔离?相关面试题,主要包含被问及说一下数据库的事务隔离?时的应答技巧和注意事项,需要的朋友参考一下 MySQL 的事务隔离是在 MySQL. ini 配置文件里添加的,在文件的最后添加: transaction-isolation = REPEATABLE-READ 1 可用的配置值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABL

  • 本文向大家介绍请你介绍一下数据库的ACID特性相关面试题,主要包含被问及请你介绍一下数据库的ACID特性时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)原子性:事务被视为不可分割的最小单元,事物的所有操作要不成功,要不失败回滚,而回滚可以通过日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作。 2)一致性:数据库在事务执行前后都保持一致性状态,在一致性状态下,所有

  • 面试官:事务的特性你说一说? 面试官:隔离性有多种隔离级别,这个知道吧? 面试官:幻读是什么问题?还有其他事务问题吗? 面试官:那幻读要怎么解决? 面试官:事务加锁会导致死锁,要怎么处理? 面试官:有去看看你们数据库用的什么隔离级别吗? 👉以【面试官面试】形式覆盖Java程序员所需掌握的Java核心知识、面试重点 📚本期是《MySQL系列》,其他系列博客请订阅专栏《后端训练营》 ❤创作不易,不