欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于数据库的原子性和原子操作的概念有关问题

更新时间: 2014-01-05 02:30:49 责任编辑: Author_N1

 

关于数据库的原子性和原子操作的概念问题

我在学习操作系统PV操作的时候知道PV操作都是原子操作,也就是说这些操作是不能被打断的,可以通过暂时关闭中断来实现。

今天我在看数据库事务处理时,它提到原子性。定义为:要么全部执行完,要么什么都不执行。

我的问题来了,我一直以为原子操作和原子性这两个概念是一样的,原子操作具有的就是原子性,具有原子性的操作是原子操作。那么事务是可以并发执行的,也就是说一个事务中的指令在等待IO(打个比方)时,另一个事务的指令可以使用CPU时间。这也就是说第一个事务其实是被打断了的,那么这就和原子操作的定义不符合了,但如果两个事务的指令都能顺利执行完,这是符合原子性定义的。

我的理解就是这样的,不知坛子里的专家有什么见解么?如果有不对的地方烦请指正一下,毕竟学习的时候基本概念是很重要的。

--参考方法--
操作系统的原子操作,粒度更细,并且不具有持久性,不能存储到事务日志当中加以恢复。
而事务处理中的原子性,粒度要大得多。一个长事务,可以持续几天才完成。

--参考方法--
数据库的操作不是原子的,但是结果是原子的。要么成功,要么失败。不会做了一半。。。

这个保证是依靠数据库的实现来保证的。以sqlite为例,它是通过journal文件来保证结果的原子性的。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:30:49
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/10749/
本文WWW.DOC100.NET DOC100.NET版权所有。