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

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


概念:事务是访问并可能更新各种数据项的一个程序执行单元。
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章节


转载于:https://my.oschina.net/u/2301987/blog/548997

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值