文件名称:事务的特性-SQL入门教程
文件大小:14.58MB
文件格式:PPT
更新时间:2024-05-13 18:31:15
SQL入门
事务的特性 事务必须具备以下四个属性,简称ACID 属性: 原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行 一致性(Consistency):当事务完成时,数据必须处于一致状态 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务 永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性 * 根据银行例子解释事务的四个特征: 原子性(Atomicity):事务是一个完整的操作。事务的各元素是不可分的(原子的)。事务中的所有元素必须作为一个整体提交或回滚。如果事务中的任何元素失败,则整个事务将失败。 再次以银行转帐事务为例,如果该事务提交了,则这两个帐户的数据将会更新。如果由于某种原因,事务在成功更新这两个帐户之前中止,则不会更新这两个帐户余额,并且会撤销对任何帐户余额的修改。事务不能部分提交。 一致性(Consistency):当事务完成时,数据必须处于一致状态。也就是说,在事务开始之前,数据存储中的数据处于一致状态。在正在进行的事务中,数据可能处于不一致的状态,例如,数据可能有部分修改。然而,当事务成功完成时,数据必须再次回到已知的一致状态。通过事务对数据所做的修改不能损坏数据,或者说事务不能使数据存储处于不稳定的状态。 再次以银行事务为例。在事务开始之前,所有帐户余额的总额处于一致状态。在事务进行过程中,一个帐户余额减少,而另一个帐户余额尚未修改。因此,所有帐户余额的总额处于不一致状态。事务完成以后,帐户余额的总额再次恢复一致状态。 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的。这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。修改数据的事务可以在另一个使用相同数据的事务开始之前访问这些数据,或者在另一个使用相同数据的事务结束之后访问这些数据。另外,当事务修改数据时,如果任何其他进程正在同时使用相同的数据,则直到该事务成功提交之后,对数据的修改才能生效。张三和李四之间的转帐以及王五和赵二之间,永远是相互独立的。 持久性(Durability):事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。银行的转帐事务,即使出现停电等突发事件,也不会影响数据的正确处理。