数据库 事务(Transaction)的学习笔记

数据库 事务(Transaction)的学习笔记
web

概念:事务是访问并可能更新各类数据项的一个程序执行单元。 English difined: A transaction is a collections of operations that form a single unit of work. 特色:(ACID) 原子性(atomicity) 一致性(consistency) 隔离性(isolation) 持久性(durability) 补充:隔离性的理解 事务的隔离性确保事务并发执行后的系统状态与这些事务以某种次序一个接着一个执行后的状态是等价的。 实际例子的解决: 1.可见的外部写(observable external write) 定义:写的结果在数据库系统的外部以外看到,但实际上数据可能暂未写到数据库中大多数系统只容许该操 做在事务进入提交状态后发生。 解决:先在非易失行存储设备中临时写下与外部相关的全部数据,而后在事务进入提交状态后再执行真正的写操做。 2.用户在自动取款机上提款,但在即将取款成功时,系统出错。 解决:复杂一些,相对于上面的。从新启动后执行一个补偿事务,好比将现金存回用户的帐户,而非重启后再次执行 该事务,把现金提取出来(由于用户可能不在了哇!) 3.用户在Web上进行预约。可能在预约事务刚刚提交后数据库系统或服务器发生崩溃。即事务已经提交, 但外部的写操做未发生(用户因为某些缘由未能获得预约结果的反馈) 解决:应用程序必须设计成当用户再次链接到web应用程序时,她可以看到她的事务是否成功。 参考资料:《数据库系统概念 (原书第6版)》 第14章节
相关文章
相关标签/搜索