1、关系型数据库三范式
第一范式:表中字段不可再分。
第二范式:满足第一范式的基础上,除了主键以外的其他字段都依赖于主键。
第三范式:满足第二范式的基础上,除了主键以外的其他字段都不传递依赖主键。
2.数据库事务
事务是数据库操作的一个执行单元,要么全部执行成功,要么全部执行失败。
数据库事务特性
①原子性:事务具有原子性,即数据修改时,要么全执行,要么全不执行,不允许事务部分执行。事务是最小的逻辑执行单元。
②一致性:事务执行前与执行后,数据库中的数据应保持一致。
③隔离性:多个事务执行时,为确保数据安全性,一个执行的事务与另一个执行的事务隔离起来,不被其他事务干扰。
④持久性:一个事务一旦提交,数据库所做的改变是永久性的。
事务并发问题和隔离级别
事务并发问题
脏读:读取到了未提交的数据。(A的原数据1000,B把数据改为2000,但未提交,A查询是读取到的是2000)
不可重复读:在事务中同一条件多次读取同一条数据,出现了不同结果。(A读取数据是1000,B把数据改为2000,并且提交,A再一次查询得到数据是2000)
幻读:在事务中同一条件多次获取的记录数不同。(A查询1000的数据有10条,B插入了一条1000数据,A再一次查询时变成了11条)
事务的隔离级别
读未提交:引起脏读、不可重复读、幻读
读已提交:引起不可重复读、幻读
可重复读:引起幻读
可串行化