fbpx
维基百科

数据库事务

数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。

概要 编辑

数据库事务通常包含了一个序列的对数据库的读/写操作。包含有以下两个目的:

  1. 为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
  2. 当多个应用程序并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。

当事务被提交给了数据库管理系统(DBMS),则DBMS需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。

例子 编辑

某人要在商店使用電子貨幣購買100元的東西,當中至少包括兩個操作:

  1. 該人帳戶減少100元
  2. 商店帳戶增加100元

支援交易的資料庫管理系統transactional DBMS)就是要確保以上兩個操作(整個「交易」)都能完成,或一起取消;否則就會出現100元平白消失或出現的情況。

但在现实情况下,失败的风险很高。在一个数据库事务的执行过程中,有可能会遇上事务操作失败、数据库系统操作系统出錯,甚至是存储介质出錯等情况。这便需要DBMS对一个执行失败的事务执行恢复操作,将其数据库状态恢复到一致状态(数据的一致性得到保证的状态)。为了实现将数据库状态恢复到一致状态的功能,DBMS通常需要维护事务日志英语Transaction log以追踪事务中所有影响数据库数据的操作[1][2]

ACID性质 编辑

并非任意的对数据库的操作序列都是数据库事务。数据库事务拥有以下四个特性,习惯上被称之为ACID特性

  • 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行[3]
  • 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束[3]
  • 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行[3]
  • 持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中[3]

SQL 编辑

SQL国际标准使用START TRANSACTION开始一个事务(也可以用方言命令BEGIN)。COMMIT语句使事务成功完成。ROLLBACK语句结束事务,放弃从BEGIN TRANSACTION開始的一切变更。若autocommitSTART TRANSACTION的使用禁止,在事务结束时autocommit會重新啟用。

关系型数据库 编辑

关系型数据库传统上是由具有固定大小的字段和记录的表组成。对象数据库由可变大小的blobs(二进制大对象)组成,可能是可序列化的,也可能是结合了MIME类型的。关系型数据库和对象型数据库的基本相似之处是start, commit或rollback。

在启动事务后,数据库记录或对象会被锁定, 只读,或读写。然后才可以进行读写操作。一旦事务完全完成,变化就会被原子性地提交或回滚,这样在事务结束时就不会出现不一致的情况。

分布式事务 编辑

数据库系统实现分布式事务是指在多个节点上访问数据的事务。一个分布式事务在多个节点上执行ACID属性,可能包括数据库、存储管理器、文件系统、消息系统和其他数据管理器等系统。在一个分布式事务中,通常有一个实体协调所有的过程,以确保事务的所有部分都适用于所有相关系统。

参考文献 编辑

  1. ^ Elmasri Navathe著,张伶等译. 《数据库系统基础(第四版)》(Fundamentals of Database System (Fourth Edition)). 中国电力出版社. 2005年8月: 436页. ISBN 7-5083-3496-5. 
  2. ^ Jim Gray, Andreas Reuter 著,孟小峰、于戈 等译. 《事务处理:概念与技术》(Transaction Prossessing: Concepts and Techniques). 机械工业出版社. 2004年. ISBN 9787111126416. 
  3. ^ 3.0 3.1 3.2 3.3 王能斌. 《数据库系统教程(上册)》. 电子工业出版社. 2002年8月: 91~92页. ISBN 7-5053-7827-9. 

参见 编辑

数据库事务, 简称, 事务, 是数据库管理系统执行过程中的一个逻辑单位, 由一个有限的数据库操作序列构成, 目录, 概要, 例子, acid性质, 关系型数据库, 分布式事务, 参考文献, 参见概要, 编辑通常包含了一个序列的对数据库的读, 写操作, 包含有以下两个目的, 为数据库操作序列提供了一个从失败中恢复到正常状态的方法, 同时提供了数据库即使在异常状态下仍能保持一致性的方法, 当多个应用程序在并发访问数据库时, 可以在这些应用程序之间提供一个隔离方法, 以防止彼此的操作互相干扰, 当事务被提交给了数据库管理. 数据库事务 简称 事务 是数据库管理系统执行过程中的一个逻辑单位 由一个有限的数据库操作序列构成 目录 1 概要 1 1 例子 2 ACID性质 3 SQL 4 关系型数据库 5 分布式事务 6 参考文献 7 参见概要 编辑数据库事务通常包含了一个序列的对数据库的读 写操作 包含有以下两个目的 为数据库操作序列提供了一个从失败中恢复到正常状态的方法 同时提供了数据库即使在异常状态下仍能保持一致性的方法 当多个应用程序在并发访问数据库时 可以在这些应用程序之间提供一个隔离方法 以防止彼此的操作互相干扰 当事务被提交给了数据库管理系统 DBMS 则DBMS需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中 如果事务中有的操作没有成功完成 则事务中的所有操作都需要回滚 回到事务执行前的状态 同时 该事务对数据库或者其他事务的执行无影响 所有的事务都好像在独立的运行 例子 编辑 某人要在商店使用電子貨幣購買100元的東西 當中至少包括兩個操作 該人帳戶減少100元 商店帳戶增加100元支援交易的資料庫管理系統 transactional DBMS 就是要確保以上兩個操作 整個 交易 都能完成 或一起取消 否則就會出現100元平白消失或出現的情況 但在现实情况下 失败的风险很高 在一个数据库事务的执行过程中 有可能会遇上事务操作失败 数据库系统 操作系统出錯 甚至是存储介质出錯等情况 这便需要DBMS对一个执行失败的事务执行恢复操作 将其数据库状态恢复到一致状态 数据的一致性得到保证的状态 为了实现将数据库状态恢复到一致状态的功能 DBMS通常需要维护事务日志 英语 Transaction log 以追踪事务中所有影响数据库数据的操作 1 2 ACID性质 编辑主条目 ACID 并非任意的对数据库的操作序列都是数据库事务 数据库事务拥有以下四个特性 习惯上被称之为ACID特性 原子性 Atomicity 事务作为一个整体被执行 包含在其中的对数据库的操作要么全部被执行 要么都不执行 3 一致性 Consistency 事务应确保数据库的状态从一个一致状态转变为另一个一致状态 一致状态的含义是数据库中的数据应满足完整性约束 3 隔离性 Isolation 多个事务并发执行时 一个事务的执行不应影响其他事务的执行 3 持久性 Durability 已被提交的事务对数据库的修改应该永久保存在数据库中 3 SQL 编辑SQL国际标准使用START TRANSACTION开始一个事务 也可以用方言命令BEGIN COMMIT语句使事务成功完成 a href E5 9B 9E E6 BB 9A E6 95 B0 E6 8D AE E7 AE A1 E7 90 86 html class mw redirect title 回滚 数据管理 ROLLBACK a 语句结束事务 放弃从BEGIN TRANSACTION開始的一切变更 若autocommit被START TRANSACTION的使用禁止 在事务结束时autocommit會重新啟用 关系型数据库 编辑关系型数据库传统上是由具有固定大小的字段和记录的表组成 对象数据库由可变大小的blobs 二进制大对象 组成 可能是可序列化的 也可能是结合了MIME类型的 关系型数据库和对象型数据库的基本相似之处是start commit或rollback 在启动事务后 数据库记录或对象会被锁定 只读 或读写 然后才可以进行读写操作 一旦事务完全完成 变化就会被原子性地提交或回滚 这样在事务结束时就不会出现不一致的情况 分布式事务 编辑数据库系统实现分布式事务是指在多个节点上访问数据的事务 一个分布式事务在多个节点上执行ACID属性 可能包括数据库 存储管理器 文件系统 消息系统和其他数据管理器等系统 在一个分布式事务中 通常有一个实体协调所有的过程 以确保事务的所有部分都适用于所有相关系统 参考文献 编辑 Elmasri Navathe著 张伶等译 数据库系统基础 第四版 Fundamentals of Database System Fourth Edition 中国电力出版社 2005年8月 436页 ISBN 7 5083 3496 5 Jim Gray Andreas Reuter 著 孟小峰 于戈 等译 事务处理 概念与技术 Transaction Prossessing Concepts and Techniques 机械工业出版社 2004年 ISBN 9787111126416 3 0 3 1 3 2 3 3 王能斌 数据库系统教程 上册 电子工业出版社 2002年8月 91 92页 ISBN 7 5053 7827 9 参见 编辑数据库管理系统 取自 https zh wikipedia org w index php title 数据库事务 amp oldid 63709076, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。