`
seanwon
  • 浏览: 63703 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

什么是事务?

阅读更多

1.   什么是事务

2.1              事务定义

百度百科:

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

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。

维基百科:

A transaction is an agreement, communication, or movement carried out between separate entities or objects, often involving the exchange of items of value, such as information, goods, services, and money.

A database transaction comprises a unit of work performed within a database management system (or similar system) against a database, and treated in a coherent and reliable way independent of other transactions. Transactions in a database environment have two main purposes:

To provide reliable units of work that allow correct recovery from failures and keep a database consistent even in cases of system failure, when execution stops (completely or partially) and many operations upon a database remain uncompleted, with unclear status.

To provide isolation between programs accessing a database concurrently. Without isolation the programs' outcomes are possibly erroneous.

A database transaction, by definition, must be atomic, consistent, isolated and durable. Database practitioners often refer to these properties of database transactions using the acronym ACID.

Transactions provide an "all-or-nothing" proposition, stating that each work-unit performed in a database must either complete in its entirety or have no effect whatsoever. Further, the system must isolate each transaction from other transactions, results must conform to existing constraints in the database, and transactions that complete successfully must get written to durable storage.

2.2              事务场景

网上购物的一次交易中付款过程包括如下几步:

1.  创建支付订单

2.  更新客户的现金账户余额

3.  更新商户的现金账户余额

4.  更新支付订单状态

5.  更新交易订单状态

6.  发送消息,通知商户发货:用户支付成功

正常情况下,这些操作顺利完成,最终交易成功,与交易相关的数据库信息成功更新,并且发送消息成功。但是如果这个过程中任何一个环节出错(第6项可选),比如客户账户余额不足,商户账户异常,都将导致交易失败,一旦交易失败,数据库中数据要保持状态不变,否则会出现很多状态不一致的情况。事务正是为了保证这种情况下交易的平稳性和可预测性的技术。

2.3              事务的工作原理

事务确保数据的ACID,工作原理如下:

  • 大小: 13.2 KB
  • 大小: 13.5 KB
分享到:
评论

相关推荐

    mysql面试题-mysql经典面试题目-数据库的基本概念-SQL语法-事务处理-索引优化-性能调优-mysql-面试题目

    什么是关系数据库管理系统(RDBMS)? 什么是SQL?列举一些常见的SQL命令。 什么是索引?为什么使用索引可以提高查询性能? 什么是事务?MySQL如何支持事务处理? 什么是主键和外键?它们之间有什么区别? 什么...

    100个C#面试题

    什么是锁? 2 3.什么是索引,有什么优点? 2 4.视图是什么?游标是什么? 2 5.什么是存储过程?有什么优点? 2 6.什么是触发器? 3 7.简单介绍下ADO.NET和ADO主要有什么改进? 3 8.如何把一个array复制到arrayist里 ...

    100道mysql面试题.docx

    7. 什么是事务? 事务是一组数据库操作,要么全部执行成功,要么全部回滚。 8. 什么是ACID属性? ACID是指原子性、一致性、隔离性和持久性,它们是事务的四个基本属性。 9. 什么是触发器? 触发器是一种特殊的存储...

    MySQL面试题(记得被问过的一些题目)

    char和varchar两种数据类型的区别与适用场景? 关联查询INNER JOIN、LEFT JOIN 、RIGHT JOIN的区别与适用场景? 索引分类? 索引区别?...什么是事务? 事务的特性与适用场景? 事务的隔离级别与适用场景?

    SQL面试题目汇总.pdf

    什么是锁?什么叫视图?游标是什么?为管理业务培训信息,建立3个表:NULL是什么意思?什么是索引?SQL Server 2000里有什么类型的索引?什么是主键?什么是外键?什么是触发器?SQL Server 2000有什么不同类型的触发器?对...

    MYSQL常见的面试题带答案

    2. 什么是事务? 事务是一组数据库操作语句的集合,这些语句的执行要么全部成功,要么全部失败。事务的 ACID 特性保证了事务的正确性和稳定性。 3. 什么是索引? 索引是一种数据结构,用于提高数据库查询性能。...

    mysql面试题,面试会问到的基础问题

    6. 什么是事务? 7. 什么叫视图? 8. 视图创建和使用语法? 9. 游标是什么? 10. 你能向我简要叙述一下SQL Server 中使用的一些数据库对象吗? 11. NULL是什么意思? 12. 什么是索引,有哪些索引,具体怎么用? ...

    MySQL自整理超全精华版面试八股文

    什么是事务? 事务的四大特性(ACID) 并发事务带来的问题 事务的隔离级别 MySQL事务的隔离级别通过什么实现? 什么是MVCC? 锁 MySQL锁定的类型有那些 InnoDB引孳的行锁是怎么实现的? InnoDBi引擎的行锁的三种算法 ...

    mysql常见的几个面试题.txt

    什么是事务? 事务是一个操作序列,其中一组操作要么全部执行成功,要么全部执行失败。事务支持 ACID 特性,即原子性、一致性、隔离性和持久性。 什么是视图? 视图是一个虚拟的表,它从一个或多个表中检索数据。...

    事务日志被填满的原因是什么?.

    事务日志被填满的原因是什么?SQL Server 事务日志被填满的可能潜伏的因素......

    MySQL常见面试题.pdf

    什么是关系数据库管理系统(RDBMS)? 2. 解释主键、外键和索引在数据库中的作用。 3. 什么是事务?如何确保事务的原子性和一致性? 4. 如何创建一个数据库和表格? 5. 如何向表格中插入数据? 6. 如何使用 SELECT ...

    Mysql经典面试题.pdf

    2.什么是事务? 事务是一组数据库操作的集合,它们被视为一个逻辑单元,并且要么全部成功执行,要么全部失败回滚。事务具有ACID特性,即原子性、一致性、隔离性和持久性。 3.InnoDB和MyISAM的区别是什么? InnoDB和...

    MySQL高级面试题及答案,企业真面试题.md

    解释一下什么是事务? 事务是一组SQL语句的执行单元,它们要么全部执行成功,要么全部回滚。事务可以保证数据的一致性和完整性。在MySQL中,事务支持ACID特性,即原子性(Atomicity)、一致性(Consistenc

    C#120问(重点难点)

    什么是锁? 答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。  锁是在多用户环境中对数据的访问的限制。Sql...

    事务

    什么是事务? 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。(访问并可能操作各种数据项的一个数据库操作序列)...

    MySQL事务与锁机制详解

    1.1 什么是事务? 事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败。 1.2 哪些引擎支持事务 InnoDB支持事务 1.3 事务的四大特性 原子性(Atomicity):强调事务的不可分割,也就...

Global site tag (gtag.js) - Google Analytics