博客
关于我
数据库之事务
阅读量:531 次
发布时间:2019-03-08

本文共 1243 字,大约阅读时间需要 4 分钟。

事务管理与并发控制

1. 事务的概念

事务(Transaction)是数据库环境下由一组数据库操作序列组成的逻辑工作单元。这些操作应是一个不可分割的整体,要么全做要么全不做。事务的执行应保证将数据库从一个一致状态转变成另一个一致状态,而在此过程中不必保证数据的一致性。

2. 事务的执行机制

事务通常以 BEGIN TRANSACTION 开始,以 COMMITROLLBACK 结束。COMMIT 表示提交事务的所有操作,将事务中所有对数据库的更新写回磁盘。ROLLBACK 表示回滚,将事务中已完成的操作全部撤消,恢复到事务开始时的状态。

3. 事务的性质

A. 原子性(Atomicity)

事务是数据库的逻辑工作单位,事务中的操作要么都做,要么都不做,确保数据库的状态始终保持一致。

C. 一致性(Consistency)

事务执行后必须使数据库从一个一致性状态变为另一个一致性状态。在故障发生时,系统会回滚,确保数据库恢复到一致状态。

I. 隔离性(Isolation)

一个事务的执行不能被其他事务干扰,保证了数据的独立性,避免并发操作带来的数据不一致性。

D. 持续性(Durability)

事务提交后,所有更新必须写入数据库,对其他操作无影响,确保数据持久性。

4. 事务的操作

Read(X)

从数据库中将数据对象读入事务局部缓冲区。

Write(X)

将数据对象从事务局部缓冲区写入数据库。

5. 事务的状态

活动状态

事务开始执行后处于此状态,可执行读、写操作。

部分提交状态

事务结束前进入此状态。

失败状态

事务因故障或被撤销而进入此状态。

提交状态

事务已成功提交,进入该状态才能认为事务已完成。

中止状态

数据库恢复到事务开始前的状态,事务处于中止状态。

6. 事务故障

没有提交的事务可能已写入数据库,或部分更新未完成。

恢复方法

利用事务日志撤销未完成操作,重做已提交操作。

7. 数据库恢复技术

backup(备份)

分全备份、增量备份等方式进行数据保护。

事务日志

记录事务更新操作,用于故障恢复。

恢复方法

根据故障类型选择恢复方案,确保数据一致性。

8. 并发控制

读脏数据

一个事务修改数据后,另一个事务读取已修改的数据。

丢失修改

并发事务可能导致修改数据未能提交。

不可重复读

事务可能读取到第一个事务修改数据后的数据。

并发控制方法

使用锁机制和并发控制协议,确保数据一致性。

9. 锁机制

排它锁(X锁)

防止其他事务修改被加锁数据,确保数据一致性。

共享锁(S锁)

允许多个事务读取数据,但防止修改。

更新锁(U锁)

允许多个事务读取数据,但防止修改。

10. 加锁协议

一级加锁

事务在修改前加 X锁,全锁保护。

两段锁协议

分封锁和收缩阶段进行锁管理。

11. 防止死锁

一是优化加锁顺序

避免矛盾加锁,防止死锁。

二是死锁检测

及时发现死锁,进行恢复处理。

通过上述措施,可以有效管理并发事务,确保数据库的高并发运行。

转载地址:http://eglnz.baihongyu.com/

你可能感兴趣的文章
OSPF 学习
查看>>
OSPF 概念型问题
查看>>
OSPF 的主要目的是什么?
查看>>
SQL Server 存储过程分页。
查看>>
OSPF不能发现其他区域路由时,该怎么办?
查看>>
OSPF两个版本:OSPFv3与OSPFv2到底有啥区别?
查看>>
SQL Server 存储过程
查看>>
OSPF在大型网络中的应用:高效路由与可扩展性
查看>>
OSPF太难了,这份OSPF综合实验请每位网络工程师查收,周末弯道超车!
查看>>
OSPF技术入门(第三十四课)
查看>>
OSPF技术连载10:OSPF 缺省路由
查看>>
OSPF技术连载11:OSPF 8种 LSA 类型,6000字总结!
查看>>
OSPF技术连载13:OSPF Hello 间隔和 Dead 间隔
查看>>
OSPF技术连载14:OSPF路由器唯一标识符——Router ID
查看>>
OSPF技术连载15:OSPF 数据包的类型、格式和邻居发现的过程
查看>>
OSPF技术连载16:DR和BDR选举机制,一篇文章搞定!
查看>>
OSPF技术连载17:优化OSPF网络性能利器——被动接口!
查看>>
OSPF技术连载18:OSPF网络类型:非广播、广播、点对多点、点对多点非广播、点对点
查看>>
OSPF技术连载19:深入解析OSPF特殊区域
查看>>
SQL Server 复制 订阅与发布
查看>>