博客
关于我
数据库之事务
阅读量: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/

你可能感兴趣的文章
pipeline项目配置实战
查看>>
Pipenv 与 Conda?
查看>>
QVGA/HVGA/WVGA/FWVGA分辨率屏含义及大小//Android虚拟机分辨率
查看>>
pipreqs : 无法将“pipreqs”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径 正确,然后再试一次。
查看>>
pipy国内镜像的网址
查看>>
quiver绘制python语言
查看>>
pip下载缓慢
查看>>
PIP使用SSH从BitBucket安装自定义软件包,无需输入SSH密码
查看>>
pip在安装模块时提示Read timed out
查看>>
Pix2Pix如何工作?
查看>>
pkl来存储python字典
查看>>
quick sort | 快速排序 C++ 实现
查看>>
pkpmbs 建设工程质量监督系统 文件上传漏洞复现
查看>>
pku 2400 Supervisor, Supervisee KM求最小权匹配+DFS回溯解集
查看>>
queue队列、deque双端队列和priority_queue优先队列
查看>>
PKUSC2018游记
查看>>
PK项目测试,做产品测试有这4大优势!
查看>>
pl sql 的目录 所在的目录 不能有 小括号,如 Program Files (x86)
查看>>
PL SQLDEVELOPMENT导出数据库脚本
查看>>
Queue
查看>>