数据库中事务的四大特性_数据库事务的四大特性
数据库事务的四大特性如下:
1.原子数
第一个原子性,这是最简单的。都说一个事物中的所有操作一起形成一个原子包,要么全部成功,要么全部失败。这是最基本的特性,它确保数据库不正常或由于一些其他因素而关闭。
【资料图】
2.一致性
第二,一致性,这是大家误解最多的。很多博客喜欢用银行转账的例子来讲一致性。所谓的一致性是基于原子性。
原子性只保证一件事情中所有操作的同一性。大家生死与共,你不会死,但我还活着。但是,原子性并不能保证所有人都会同时生死与共。电脑的指令是有顺序的,决定了一个东西的提交,会经历一个时间过程。那么如果我在提交的中途读取数据库,会读取中间结果吗?
为了防止这种情况,数据库事务的一致性规定,在事务提交前后,只有事务提交前的状态和事务提交后的状态才能一直存在,从一个一致状态到另一个一致状态,不能出现中间过程状态。也就是说,事物的执行结果是一种量子化的状态,而不是线性的状态。
数据库里会有一个提交东西的过程。如果提交时有时间差,在提交的第一秒,直到第三秒才完成一个删除过程。第一秒访问的人和第三秒访问的人会得到不同的结果吗?不一致,状态混乱?这是一致性的保证。只会有前状态和后状态,永远不会有中间状态。
3.隔离
事物的孤立是基于原子性和一致性。因为事物是原子化和量子化的,事物可以以多个原子包的形式并发执行,但一切互不干扰。
然而,由于许多事物可能操作相同的资源,因此为了确保隔离,将有许多针对不同事物的锁定方案。当然,这是数据库的实现,我们不需要深究它们是如何实现的。
4.坚持
持久化,一个东西提交了,数据库的状态就永远改变了。只要是提交的东西,即使提交后往下掉,也确实会提交。不会出现提交因为刚下去就不生效的情况。是为了要提交的东西,就像洗不掉的纹身,永远凝固,除非你把硬盘毁掉。
本文到此结束,希望对大家有所帮助。