一、原子性
表示一个事物内部的所有操作是一个整体,要么全部成功,要么全部失败。
二、一致性
表示在一次事务操作执行过程中,任意一个操作失败,即导致已成功的操作回滚到操作之前的状态。
三、隔离性
定义:Isolation: Concurrently executing transactions see the stored information as if they were running serially (one after another).隔离:并发执行的事务会看到存储的信息,就好像它们是串行运行的(一个接一个)。
事务的隔离级别从低到高有:
Read Uncommitted:最低的隔离级别,什么都不需要做,一个事务可以读到另一个事务未提交的结果。所有的并发事务问题都会发生。
Read Committed:只有在事务提交后,其更新结果才会被其他事务看见。可以解决脏读问题。
Repeated Read:在一个事务中,对于同一份数据的读取结果总是相同的,无论是否有其他事务对这份数据进行操作,以及这个事务是否提交。可以解决脏读、不可重复读。
Serialization:事务串行化执行,隔离级别最高,牺牲了系统的并发性。可以解决并发事务的所有问题。
通常,在工程实践中,为了性能的考虑会对隔离性进行折中。
四、持久性
表示操作的成功执行对系统的影响是永久的