博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

范式

Posted on 2014-08-27 14:45  bw_0927  阅读(165)  评论(0)    收藏  举报

1NF:字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;

解释:
1NF:原子性 字段不可再分,否则就不是关系数据库;
2NF:唯一性 一个表只说明一个事物;
3NF:每列都与主键有直接关系,不存在传递依赖;
BCNF(巴德斯科范式)[消除多值依赖]
4NF(第四范式)[消除连接依赖]
5NF(第五范式)[其实能用到第四范式就能解决几乎所有的问题了]
6NF(第六范式,又称完美范式,目前关系型数据库最高范式)

不符合第一范式的例子(关系数据库中create不出这样的表):


目前关系数据库有六种范式:第一范式、第二范式、第三范式、第四范式、第五范式、第六范式。
满足范式的要求是递增的,也就是要满足第二范式,必须先满足第一范式,要满足第三范式,必须先满足第二范式.类推…
由于第四范式、第五范式、第六范式总要是用于消除冗余数据,现在的存储空间已经比较充裕,并且适当冗余存储可以提高查询的效率,所以当前的数据库设计,一般满足前三个范式即可。

【确定因子】(determinant):是一个字段或一组字段,它控制或确定其他字段的值。

通俗地说就是,能够确定全部属性的某个属性或某组属性,称为【候选键】。若候选键多于一个,则选定其中一个作为主键。

【BCNF】意味着在关系模式中每一个决定因素都包含候选键,也就是说,只要属性或属性组A能够决定任何一个属性B,则A的子集中必须有候选键。BCNF范式排除了任何属性(不光是非主属性,2NF和3NF所限制的都是非主属性)对候选键的传递依赖与部分依赖。

若关系模式R是第一范式,且每个属性都不传递依赖于R的候选键。这种关系模式就是BCNF模式。即在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合鲍依斯-科得范式