数据库事务的概念、理解【为了理解nosql】

一、事物的几个特征:ACID属性

原子性:事务的所有操作要么全部执行,要么全部不执行(注:一个事务包括多个操作,可有SQL编程决定);(注:转账操作);

一致性:隔离(单独)执行事务时,保持数据库的一致性;(如果一个事务作为原子从一个一致的db状态开始执行,则事务执行结束后,db必须仍然是一致的)【确保单个事务的一致性是程序员应该考虑的问题】

隔离性:每个事务执行时,都无法感知到DB内其他事务在并发执行;

事务的隔离性确保事务并发执行后的系统状态与这些事务以某种状态一个接一个执行后的状态是等价的;

持久性:事务执行结果对DB的改变必须是持久的,既是系统出现故障;

数据库的事务管理部件使得应用程序开发人员关注于单个事务上,而不需要考虑并发与容错问题;

思考:

1、哪些属性是DB需要完成的,哪些是app程序需要控制的;估计也就是单个事务的一致性;【理解】

2、什么是可串行化?【理解】


二、通过调度解决问题,一个并发调度效果上应该等同于一个串行调度,成为事务可串行化【理解】;

隔离实现的方案包括锁、时间戳、多版本及时间快照等;

事务的隔离性通过可串行化操作解决,但是串行化操作必然影响系统性能;因此,事务的隔离性包括4个级别,app可以权衡性能进行隔离级别选择;

既一个app可以为了性能选择较弱的隔离级别;需要权衡低隔离级别可能带来的数据不一致风险对应用的可接受程度;

事务可串行化调度是保证一致性的理想方法,实际app中,无需此严格要求;

【案例】事务的编写需要仔细考虑【理解】,航空公司的位置选择包括用户交互及位置信息更新2个部分。

我们要求事务的并发执行产生的任何调度的执行效果等价于这些事务按照某种串行顺序执行的效果==事务可串行化(4个级别);







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值