事务
事务的四大特性:
1.原子性:一个事务要不全部执行成功,要不全部执行失败
2.一致性:事务必须从一个一致性的状态转移到另一个一致性的状态
3.隔离性:不同事务之间相互隔离
4.持久性:事务提交之后,对数据库的更改是永久性的。
范式
第一范式:列不可再分
第二范式:在第一范式的基础上,非主属性完全依赖于主属性
第三范式:在第二范式I的基础上,任何非主属性,不依赖于其他非主属性
索引扫描方式
1.全索引扫描
2.索引范围扫描
3.索引唯一扫描
4.索引跳跃扫描
并发问题
事务并发可能会产生以下的问题
1.脏读:读取其他事务没有提交的数据
2.不可能重复读:同一个事务中,两次读取的数据不一致。(被其他事务修改了)
3.幻读:事务执行过程中,另一个事务新增了一条数据,导致事务查询数据量出现不一致
隔离级别
1.读未提交:能够读取其他事务未提交的数据。可能产生脏读,不可重复读,幻读。
2.读已提交:不能读取其他事务未提交的数据,解决了脏读,可能出现不可重复读,幻读。
3.可重复读:事务A读取被事务B修改过的数据时,读取到的还是原本的值,解决了脏读,不可重复度,可能出现幻读。
4.串行化:事务串行执行。解决脏读,不可重复读,幻读。
oracle的默认隔离级别是读已提交,支持读未提交,读已提交,串行化三种隔离级别
mysql的默认隔离级别是可重复读,支持四种隔离级别。