`
seanwon
  • 浏览: 65640 次
  • 性别: 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
分享到:
评论

相关推荐

    100个C#面试题

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

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

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

    200道Java面试常见题目.pdf

    * 什么是分布式事务?Java中有哪些常见的分布式事务实现方式? * 什么是分布式缓存?Java中有哪些常见的分布式缓存实现方式? * 什么是分布式文件系统?Java中有哪些常见的分布式文件系统实现方式? 操作系统知识点...

    mysql常见的几个面试题.txt

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

    09-5基于注解方式的声明式事务.rar

    1. **什么是事务?** 事务是数据库操作的基本单元,它确保一组操作要么全部成功,要么全部失败。在Java编程中,事务管理对于确保数据的一致性至关重要,特别是在多线程环境和并发操作中。 2. **Spring事务管理** ...

    spring 事务例子

    1. **什么是事务?** 事务是数据库操作的基本单元,它保证了一组数据库操作的原子性、一致性、隔离性和持久性(ACID属性)。这意味着要么所有操作都成功,要么全部回滚,不会留下不一致的状态。 2. **Spring 声明...

    MySQL数据库面试题(2020最新、最全、最完整版本)附pdf版.pdf

    1. 什么是事务? 事务是指数据库中的一组操作,包括开始、执行、提交或回滚等阶段。 2. MySQL 中的事务机制是什么? MySQL 中的事务机制包括 ACID 模型,包括原子性、一致性、隔离性、持久性等。 七、锁机制 1. ...

    mysql 面试题集合.docx

    4. 什么是事务?MySQL中如何实现事务? 事务是MySQL中一组操作的集合,这些操作要么全部执行成功,要么全部回滚。MySQL通过使用ACID(原子性、一致性、隔离性和持久性)来保证事务的正确性。 5. 什么是视图?MySQL...

    Ado.net事务

    1. **什么是事务?** 事务是一组数据库操作,这些操作被视为单个逻辑工作单元。如果所有操作都成功完成,事务将被提交,即对数据库的更改永久保存。如果其中任何一步失败,整个事务将被回滚,这意味着所有更改都将...

    plsql面试题.doc

    - **什么是事务?** 一组数据库操作,被视为一个工作单元,要么全部成功,要么全部失败。 - **如何开始和结束事务?** 使用BEGIN和COMMIT(提交)或ROLLBACK(回滚)。 9. **索引与查询优化** - **什么是索引?*...

    数据库工程师200道习题

    - 什么是事务?事务的ACID属性是什么? - 解释锁在并发控制中的作用,有哪些常见的锁类型? - 什么是死锁?如何避免和解决死锁? 6. 数据备份与恢复: - 数据库备份的常见类型有哪些?它们各自的特点是什么? ...

    2022年最高频的105个 MySQL 面试题(附答案)

    - **什么是事务?** 事务是数据库操作的一组逻辑单元,具有ACID特性(原子性、一致性、隔离性和持久性)。 - **如何开启和提交事务?** `START TRANSACTION;` 开启事务,`COMMIT;` 提交事务。 - **如何回滚事务?...

    C#120问(重点难点)

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

    mysql面试题.md

    包含:什么是MySQL?它有哪些特点?、什么是索引?为什么使用索引?、什么是主键?、什么是外键?、什么是事务?MySQL如何支持事务?、什么是SQL注入?如何防止SQL注入?等

    事务

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

    MySQL最新面试题及答案附答案汇总

    - **什么是事务?** 事务是一系列数据库操作的集合,具有原子性、一致性、隔离性和持久性(ACID特性)。 - **如何开始和结束事务?** `START TRANSACTION;` 和 `COMMIT;` 或 `ROLLBACK;` 8. **视图** - **什么是...

    MySql面试题.doc

    4. 什么是事务?如何使用事务来确保数据的完整性和一致性? 事务是一系列操作组成的一个执行单元,要么全部执行成功,要么全部回滚。使用 BEGIN、COMMIT 和 ROLLBACK 语句可以控制事务的开始、提交和回滚操作。通过...

Global site tag (gtag.js) - Google Analytics