数据库并发控制机制

本文详细介绍了数据库并发控制机制,包括事务的ACID特性、事务的初始化和终止、COMMIT与ROLLBACK操作,以及不同数据库(DB2、MySQL、Oracle)中事务的隔离级别。事务的隔离级别有四种,每种级别会引发不同的并发问题,如脏读、不可重复读和幻读。数据库通过锁和行版本控制来解决这些问题,不同隔离级别下读数据时的锁类型也有所区别。文章还讨论了一致性非锁定读在提高并发性方面的作用。
摘要由CSDN通过智能技术生成

数据库并发控制机制

   数据库的并发控制机制,顾名思义,是用来控制数据库的并发操作的机制。控制的目的是为了保证数据完整和数据一致性。
   何为数据一致性?在数据库的并发操作中,多个事务同时读取同一份数据,要保证多个事务读取的同一份数据是准确的。
    可能数据的不一致更好理解。例如事务T1、T2同时更新余额为1000余额表, T1减-100元,更新余额为900元,T2减-500元,更新余额为500元;在T2不知道T1已经更新的情况下直接把余额更新为500元,丢失了T1对余额的更新,此时的数据不能反映真实情况,数据变得不一致。并发事务处理过程中,还可能出现事务T1修改了一条记录,事务T2读取该记录后,事务T1被撤销,此时T2读取的数据就就与数据库中的数据不一致,该数据就为“脏”数据。
   因此并发操作中,需要确保事务的隔离性以保证数据的一致性。那么如何确保事务的隔离性呢?接下来我们对DB2,Mysql和ORACLE三种数据库的并发控制机制比较分析。首先我们先看什么是事务。

数据库的数据一致性支持机制:事务日志

  1. 事务:又称为交易,访问数据库系统的可恢复的最小单元。
    1.1事务的ACID
    原子性(Atomicity):事务为一个整体的工作单元,事务对数据库的操作要么全部执行,要么全部取消。
    一致性(Consistency):事务完成时,所有数据都保持一致状态。
    隔离性(Isolation):事务所做的修改必须与其他事务所做的修改隔离。事务查看数据时数据的状态要么为其他事务修改之前要么为其他事务修改之后,不会为中间状态。即多个事务不能同时修改同一份数据。
    持久性(Durability):事务提交后,对数据库所做的修改会永久保存。

1.2事务的初始化和终止
事务在可执行的SQL第一次执行时会自动初始化,事务一旦初始化,就必须终止(COMMIT或ROLLBACK)。
1.2.1关于事务的COMMIT和ROLLBACK
多数情况下,事务通过执行COMMIT或ROLLBACK终止事务。执行COMMIT语句后,事务初始化后对数据库做出的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值