
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
事务是程序员在学习数据库技术的时候需要重点掌握的一个编程知识,而今天我们就通过案例分析来了解一下,事务执行特性都有哪些类型。
原子性
我们还是从这些特性的概念出发去讨论,原子性的概念是一个事务要么执行成功,要么执行失败,即Allornothing。这种特质我们可以用一个小的事务模型去定义出来,我们假设有一个事务,我们通过一套机制能够实现它真正的提交或回滚,这个目的就达成了,用户只是通过我们的系统进行了一次提交,而原子性的重心不在于事务成功或失败本身;而是保证了事务体系只接受成功或失败两种状态,而且有相应的策略来保证成功或失败的物理结果和逻辑结果是一致的。原子性可以通过小事务单元的特性定义出来,是整个事务体系的基石。
持久性
而持久性指的是事务一旦提交后就可以永久的保存在数据库中。持久性的范围与视角几乎与原子性是一致的,其实也导致了二者在概念和实现上也是紧密相连的。二者都一定意义上保证了数据的一致和可恢复性,而界限便是事务提交的时刻。举例来说,一个数据目前的状态是T,如果某个事务A试图将状态更新到T+1,如果这个事务A失败了,那么数据库状态回到T,这是原子性保证的;如果事务A提交成功了,那么事务状态变成T+1的那一刻,这个是原子性保证的;而一旦事务状态变成T+1且事务成功提交,事务已经结束不再存在原子性,这个T+1的状态就是由持久性负责保证。从这个角度可以推断原子性保证了事务提交前数据的崩溃恢复,而持久性保证了事务提交后的崩溃恢复。
隔离性
隔离性同样是定义在事务层面的一个机制,给事务并发提供了某种程度的隔离保证。隔离性的本质是防止事务并发会导致不一致的状态。由于不是本文的重点这里不做详述。
一致性:相较于其他几个特性很特殊,一致性的概念是数据库在经过一个或多个事务后,数据库必须保持在一致性的状态。如果从事务的角度去理解,保证了AID就可以保证事务是可串行、可恢复、原子性的,但是这种事务状态的一致性就是真正的一致性吗?破坏了AID就一定破坏C,但是反之AID都保证了C一定会被保证吗?如果答案是是的话那这个概念就会失去它的意义。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。