课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
数据库开发是软件编程开发程序员在学习后端编程开发的时候需要重点掌握的编程技术之一,而今天我们就一起来了解一下,数据库中事务的概念以及执行方法。
事务的定义是:一个事务是一组对数据库中数据操作的集合。无论集合中有多少操作,对于用户来说,只是对数据库状态的一个原子改变。
一个事务的所有操作要么全部执行,要么一个都不执行。如果在执行事务的过程中,因为任何原因导致事务失败,已经执行的操作都要被回滚(rollback)。这种“all-or-none"的属性就是所谓的事务的原子性(atomicity)。
当一个事务被认定执行成功后,即代表这个事务的操作被数据库持久化。因此,即使数据库在此时奔溃了,比如进程被杀死了,甚至是服务器断电了,这个事务的操作依然有效,这就是事务的另一个属性,持久性(durability)。
假定数据库的初始状态是稳定的,或者说对用户来说是一致的。由于事务执行的原子性,即执行失败就回滚到执行前的状态,执行成功就变成一个新的稳定状态。因此,事务的执行会保持数据库状态的一致性(consistency)。
数据库系统是多用户系统。多个用户可能在同一时间执行不同的事务,称为并发。如果想要做到事务的原子性,那么数据库就必须做到并发的事务互不影响。从事务的角度出发,在执行它本身的过程中,不会感知到其他事务的存在。从数据库的角度出发,即使同一时间有多个事务并发,从微观尺度上看,它们之间也有先来后到,必须等一个事务完成后,另一个事务才开始。这种并发事务之间的不感知就是所谓的事务隔离性(isolation)。
总之,一个事务是一组对数据库中数据操作的集合。事务,对于数据库系统,具有原子性(atomicity),一致性(consistency),隔离性(isolation),以及持久性(durability)。曾经听过这样一个观点,事务的出现主要是针对并发。其实不然,ACID属性中只有隔离性是针对并发事务的。所以,即使数据库系统是一个单用户系统,我们依然希望事务具有原子性、一致性和持久性。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。