博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数据库基础】数据库事务 - Transaction
阅读量:4006 次
发布时间:2019-05-24

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

1. 数据库事务

数据库事务是指作为单个逻辑单元执行的一系列操作,可以认为事务就是一组不可分割的SQL语句。

2. 数据库事务的ACID属性

数据库事务必须具备ACID特性,ACID是:

  • Atomic原子性

事务必须是原子工作单位;对于其数据修改,要么全部执行,要么全都不执行。

  • Consistency一致性

事务在完成时,必须使所用的数据都保持一致状态。在相关数据库中,所有规则都必须应用与事务的修改,以保持所有数据的完整性。

  • Isolation隔离性

由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。

  • Durability持久性

事务完成之后,它对系统的影响是永久性的。

事务的ACID特性是由关系数据库管理系统来实现的。数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所作的更新,如果某个事物在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,是数据库退回到执行事务前的初始状态。

数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。

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

你可能感兴趣的文章
微服务架构的设计模式
查看>>
持续可用与CAP理论 – 一个系统开发者的观点
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>
c++指针常量与常量指针详解
查看>>
c++字符数组和字符指针区别以及str***函数
查看>>
c++的string类初始化及其常用函数
查看>>
c++类的操作符重载注意事项
查看>>
c++模板与泛型编程
查看>>
STL::deque以及由其实现的queue和stack
查看>>
CS4344驱动
查看>>
WAV文件解析
查看>>
DAC输出音乐2-解决pu pu 声
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
WPF UI&控件免费开源库
查看>>
QT打开项目提示no valid settings file could be found
查看>>
Win10+VS+ESP32环境搭建
查看>>
Ubuntu+win10远程桌面
查看>>
flutter-实现圆角带边框的view(android无效)
查看>>
flutter-实现一个下拉刷新上拉加载的列表
查看>>
android 代码实现圆角
查看>>