关系型数据库的ACID特性(金典解读关系型数据的一致性)

关系型数据库的ACID特性
A:原子性
C:一致性
I:隔离性
D:永久性

一致性的金典解读案例:
[img]http://dl2.iteye.com/upload/attachment/0130/2382/42b5b2db-fa4b-3f6a-9d17-61144c45acbe.jpg[/img]

解读图片含义:中间的方框为一个oracle数据库(1000万数据),用户A执行一个查询操作,需要花10分钟才能执行完毕该查询语句(开始执行时间为9:00 -执行完毕时间为9:10), 用户表B执行一个修改语句,正好B用户的修改的数据正是A用户查询结果中的某条数据(B用户的修改语句执行时间为9:05),[color=red] 简单来说:A用户在查询数据的过程中,B用户修改了其中某条数据,问 B用户的操作会不会使A用户的查询结果受到影响? [/color]

答案是: A用户的查询结果不会受影响

oracle数据库中有一个undo的概念,undo可以理解为旧值(快照),B用户执行修改语句成功只提交,失败是回滚(回滚就是取到旧值,执行修改)
A用户查询数据是之前的数据, 哪怕在查询过程中数据被改变了, 他回去快照中查找数据
[color=blue]
snapshot too old 快照太久的异常[/color]

你可能感兴趣的:(oracle数据库)