一日一记
Posted chenruibin0614
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一日一记相关的知识,希望对你有一定的参考价值。
数据库保护又叫做数据库控制,是通过四个方面实现的,即安全性控制,完整性控制,并发性控制和数据恢复。
任何支持事务的数据库,都必须具备四个特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),也就是我们常说的事务ACID,这样才能保证事务((Transaction)中数据的正确性。
原子性:一个事物内所有操作共同组成一个原子包,要么全部成功,要么全部失败。
数据库事物的一致性就规定了事物提交前后,永远只可能存在事物提交前的状态和事物提交后的状态,从一个一致性的状态到另一个一致性状态,而不可能出现中间的过程态。
隔离性:事物可以有多个原子包的形式并发执行,但是,每个事物互不干扰。
一致性:当一个事物提交之后,数据库状态永远的发生了改变,这个事物只要提交了,哪怕提交后宕机,他也确确实实的提交了,不会出现因为刚刚宕机了而让提交不生效。
一般的数据库,都包括以下四种隔离级别:
读未提交(Read Uncommitted)读提交(Read Committed)可重复读(Repeated Read)串行化(Serializab)
脏读,事务(T1)中修改的数据项在尚未提交的情况下被其他事务(T2)读取到,而T1进行Rollback操作,则T2刚刚读取到的数据并没有实际存在。
不可重复读,T1读取数据项,T2对其中的数据进行了修改或删除且Commit成功。如果T1尝试再次读取这些数据,会得到T2修改后的数据或者发现数据已删除。这样T1在一个事务中两次同样条件的读取,且结果集内容变更或结果集数量减少。
幻读,T1使用特定的查询条件获得一个结果集,T2插入新的数据且这些数据符合T2刚刚操作的查询条件。T2 commit 成功后,T1再次执行同样的查询,此时得到的结果集增大。
以上是关于一日一记的主要内容,如果未能解决你的问题,请参考以下文章