数据库完整性:
实体完整性:主键 唯一且不为空
参照完整性:外键 可以为空
用户自定义完整性:约束条件等
1.第一范式:原子性
确保每列的原子性。也就是每个属性都是不可再分的。
2. 第二范式:主键属性
在第一范式的基础上,要求非主属性都要和码有完全依赖关系。
在第一范式的基础,确保表中的每列都和主键相关
一是表必须有一个主键;
二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的部分。
如果一个关系满足第一范式,并且除了主键以外的其它列,都依赖于该主键,则满足第二范式。
例如:订单表(订单编号、产品编号、定购日期、价格、……),"订单编号"为主键,"产品编号"和主键列没有直接的关系,即"产品编号"列不依赖于主键列,应删除该列。
3.第三范式:去点依赖关系
在第二范式的基础上,目标是确保每列都和主键列直接相关,而不是间接相关(另外非主键列必须直接依赖于主键,不能存在传递依赖).
消除了非主属性对于主键的传递函数依赖。
第二范式和第三范式就是为了消除非主属性对码的部分函数依赖和传递函数依赖
4.BC范式
BC范式在 3NF 的基础上消除主属性对于码的部分与传递函数依赖。








网友评论