并发控制是DBMS的关键技术
对数据库的操作都是在事务中进行的。
事务是指一组相互依赖的操作行为。事务中的操作是不可分割的工作单元,由一组在业务逻辑上相互依赖的SQL语句组成,有ACID特征。
Atomic(原子性):事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败。
Consistency(一致性):只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初状态。
Isolation(隔离性):事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性和完整性。同时,并行事务的修改必须与其他并行事务的修改相互独立。
Durability(持久性):事务结束后,事务处理的结果必须能够得到固化。
数据库中有多个事务同时存在,就是事务并发,此时就不能保证事务隔离性,SQL-92定义了事务隔离级别,描述了给定事务的行为对其它并发执行事务的暴露程度,或者说是一个事务必须与其它事务进行隔离的程度。隔离级别由低到高为:
Read Uncommitted,Read Committed,Repeatable Read, Serializable
隔离级别越高,越能保证数据的完整性和一致性,但对并发性能的影响也越大
对数据库的操作都是在事务中进行的。
事务是指一组相互依赖的操作行为。事务中的操作是不可分割的工作单元,由一组在业务逻辑上相互依赖的SQL语句组成,有ACID特征。
Atomic(原子性):事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败。
Consistency(一致性):只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初状态。
Isolation(隔离性):事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性和完整性。同时,并行事务的修改必须与其他并行事务的修改相互独立。
Durability(持久性):事务结束后,事务处理的结果必须能够得到固化。
数据库中有多个事务同时存在,就是事务并发,此时就不能保证事务隔离性,SQL-92定义了事务隔离级别,描述了给定事务的行为对其它并发执行事务的暴露程度,或者说是一个事务必须与其它事务进行隔离的程度。隔离级别由低到高为:
Read Uncommitted,Read Committed,Repeatable Read, Serializable
隔离级别越高,越能保证数据的完整性和一致性,但对并发性能的影响也越大