偶然在工作业务中接触了一些数据表结构的设计,回忆起曾经看过的一些范式规则,于是翻书找到并在此小记。
第一范式(1NF):如果一个关系模式R是1NF,每个属性的值域都是不可分的简单数据项的集合,则称这个关系为第一范式关系模式,记做1NF。第一范式是一个最基本的要求。
第二范式(2NF):如果关系模式R是1NF,而且每一个非主属性都完全函数依赖于R的键,则R称为第二范式关系模式,记做2NF。例如某关系有两个键,但是非主属性都部分的依赖于其中一个键,则这个关系不符合2NF。为了消除这种依赖,可以把这个关系模式分解为两个关系模式,让其他的非键属性分别依赖于两个关系模式的键,即可解决问题。
第三范式(3NF):如果关系模式R是2NF,而且它的任何一个非键属性都不传递依赖于任何候选键,则称这个关系为第三范式关系模式,记做3NF。
BC范式(BCNF):如果关系模式R是1NF,对于R的每个函数依赖X->Y,X必为候选键,则R是BCNF。每个BCNF有三个性质:(1)所有的非键属性都完全函数依赖于每个候选键;(2)所以减属性都完全甘薯依赖于每个不包含它的候选键;(3)没有任何的一组属性完全函数依赖于非键的任何一组属性;
如果一个关系数据库的所有关系模式都属于BCNF,那么在函数依赖的范畴里,它已经达到了最高的规范化程度,已经消除了插入和删除的异常。熟练掌握后对今后设计表结构有很大的指导价值。
(为个人学习、研究或者欣赏,使用此文的,需要标明作者、出处等信息。)