名称 | 简介 | 举例 |
Atomicity原子性 | 所有的SQL语句要么全部成功,要么全部失败,不会存在部分更新。 | 假设有以下场景,A转账100元给B。这里有两个动作:一是A账号减少100元,二是B账号增加100元,这两个动作不可分割。 |
Consistency一致性 | 事务只能以允许的方式改变受其影响的数据。 | 假设A和B两者的钱加在一起一共100元,那么无论A和B之间如何转账,转几次账,事务结束后两个用户的钱加起来一定还是100元。 |
Isolation隔离性 | 同时发生的事务(并发事务)不应该导致数据库出于不一致的状态中。系统中每个事务都应该像唯一事务一样执行。任何事务都不应影响其他事务的存在。 | 隔离性即是要达到这样一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。 |
Durability持久性 | 无论数据库或系统是否发生故障,数据都会永久保存在磁盘上,并且不会丢失。 | 当开发人员在使用JDBC操作数据库时,在提交事务后,提示用户事务操作完成,那么这个时候数据就已经存储在磁盘上了。即使数据库重启,该事务所做的更改操作也不会丢失。 |