`

事务对数据库的重要性

阅读更多

所谓事务是用户定义的一个操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

  事务的开始与结束可以由用户显式控制。如果用户没有显式地定义事务,则由DBMS按缺省规定自动划分事务。在SQL语言中,定义事务的语句有三条:

   BEGIN TRANSACTION

   COMMIT

   ROLLBACK

   事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的 更新写回到磁盘上的物理数据库中去,事务正常结束。ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数 据库的所有已完成的操作全部撤消,滚回到事务开始时的状态。这里的操作指对数据库的更新操作。

  一. 事务的特性

  事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这个四个特性也简称为ACID特性。

  1.原子性

  事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。

  2.一致性

   事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库 系统运行中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始时的一致状态。

  3.隔离性

  一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

  4.持续性

  持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

 

事务是恢复和并发控制的基本单位。保证事务ACID特性是事务处理的重要任务。事务ACID特性可能遭到破坏的因素有:

  多个事务并行运行时,不同事务的操作交叉执行。

  事务在运行过程中被强行停止。

  在第一种情况下,数据库管理系统必须保证多个事务的交叉运行不影响这些事务的原子性。在第二种情况下,数据库管理系统必须保证被强行终止的事务对数据库和其它事务没有任何影响。

  这些就是数据库管理系统中恢复机制和并发控制机制的责任。

  二.SQL 事务处理模型

  事务有三种模型:

  1.隐式事务是指每一条数据操作语句都自动地成为一个事物,每个事务都有显式的开始和结束标记。

  2.显式事务是指有显式的开始和结束标记的事物,事务的开始是隐式的,事务的结束有明确的标记。

  3.自动事务是系统自动默认的,开始和结束不用标记

  三.并发控制

  1. 数据库系统一个明显的特点是多个用户共享数据库资源,尤其是多个用户可以同时存取相同数据。

  串行控制:如果事务是顺序执行的,即一个事务完成之后,再开始另一个事务

  并行控制:如果DBMS可以同时接受多个事务,并且这些事务在时间上可以重叠执行。

  2.并发控制概述

  事务是并发控制的基本单位,保证事务ACID的特性是事务处理的重要任务,而并发操作有可能会破坏其ACID特性。

   DBMS并发控制机制的责任:

  对并发操作进行正确调度,保证事务的隔离性更一般,确保数据库的一致性。

  如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题。由于并发操作带来的数据不一致性包括:丢失数据修改、读”脏”数据(脏读)、不可重复读、产生幽灵数据。

(1)丢失数据修改

  当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。如上例。

   再例如,两个编辑人员制作了同一文档的电子复本。每个编辑人员独立地更改其复本,然后保存更改后的复本,这样就覆盖了原始文档。最后保存其更改复本的编 辑人员覆盖了第一个编辑人员所做的更改。如果在第一个编辑人员完成之后第二个编辑人员才能进行更改,则可以避免该问题。

  (2)读“脏”数据(脏读)

  读“脏”数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被除撤消,而此时T1把已修改过的数据又恢复原值,T2读到的数据与数据库的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。

   例如:一个编辑人员正在更改电子文档。在更改过程中,另一个编辑人员复制了该文档(该复本包含到目前为止所做的全部更改)并将其分发给预期的用户。此 后,第一个编辑人员认为目前所做的更改是错误的,于是删除了所做的编辑并保存了文档。分发给用户的文档包含不再存在的编辑内容,并且这些编辑内容应认为从 未存在过。如果在第一个编辑人员确定最终更改前任何人都不能读取更改的文档,则可以避免该问题。

  ( 3)不可重复读

  指事务T1读取数据后,事务T2执行更新操作,使T1无法读取前一次结果。不可重复读包括三种情况:

  事务T1读取某一数据后,T2对其做了修改,当T1再次读该数据后,得到与前一不同的值。

  (4)产生幽灵数据

  按一定条件从数据库中读取了某些记录后,T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录消失

   T1按一定条件从数据库中读取某些数据记录后,T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。

  例如:一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。当编辑人员第二次读取文档时,文档已更改。原始读取不可重复。如果只有在作者全部完成编写后编辑人员才可以读取文档,则可以避题。

  产生这些数据的不致性的主要原因是并发操作破坏了事务的隔离性。

  文章来源: http://songtao87.blog.51cto.com/380457/94720

分享到:
评论

相关推荐

    MySQL数据库:数据库的备份与恢复.pptx

    根据数据的重要性、数据库的大小和服务器的工作负荷,制定备份计划。 例如:每周创建完整备份,每天创建差异备份,每隔 15 分钟创建事务日志备份 ;备份设备是指对应于操作系统提供的资源,常用的有磁盘和磁带媒体。 ...

    论文研究 - 键值NoSQL数据库的冲浪并发事务处理模型

    本文提出了一个包含Redis的键值NoSQL数据库的事务模型,以使用户能够以ACID(原子性,一致性,隔离性和持久性)方式访问数据,该模型被生动地称为冲浪并发事务模型。 详细描述了体系结构,重要功能和实现原理。 还...

    移动数据库中移动事务处理的关键技术研究

    所以如何使服务器能够完善的处理好移动事务,即解决移动事务的上述关键技术问题成为移动数据库技术中一个非常重要的研究课题。 本课题的主要研究目标是设计一个移动事务模型和事务处理协议来支持移动事务的移动性、...

    内存数据库与传统数据库的对比.docx

    内存数据库与传统数据库的对比 传统数据库和实时数据库 传统数据库系统(TDBS)处理对永久数据的管理,实现事务对永久数据的存取,同时维护其完整性、一致性。所以传统的数据库具有特征,即原子性、一致性、隔离性和...

    数据库系统中事务的ACID原则.pdf

    数据库系统中事务的 数据库系统中事务的ACID原则 原则 事务的原⼦性、⼀致性、独⽴性及持久性 事务的原⼦性是指⼀个事务要么全部执⾏,要么不执⾏.也就是说⼀个事务不可能只执⾏了⼀半就停⽌了.⽐如你从取款机取钱,这...

    数据库事务管理

    正是基于上述考虑,人们提出了数据库管理过程中的两个重要课题:一个是从提高系统运行效率出发的数据库操作的并发执行,另一个是从系统正确性和一致性出发的数据库故障恢复。研究和解决这两个问题前提是设计一个在...

    旅行社数据库系统.doc

    " "设计题目 "旅行社数据库系统 " "指导教师 "康懿 "时间 "2016.7.05——2016.7.8 " "一、课程设计目的 " "1、培养学生运用所学课程《数据库原理及应用》的理论知识和技能以及对数据库组织" "、管理和使用能力。...

    达梦数据库_SQL语言手册

    为了有效维护数据库的完整性和一致性,支持 的并发控制机制 语言提供 了事务的回滚( )与提交( )语句。同时允许选择实施事务级读一致 性,它保证同一事务内的可重复读,为此提供用户多种手动上锁语句,和设置事务...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    随着数据库技术在各个行业和各个领域大量广泛的应用,在对数据库应用的过程中,人为误操作、人为恶意破坏、系统的不稳定、存储介质的损坏等等原因,都有可能造成重要数据的丢失。一旦数据出现丢失或者损坏,都将给...

    数据库学习基础之名词解释

    这样就可以把不完全性、不确定性、模糊性引入数据库系统中,从而形成模糊数据库。模糊数据库研究主要有两方面,首先是如何在数据库中存放模糊数据;其次是定义各种运算建立模糊数据上的函数。模糊数的表示主要有模糊...

    数据库系统概论(基础篇)教学大纲.docx

    掌握数据库事务处理、并发控制与恢复的基本技术、初步掌握数据库查询处理和优化的概念。并能够在某一个数据库管理系统上进行实验验证。 通过数据库系统概论(新技术篇)的学习,学员可以系统地掌握传统数据库技术的...

    什么是NoSQL数据库?

    NoSQL的出现是为了弥补SQL数据库因为事务等机制带来的对海量数据、高并发请求的处理的性能上的欠缺。 NoSQL不是为了替代SQL而出现的,它是一种替补方案,而不是解决方案的首选。 绝大多数的NoSQL产品都是基于大...

    数据库系统概念第五版答案

    涵盖了数据模型、关系模型、基于对象的数据库和XML、数据存储和查询、事务管理、数据库系统体系结构等方面的内容。直观易懂。采用直观的方式描述概念,以结构清晰的图示和示例代替形式化的证明。实用性强。以银行...

    数据库系统概念中文版

    涵盖了数据模型、关系模型、基于对象的数据库和XML、数据存储和查询、事务管理、数据库系统体系结构等方面的内容。直观易懂。采用直观的方式描述概念,以结构清晰的图示和示例代替形式化的证明。实用性强。以银行...

    哈尔滨理工大数据库试题

    4、 若事务T对数据R加X锁,则其他事务对数据R _D_。 A. 可以加S锁,不能加X锁 B. 不可加S锁,可以加X锁 C. 可以加S锁,也可以加X锁 D. 不能加任何锁 5、任何一个供应商可向任何一个工程供应任何一种零件,该事务...

    数据库并发控制.doc

    但这样就会产生多 个用户程序并发存取同一数据的情况,若对并发操作不加控制就可能会存取和存储不正 确的数据,破坏数据库的一致性,所以数据库管理系统必须提供并发控制机制。并发控 制机制的好坏是衡量一个数据库...

    数据库系统概论CH10(部分)习题解答.doc

    对于刚刚学习数据库课程的读者来讲可能并 不体会数据库故障恢复的复杂性和重要性。到了实际工作中,作为数据库管理员,则必 须十分清楚每一个使用中的DBMS产品提供的恢复技术、恢复方法,并且能够根据这些技 术正确...

    数据库原理编程与性能第2版 中文版附答案

    相对于初始标准来说,sql数据库语言有了非常重要的变化,所以对对象关系给予特别讲述。本书还介绍了sql-99设计方法及与之相关的原理方法及主要产品。本书的作者是在数据库界工作30多年的资深专家,富于教学和实践...

Global site tag (gtag.js) - Google Analytics