Chinaunix首页 | 论坛 | 博客
  • 博客访问: 151295
  • 博文数量: 5
  • 博客积分: 146
  • 博客等级: 入伍新兵
  • 技术积分: 87
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-25 10:32
文章分类
文章存档

2015年(2)

2012年(3)

我的朋友

分类: Oracle

2015-03-06 23:21:05

RDBMS(关系型数据库管理系统的英文缩写)所具有的4个重要特性:原子性、一致性、隔离性、持久性,用英文头字母表示为ACID

原子性:要么完全做,要么完全不做。例如:一个事务执行删除1000个记录的SQL,执行到999后错误,那么事务终止(回滚)。简单点就是王八考试成绩为59.5分,最终的结果就是不及格。只是数据库把不及格和及格的操作分为0分(rollback)和100分(commit)两种。

持久性:王八往银行存入1块钱,20年后王八希望查询这1块钱是什么时候存的,银行工作人员不能把这1块的记录删掉或忽略掉。那么oracle可以检索到所有已提交的事务,通过数据库恢复机制实施,采用先行写的方式,在数据写入磁盘的数据文件前,先把事务写入到磁盘的重做日志。

隔离性:关系型数据库的特点是并发性,实际中,会有很多不同的用户对表进行插入、删除、修改操作,因此在一个事务提交前不能看到其它相关事务所更改的内容,所以每个事务都是隔离的,oracle通过并发性控制来支持。

一致性:举个例子,王八又去银行办理手续,他希望把储蓄账户里面的1块钱取出,然后存入支票账户,那么银行工作人员不能够直接把1块钱存入支票账户,王八不可能变成2块钱,银行不允许这样的操作,oracle也不例外。再举个oracle的例子:用户希望删除部门ID A,但雇员表中有一个雇员属于部门A,那么oracle不允许删除部门A

 

事务并发性控制:所有用户所看到的数据必须是一致的,维护一个单用户的数据库一致性非常的简单,但是实际中会有许多不同的用户会修改、删除、插入数据到一张表中,那么并发性就会带来数据不一致的问题,所以oracle采用一种锁定的机制来保持数据的一致性。一个事务修改一张表时,oracle将锁定整张表,这样一个事务的操作不会影响到其他事务。在并发性控制下,就像用户一个接一个的处理事务,oracle牺牲了并发性,为了最大的提高并发性oracle使用的锁定是最小限制方式。

阅读(1943) | 评论(0) | 转发(0) |
0

上一篇:oracle 事务与commit和rollback

下一篇:没有了

给主人留下些什么吧!~~