事务具备ACID四个基本特征:
1. Atomic
原子性,一件事情,要么成功,要么失败。
2. Consistent
一致性,一件事情在处理过程中,看到的数据应该是一致的。
3. Isolate
隔离性,一件事情在处理过程中,应该是独立的,不受到其他事情的影响。
4. Durability
持久性,一件事情的完成以后,效果应该是永久性的,否则数据一旦丢失,所做的一切都是无意义的。
Oracle以自己的体系结构实现了这个基本的功能。
1.为了保证原子性,用户处理数据以后,要么commit,要么rollback,即成功或者失败。
2.为了保证一致性,引入了回滚段,即使数据在查询开始以后被修改,也可以根据当前数据和回滚段中的数据构造查询时数据的映像,保证数据的一致性。
3.为了保证隔离性,引入了latch,lock的概念,在一件事情的操作还没有完成的时候,其他事情不能够进行处理。引入了enqueue和semphore的概念,保证不同事情的顺序处理和交互。
4.为了保证永久性,所有的修改都保存在物理介质中,并引入了日志的概念,记录了数据操作步骤,在日志保存到磁盘以后,就可以保证数据是已经修改成功的,因为即修改过程是可以重现的。
数据容灾和备份的Service Guard,实现failover,scalebility的RAC,都是满足这个基本的功能的基础上实现和扩展的。