关于隔离性的问题

来源:2-1 事务的概念与特性

洛奇丶大

2019-07-24 18:38:54

A账户:50

B账户:50

事务A :A-50,B+50

事务B:A+20,B-20

问题1、隔离性的意思:事务A和事务B执行的时候,必须等其中一个事务执行完毕commit之后,另一个事务才能执行,是这个意思吗?

问题2、假设现在没有隔离性。

事务A执行A-50 , 事务B执行A+20,B-20,此时事务A的第二个操作错误,回滚了。因为A数据已经被事务B操作过了,所以找不回A的数据的原始状态。但是我认为,此时事务A回滚,那么你把你执行过的A-50撤销就好了,最后结果是A=70 B=30 结果没问题。。。。

隔离性应该怎么理解?

写回答

2回答

时间,

2019-07-24

同学,你好。

1、隔离性:同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。

2、当事务A对A账户操作时,事务B是对A账户操作不了的,要符合事务中的原子性。原子性:事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

0

静以修身666

2019-07-24

同学您好!隔离机制在“2-4事务的隔离级别”中有具体的讲解,您在问题1中提到的机制属于“序列化”serialable类型(不常用)的。默认的隔离类型是重复读取,即一直使用创建undo日志的数据,除此之外,还有读取已提交数据的类型和未提交数据的类型。一般而言,隔离性是指不能读取其他操作的中间数据而只能读取其他操作提交后数据的机制。个人看法,供参考。


0

0 学习 · 2669 问题

查看课程