1NF,2NF,3NF,BCNF

消除部分依赖,可以从1NF转换为2NF

消除函数依赖,可以从2NF转换为3NF

BCNF

在3NF基础上,消除主属性对键的部分依赖,传递依赖,则称它符合BCNF

关系模式R中,对于属性组X,Y,若X->Y 且 Y不包含于X时X必含有码,

则R属于BCNF

如果每一个决定因素都包含码,则R属于BCNF

现在举例,现有关系模式:

通讯(城市名,街道名,邮政编码)

函数依赖关系集为:
F  =  {   (城市名,街道名)-> 邮政编码        ,       邮政编码 -> 城市名     }
也就是一个城市名和一个街道名,对应一个邮政编码;一个邮政编码对应一个城市名。

此时,候选键(城市名,街道名)非主属性邮政编码完全依赖于候选键,且无传递依赖,属于3NF。

换言之,对于关系模式R,如果每一个函数依赖的决定因素都包含键,则R属于BCNF范式。

对于决定因素(城市名,街道名),它包含键(城市名,街道名),其实它本身就是键了,没问题;
对于决定因素邮政编码,它不包含键(城市名,街道名)
 

你可能感兴趣的:(数据库)