第四范式是在关系数据库中,对关系的最基本要求的满足第一范式。这样的关系模式是合法的,允许的。但人们发现有些关系模式存在插入、删除、修改异常、数据冗余等弊病,人们寻求解决这些问题的方法,这就是规范化的目的。
第四范式的定义
设关系R(X,Y,Z),其中X,Y,Z是成对的、不相交属性的集合。若存在非平凡多值依赖,则意味着对R中的每个属性存在有函数依赖(X必包含键)。那么。
换句话说,当关系R的属性集合X是非平凡多值依赖的域,它就包含关系R的键。则。这个定义和BCNF定义唯一的不同点是后者研究非平凡
多值依赖的域。由于函数依赖是多值依赖的特定情况,因此,这直观地说明了4NF比BCNF更强的原因。
显然,若关系属于4NF,则它必属于BCNF;而属于BCNF的关系不一定属于4NF。
规范化小结
在关系数据库中,对关系的最基本要求的满足第一范式。这样的关系模式是合法的,允许的。但人们发现有些关系模式存在插入、删除、修改异常、数据冗余等弊病,人们寻求解决这些问题的方法,这就是规范化的目的。
规范化的基本思想是逐步消除数据依赖中不合适的部分,使关系数据库模式的各关系模式达到某种程度的“分离”,即“一事一地”的模式设计原则。
让一个关系只描述一个实体或者实体间的一种联系。若多于一个实体(包括概念、联系),就把它“分离”出来。因此,所谓规范化,实质上是概念的单一化,即一个关系表示一个实体。
人们认识这个原则是经历了一个过程的。是认识非主属性的部分函数依赖的危害开始,2NF,3NF,BCNF,4NF的提出是这个认识过程逐步深化的标志。规范化的过程可概括如下:
(1)取原始的1NF关系投影,消去非主属性对键的部分函数依赖,从而产生一组2NF关系。
(2)取2NF关系的投影,消去非主属性对键的
传递函数依赖,产生一组3NF关系。
(3)取这些3NF的投影,消去决定因素不是键的函数依赖。产生一组BCNF关系。
(4)取这些BCNF关系的投影,消去其中不是函数依赖的非平多值依赖,产生一组4NF关系。
规范化过程,是通过投影分解运算,把低一级范式的关系模式“分离”为若干个高一级范式的关系模式。但这种投影分解不是唯一的,要求分解“既保持
函数依赖”,又具有“无损连接性”。