事务

要做或者所做的事;

访问并可能更新数据库中各种数据项的一个程序执行单元;

作为单个逻辑工作单元所执行的一系列操作;
这些操作会作为一个整体向系统提交,要么全部执行,要么全不执行


一、四个特性


原子性(Atomicity)

事务中的操作要么都做,要么都不做;
例:A向B转账,转账的中途突然发生状况,没有原子性就会出现A已转账, 但是B却没有收到;

一致性(Consistency)

使数据库从一个一致性状态到另一个一致性状态;一个事务成功完成时保证数 据库中的数据一致;

A向B转账,转账成功;如果没有一致性就会出现,A已转账已扣款,但 是银行方面却没有显示A的扣款信息,A账号将会有无限制的额度;

隔离性

一个事务的执行不能被其他事务干扰;

A取款,同时B向A转账;如果A已取款,正要提交,于此同时B正向A 转账,也要提交;如果没有隔离性,就会出现B已经成功转账但是A却 没能收到;

持久性

一个事务一旦成功提交,它对数据库中的数据改变应该是永久性的;

例:

A向B转账,转账成功;如果没有持久性,就会因时间等因素出现A的扣 款金额又回到了A账号中;


二、需要事务的原因


保证数据库的完整性;

以A向B转账100为例;
1.系统确认A与B账号是否符合转账条件;
2.A账号-100;
3.B账号+100;
4.转账完成;
突发状况下就会出现A扣款成功,但B未收到等转账问题;
有事务的存在就会解决,如果A扣款成功B未成功收款,那么数据就会回滚,返回到没有转账的状态;
什么是事务?为什么需要事务?

相关文章: