18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 事务(数据库)

事务(数据库)

时间:2022-11-12 00:30:01 | 来源:信息时代

时间:2022-11-12 00:30:01 来源:信息时代

    事务 : 为完成一项数据处理任务而执行的一个数据库操作序列。这些操作要么全部被执行要么一个也没有被执行,是一个不可分割的工作单位,它的执行能够保证数据库从一个正确的状态转移到另一个正确的状态。具体地说,事务需要满足以下四个方面的性质,称之为事务的ACID性质(ACID property):
(1)原子性(atomicity): 指系统必须保证事务中的全部操作要么全部正确地被执行要么什么也没有被执行,也就是说,一个事务中所有对数据库的操作是一个不可分割的操作序列。如果因为故障而使事务未能完成,在恢复时要消除其对数据库已造成的影响。
(2)一致性(consistency): 指事务的执行必须保持数据库从一个一致性状态转变到另一个一致性状态。
(3) 隔离性(isolation): 指某个事务的执行应感觉不到其他事务的存在,也就是说,即使是在多个事务并发执行、相互干扰的情况下,一个事务的执行效果和只有该事务存在情况下的执行效果是一样的。
(4)持久性(durability): 指一旦事务提交成功,它对数据库的改变必须是永久的,即使以后计算机或数据库的存储介质发生故障,也不能消除事务的执行效果。
事务的上述性质中,原子性是最基本的。一致性是用于保障在操作数据库后仍然能满足事先定义的各种逻辑约束。隔离性是针对多个事务交叉执行、相互干扰情况下对系统的并发控制要求。持久性是对各种系统故障发生时的要求。数据库管理系统为了支持上述事务的概念,需要实现完整性检查、并发控制、故障恢复等多个子系统或者功能模块。可见,支持事务是现代数据库管理系统最重要的特征。
在关系数据库系统中,事务就是一组SQL语句或者是一个包含SQL语句的程序。用户可用以下3条语句来组织事务:
BEGIN TRANSACTION
COMMIT
ROLLBACK
事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。COMMIT表示提交,即提交事务的所有操作。具体地说,就是将事务中所有对数据库的更新真正写回到磁盘上的物理数据库中去,事务正常结束。ROLLBACK表示回退,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,回退到事务开始时的状态。数据库管理系统在用户没有明确定义事务的时候,按照其缺省的规定来分割事务,通常是一条SQL语句作为一个完整的事务对待。
值得说明的是,事务的ACID性质是对事务的完整的要求。实际系统中,由于严格维持全部的四个特性代价太大,对数据库系统整体的性能是一个巨大的压力。因此,在具体实现时也有多种不同的选择。例如,关于隔离性,严格的隔离性是以资源的独占为代价的,无疑会大大降低系统的并发度和事务处理的性能,但是,有些应用(比如统计全班同学的平均成绩等数据分析型应用)对于数据的隔离性要求可以降低一些,因此,许多商用数据库系统设计了多个隔离级别,用户可以根据应用的具体情况进行选择。SQL2语言提供事务的四种隔离性等级让用户选择,这四个等级从高到低为:
(1)可串行化(serializable): 这是最高的等级,也是缺省的定义。
(2)可重复读(repeatable read): 只允许事务读已提交的数据,并且在两次读同一数据时不允许其他事务修改此数据。
(3)读提交数据(read committed):只允许事务读已提交的数据,但未必要求“可重复读”。例如,在事务两次读同一个数据时,有可能值不一样,即第二次读数据时值已被其他已提交事务修改过。
(4)可以读未提交数据(read uncommitted):允许事务读已提交或未提交的数据。这是SQL2中最低的一个等级。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭