数据库的规范化:
1NF:要求属性列的原子性,同一列中没有重复值。(有部分依赖)
2NF:不存在非主属性对码的部分依赖。只有完全依赖。
3NF:消除了非主属性对码的传递依赖。
BCNF:消除了主属性对码的传递依赖。
4NF:消除了多值依赖。
5NF:消除了连接依赖。
例:多值依赖:每个职位可以属于一个或多个部门:职位编码->->所属部门
要记住的3个事实:
①要求分解保持函数依赖,模式分离总可以达到3NF,不一定达到BCNF;
②要求分解既保持函数依赖又具有无损连接性,可到3NF,不一定到BCNF;
③要求分解具有无损连接性,可以达到4NF。
判断是否无损连接:
关系模式R(U,F)的一个分解,p={R1(U1,F1),R2(U2,F2)},
具有无损连接的充分必要条件:U1∩U2 -> U1-U2 ∈ F+
判断是否是候选码:
L类和NLR类必是。R类必不是。
执行事务
事务机制可以确保数据一致性。
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。