规范化:减少关系模型中存在的数据冗余,消除数据依赖中存在的不合理的部分。从而减少插入,更新,删除异常。
范式:为不同程度的规范化设立的不同标准。
第一范式:关系模型中的所有属性都是不可再分的原子项。举例:用户表{userid,username,phonenumber}若电话号码可以分为:公司电话和家庭电话,则该user表不满足1NF
第二范式:在第一范式的基础上,非主键完全依赖于主键,而不是依赖于主键的一部分。例如:对于用户书籍表,
{userid,bookid,readtime,username}用户id和书id(复合主键)共同决定了用户阅读的时间长短,而用户名称只依赖于主键的一部分userid,所以不满足第二范式。
第三范式:在第二范式的基础上,不存在传递依赖于主键。
例如:对于图书馆中的用户书籍表:
{userid,bookid,readtime,paymoney}支付的钱数是由阅读的时间决定的,而阅读的时间是由主键用户id和书id决定的,所以,paymoney传递依赖于主键,所以不满足第三范式。
BF范式:
http://mt.sohu.com/20160918/n468611418.shtml
未完待加