数据库脏读、事务的四大特性、四大隔离级别、三大范式
一、 数据概念 1、 脏数据所指的就是未提交的数据。也就是说,一个事务正在对一条记录做修改,在这个事务完成并提交之前,这条数据是处于待定状态的(可能提交也可能回滚),这时,第二个事务来读取这条没有提交的数据,并据此做进一步的处理,就会产生未提交的数据依赖关系。这种现象被称为脏读。 2、 不可重复读( Non-Repeatable Reads):一个事务先后读取同一条记录, 而事务在两次读取之间该数据被其它事务所修改,则两次读取的数据不同,我们称之为不可重复读。 3、 幻读( Phantom Reads):一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为幻读。 4 、幻读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,比如这种修改涉及到表中的 “全部数据行”。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入“一行新数据”。那么,以后就会发生操作第一个事务的用户发现表中还存在没有修改的数据行,就好象发生了幻觉一样.一般解决幻读的方法是增加范围锁RangeS,锁定检索范围为只读,这样就避免了幻读。 二、数据库事务的四大特性: 1 、原子性:事务包含的所有数据库操作要么全部成功,要不全部失败回滚 2 、一致性:一个事务执行之前和执行之后都必须处于一致性状态。拿转账来说,假设用户