`

数据库事务(Database Transaction)

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

设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:
一、更新客户所购商品的库存信息
二、保存客户付款信息--可能包括与银行系统的交互
三、生成订单并且保存到数据库中
四、更新用户相关信息,例如购物数量等等
正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。
数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。
分享到:
评论

相关推荐

    Database and Transaction Processing Performance

    描述如何开展数据库的相关测试,针对数据库事务处理测试方法和性能的评估方法。

    数据库事务的隔离机制

    数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。  是说你定义一组数据库操作,然后告诉数据库说这些操作要么都成功,要么都不成功。  类似...

    MySQL数据库:事务隔离级别.pptx

    数据库编程 事务隔离级别 课程目标 了解 —— 事务隔离级别的概念; 理解 —— 事务隔离的四种级别; 掌握 —— 事务隔离级别的设置; 事务隔离级别 事务隔离:每一个事务都有一个所谓的隔离级,它定义了用户彼此...

    transaction_retry:重试有关死锁和事务序列化错误的数据库事务。 支持MySQL,PostgreSQL和SQLite

    重试有关死锁和事务序列化错误的数据库事务。 支持MySQL,PostgreSQL和SQLite。 例子 通过拯救ActiveRecord :: TransactionIsolationConflict并重试事务,gem自动工作。 安装 将此添加到您的Gemfile中: gem '...

    SQLServer数据库中开启CDC导致事务日志空间被占满的原因

    在执行增删改语句(产生事务日志)的过程中提示,The transaction log for database ‘***’ is full due to ‘REPLICATION'(数据库“***”的事务日志已满,原因为“REPLICATION”). CDC以及复制的基本原理粗略地讲...

    html5 Web SQL Database 之事务处理函数transaction与executeSQL解析

    通过一个例子说明 Web SQL Database 的...它首先调用 openDatabase 创建了名为“fooDB”的数据库。然后使用 transaction 执行两条 SQL 语句。第一条 SQL 语句创建了名为“foo”的表,第二条 SQL 语句向表中插入一条记录

    Mysql面试题总结大全

    6、数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 彻底理解数据库事务 7、悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作 ...

    20170830-分布式事务解决方案1

    记得录屏分布式事务产生背景[database transaction]数据库事务要满足几个要求:ACIDAtomic(原子性) 事务必须是原子的工作单元Cons

    浅析SQL Server中包含事务的存储过程

     数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。那么在存储过程里添加事务,则可以保证该事务里的所有sql代码要么完全执行要么完全不执行。 ...

    数据库原理与实现系列(1 of 8) - 数据库系统实现(第二版) PDF

    合辑其他书籍有 Transactional Information Systems Theory Algorithms And The Practice Of Concurrency Control , Database Management Systems 3rd Edition, 分布式数据库系统原理 第3版, Transaction Processing...

    数据库中英文术语对照.pdf

    active database 主动数据库 aggregation function 聚集函数 algebraic optimization 代数优化 All-key 全码 ALTER TABLE 修改表 anomaly/anomalies 异常 ANSI/SPARC architecture ANSI/SPARC 体系结构 ...

    bbs 数据库源代码

    drop database bbsDB create database bbsDB on primary ( name='bbsDB_data', filename='D:\project\bbsDB_data.mdf', size=10mb ) log on ( name='bbsDB_log', filename='D:\project\bbsDB_log.ldf', size=...

    Oracle数据库、SQL

    17.1 transaction 35 17.2定义 35 17.3事务的特性:ACID 35 17.4事务的隔离级别 35 17.5数据库开发的关键挑战 35 17.6锁的概念 36 17.7 Oracle的锁机制 36 17.8事务不提交的后果 36 17.9回滚事务rollback 36 17.10...

    oracle 12c 数据库 教程

    (十)闪回事务查询:Flashback Transaction Query 96 (十一)闪回数据归档:Flashback Data Archive 98 三、用户管理的备份 101 (一)用户管理的备份简介 101 (二)第一个手工备份和恢复 102 (三)冷备份的脚本...

    Yii2中事务的使用实例代码详解

    数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。...

    关系型数据库管理系统.pdf

    SQL语⾔主要分别为: DQL:数据查询语⾔,⽤于对数据进⾏查询,如select DML:数据操作语⾔,对数据进⾏增加,修改,删除,如insert,update,delete TPL:事务处理语⾔,对事物进⾏处理,包括begin transaction,commit,...

    Java数据库编程宝典3

    第1部分 介绍数据库、SQL和JDBC 第1章 关系型数据库 1.1 理解关系型数据库管理系统 1.1.1 关系模型 1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式...

    MongoDB数据库设计.pptx

    一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。 Support for joins in queries. Two types ...

Global site tag (gtag.js) - Google Analytics