数据库事务学习

て烟熏妆下的殇ゞ 提交于 2020-01-17 18:04:13

数据库事务:

  概念数据库事务是构成单一逻辑工作单元的操作集合

  概念解释:

      1.数据库事务可以包含一个或多个数据库操作,但这些操作构成一个逻辑上的整体

      2.构成逻辑整体的这些数据库操作,要么全部执行成功,要么全部不执行

      3.构成事务的所有操作,要么全都对数据库产生影响,要么全都不产生影响,即不管事务是否执行成功,数据库总能保持一致性状态

      4.以上即使在数据库出现故障以及并发事务存在的情况下依然成立。

  

原子性(Atomicity):事务中的所有操作作为一个整体像原子一样不可分割,要么全部成功,要么全部失败。

一致性(Consistency):事务的执行结果必须使数据库从一个一致性状态到另一个一致性状态。

          一致性状态是指:1.系统的状态满足数据的完整性约束(主码,参照完整性,check约束等)

                  2.系统的状态反应数据库本应描述的现实世界的真实状态,比如转账前后两个账户的金额总和应该保持不变。

隔离性(Isolation):并发执行的事务不会相互影响,其对数据库的影响和它们串行执行时一样。

持久性(Durability):事务一旦提交,其对数据库的更新就是持久的。任何事务或系统故障都不会导致数据丢失。

数据库系统通过并发控制技术和日志恢复技术来避免这种情况发生.

不考虑隔离性的后果:

  脏读:一个事务读到另一个事务未提交的数据

  不可重复读:在一个事务里面读取了两次某个数据,读出来的数据不一致

  幻读:幻读是事务非独立执行时发生的一种现象

解决办法:四种隔离级别:

  Read Uncommitted(读取未提交内容) :脏读

  Read Committed(读取提交内容)  :防止脏读

  Repeatable Read(可重读)     :防止不可重复读

  Serializable(可串行化)        :防止幻读

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!