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

youngyt 2008-09-10 04:52:47
加精

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

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

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

我的理解就是这样的,不知坛子里的专家有什么见解么?如果有不对的地方烦请指正一下,毕竟学习的时候基本概念是很重要的。
...全文
6951 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
lemonzx2008 2010-10-22
  • 打赏
  • 举报
回复
学习了……
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 wjlsmail 的回复:]
数据库中事务的“原子性”是概念上的,概念上同操作系统的原子性,但不是一个“原子操作”。
[/Quote]
请问数据有原子性这个说法吗?原子操作什么概念?和数据库中事务的“原子性”有什么关系?
wjlsmail 2009-05-12
  • 打赏
  • 举报
回复
数据库中事务的“原子性”是概念上的,概念上同操作系统的原子性,但不是一个“原子操作”。
jingjunjie86 2008-11-07
  • 打赏
  • 举报
回复
长见识了
nieshiao 2008-09-24
  • 打赏
  • 举报
回复
数据库的操作不是原子的,而结果是原子的。要么成功,要么失败。不会做了一半就中断了。。。

这个保证是依靠数据库的实现来保证的。以sqlite为例,它是通过journal文件来保证结果的原子性的。
i_microsoft_p 2008-09-22
  • 打赏
  • 举报
回复
讨论得好细啊,呵呵
qiangv1 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 nakeer123 的回复:]
***中国龙芯cpu总负责人李国杰说:“中国需要的是一种软件环境”,国内操作系统开发者也要求建立自主软件体系,而建立软件体系需要一个中心,凝聚分散在各地的人才,这就是计算机网络学会。

一、学会刚刚重组,由于成员激情和恒心极其重要,世俗者、自卑者、自恋者及捣乱者请莫扰(否则将成为全国黑客攻击目标)。
[/Quote]

就以龙芯的“名声”以及你声明中的威胁,呵呵。果然物以类聚。
zhypabc 2008-09-19
  • 打赏
  • 举报
回复
受益匪浅,感谢大家
Jaset 2008-09-19
  • 打赏
  • 举报
回复
学习
solaker 2008-09-18
  • 打赏
  • 举报
回复
mark
bruce0532 2008-09-17
  • 打赏
  • 举报
回复
学习
maja362738 2008-09-17
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 learningDIY 的回复:]
数据库处理中的原子性就是指某个操作要么就做完,要么就回滚什么也不做。
而操作系统中的原子操作就算被中断了,还是可以继续,两个所指的东西应该不一样的吧
仅代表个人观点好
[/Quote]
同意

-------------------------------------------------
北京国展大型人才招聘会(9.27)
http://www.315job.com/YaoQingHan/20080927.html
learningDIY 2008-09-16
  • 打赏
  • 举报
回复
数据库处理中的原子性就是指某个操作要么就做完,要么就回滚什么也不做。
而操作系统中的原子操作就算被中断了,还是可以继续,两个所指的东西应该不一样的吧
仅代表个人观点好
yueyebohe 2008-09-16
  • 打赏
  • 举报
回复
mark
rightyeah 2008-09-16
  • 打赏
  • 举报
回复
up
zgq_1016 2008-09-14
  • 打赏
  • 举报
回复
顶顶 ,学习
mengmou 2008-09-14
  • 打赏
  • 举报
回复
数据库中的事务的原子性更倾向于"逻辑"上的
SlaughtChen 2008-09-13
  • 打赏
  • 举报
回复
顶一个
tang3dashu 2008-09-13
  • 打赏
  • 举报
回复
顶一个顶一个
buf1024 2008-09-13
  • 打赏
  • 举报
回复
OS中的PV操作是计算机原语,粒度非常小的操作.
并发事务是指不同的事务并发执行,对于单个CPU而言,指令总是顺序执行的,但是从DBMS的角度来看,事务却是原子性的.
加载更多回复(9)

8,028

社区成员

发帖
与我相关
我的任务
社区描述
高性能数据库开发
社区管理员
  • 高性能数据库开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧