`
shz2008bj
  • 浏览: 488740 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

什么是数据库事物及数据库事务涉及的工作

阅读更多
数据库事务是指作为单个逻辑工作单元执行的一系列操作。

设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:

  · 更新客户所购商品的库存信息

  · 保存客户付款信息--可能包括与银行系统的交互

  · 生成订单并且保存到数据库中

  · 更新用户相关信息,例如购物数量等等

正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更 新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新 用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的 信息将会一片混乱而不可预测。

数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。

  数据库事务的ACID属性

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

  · 原子性

事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。

  · 一致性

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据 结构(如 B 树索引或双向链表)都必须是正确的。某些维护一致性的责任由应用程序开发人员承担,他们必须确保应用程序已强制所有已知的完整性约束。例如,当开发用于转 帐的应用程序时,应避免在转帐过程中任意移动小数点。

  · 隔离性

由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它 之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态 相同。当事务可序列化时将获得最高的隔离级别。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限 制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。

  · 持久性

事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。
DBMS的责任和我们的任务

企业级的数据库管理系统(DBMS)都有责任提供一种保证事务的物理完整性的机制。就常用的SQL Server2000系统而言,它具备锁定设备隔离事务、记录设备保证事务持久性等机制。因此,我们不必关心数据库事务的物理完整性,而应该关注在什么情 况下使用数据库事务、事务对性能的影响,如何使用事务等等。 
分享到:
评论
1 楼 xujialei2007 2008-11-19  
    

相关推荐

    (事物学习笔记一) 对于数据库事物的理解

    这篇“事物学习笔记一”主要聚焦于对数据库事务的理解,通过深入探讨其基本概念、特性以及在实际操作中的应用,帮助读者构建对这一核心概念的全面认识。 首先,我们需要理解什么是数据库事务。在数据库管理中,事务...

    C#操作数据库事物使用

    首先,让我们了解什么是数据库事务。数据库事务是一组逻辑操作,这些操作被视为单个工作单元,只有当所有操作都成功时,事务才会提交,如果有任何错误,事务将被回滚,撤销所有更改。SQL Server提供了对事务的内置...

    SQLite 数据库事务

    如果在事务中的任何操作失败,整个事务会被回滚,确保数据库状态保持一致。 2. 事务的自动提交模式: SQLite 默认开启自动提交模式,即每次 SQL 操作都会被视为一个独立的事务。例如,执行一条 INSERT、UPDATE 或 ...

    跨多个数据库操作,同时连接两个一上的数据库,用事物关联起来

    总的来说,跨多个数据库操作需要精细的事务管理,JTA提供了一个强大的解决方案,而Spring框架则简化了这个过程,使得开发者能够在各种环境下高效地处理多数据库事务。理解和熟练运用这些技术,对于构建健壮的、高...

    数据库的事务处理方法精讲

    在本文中,我们将深入探讨在C#和.NET环境中如何处理事务,同时也会涉及到存储过程和数据库连接的相关知识。 首先,让我们理解什么是事务。事务是数据库操作的基本单位,它包含了一组逻辑上相关的SQL语句。这些语句...

    Spring Boot数据库事务控制.zip

    在Spring Boot中,数据库事务控制是实现业务逻辑一致性的重要手段。本资料主要围绕Spring Boot如何进行数据库事务管理进行深入探讨。 首先,我们需要了解什么是事务。事务是数据库操作的基本单位,它保证了一组...

    数据库中事物与锁的课件

    分布式事务涉及到多个数据库服务器,它们共同完成一个单一的逻辑操作。在SQL Server中,分布式事务可以通过分布式事务处理(DTC,Distributed Transaction Coordinator)协调,确保跨多个数据库的事务一致性。 总结...

    陶宏才《数据库原理及设计》第3版课后习题答案

    "陶宏才《数据库原理及设计》第3版课后习题答案" 本资源是陶宏才《数据库原理及设计》第3版课后习题答案的知识点总结,涵盖了数据库原理、数据库设计、数据模型、数据库管理系统、SQL语言等方面的重要概念和知识点...

    数据库恢复技术.doc

    1. **原子性** (Atomicity):事务中的所有操作被视为一个单元,即使其中一部分失败,整个事务也会被回滚,确保数据库不会处于不完整的状态。 2. **一致性** (Consistency):事务开始和结束时,数据库必须保持一致...

    数据库原理及应用

    ### 数据库原理及应用知识点详解 #### 一、程序与数据的关系 - **定义**:在计算机信息系统中,数据和程序是两种最基本的存在形式。其中,程序是指令的集合,用于控制计算机的操作;数据则是程序处理的对象,可以...

    数据库事务管理

    文档中讲解了oracle数据库事物处理,共127页。讲解很全很详细。

    JMU数据库历年试卷.zip

    1. **数据库概念**:了解数据库是什么,它的功能和作用,以及与文件系统的主要区别。数据库是一种有组织地存储和管理数据的方式,提供了数据的结构化、一致性和可靠性。 2. **关系数据库模型**:这是最常见的数据库...

    数据库课程设计报告——班级事务管理系统.doc

    数据库课程设计报告——班级事务管理系统主要涵盖了数据库设计的多个方面,包括需求分析、概念结构设计和逻辑结构设计。以下是对这些知识点的详细说明: 1. **需求分析**: - **数据需求**:系统需要存储并处理...

    SqlServer数据库提示 “tempdb” 的日志已满 问题解决方案

    请备份该数据库的事务日志以释放一些日志空间。 网上找了下解决方案,大体是扩大临时库的日志文件的大小解决的 解决过程: 查看了下数据库的属性,是自动增长,不指定文件大小上限。 在网上Google了很久,试了些...

    05数据库\数据库第四版课后练习答案

    两者都是数据管理的手段,但数据库系统提供了更高级别的数据结构和管理机制,如数据独立性和事务处理能力。 6. 数据库系统的特点: - 数据结构化:数据库系统将数据整体结构化,允许不同级别的数据抽象和多用户...

    数据库原理与应用习题答案

    1. **数据与数据库**:数据是描述事物的符号记录,可表现为数字、文字、图像等多种形式,通过数字化存储在计算机中。数据库则是按照一定格式存储在计算机存储设备上的数据仓库,提供数据的存储和访问。 2. **数据库...

    (04735数据库系统原理)第1章--数据库系统概述.pptx

    总的来说,第1章的讲解为后续章节奠定了基础,包括数据模型、数据库设计、事务处理、并发控制、恢复机制、安全性与完整性等核心概念,这些都是理解和应用数据库系统所必需的知识。通过深入学习,读者将能够理解和...

Global site tag (gtag.js) - Google Analytics