前言
SQL Server作为一款优秀的关系型数据库,在支撑起最基本的数据存储功能之外,还承受着各种大量的并发操作和用户访问。
而本系列内容将一层层慢慢分析出在SQL Server的生态环境中,是怎样通过一系列的机制来维持各种访问的秩序,俗话说得好:“有人的地方就有了江湖,有了江湖就有了江湖规矩”,同样在SQL Server的世界中,也有它自己的“江湖规矩”,如果你不按照规矩出牌,那么你将会被踢出局!
同样本系列也会分析出遇到各种问题的解决思路,供院友们参考。
本篇作为第一篇,首先同样先提基础,而后再谈会产生的问题。
本篇主要介绍事务的属性,关于事务其实是老生常谈,稍微有点基础的朋友都知道,但这里还是要再赘述一遍。
技术准备
基于SQL Server2012版本。
概念介绍
事务是作为单个逻辑单元执行的一系列操作,数据库的操作都是基于这些逻辑的单元的堆叠。而每个逻辑单元必须具备4个属性:原子性、一致性、隔离性和持久性,这有这样才能成为一个事务。
以上也就是我们通常称呼的(ACID)。
- 原子性
所谓的原子性就是事务必须是原子工作单元,就是说其操作性不不可分割。
简单点讲:就是所谓的事务操作要么全部执行,要么全都不执行,不存在二义性操作!
这个很好理解:比如你去修改数据库数据,要修改100条记录,要不就100条都不修改,要不就都修改,不存在修改了一部分而另外一部分没改的情况发生。
在SQL Server中,每一个单独的语句都可以看做是默认包含在一个事务之中,这里的概念就是隐含事务,每个事务性操作要么执行完成,要么回滚到初始值状态。
提到这里如果数据量比较大,比如很多职位要求中提到的“海量数据”,就这一个属性就有很大“雷”!......文章后面分析
- 一致性
事务在完成时,必须要使得所有的数据都保持一致状态。
时间: 2024-10-12 17:17:31