首页 理论教育 规范化关系模式:影响因素与方法

规范化关系模式:影响因素与方法

时间:2023-10-21 理论教育 版权反馈
【摘要】:(一)规范化的关系当一个关系中的所有分量都是不可分的数据项时,该关系是规范化的。从之前讲的关系模式的特点来看,关系模式所涉及的关系都是规范化的。因此,规范化过程也可以看作基于关系模式的函数依赖和候选码,对给定关系模式进行分析和分解,以达到相应范式要求。1NF是对关系的最低要求,不满足1NF的关系是非规范化关系。(四)第三范式符合第二范式的关系模式仍可能存在数据冗余、更新异常等问题,是一个传递依赖的过程。

规范化关系模式:影响因素与方法

(一)规范化的关系

当一个关系中的所有分量都是不可分的数据项时,该关系是规范化的。从之前讲的关系模式的特点来看,关系模式所涉及的关系都是规范化的。例如,具有组合数据项和具有多值数据项的都不是规范化的表。实际上,“规范化”过程到此远没有结束。“进一步规范化”过程(简称“规范化”过程)是建立在“范式”这一概念上的。

根据每个关系给定的一个函数依赖集,可以求出该关系的候选码。根据这些信息连同对范式的定义条件,就可以展开相应的规范化过程。

所谓规范化过程,是指通过对关系模式进行一系列的检验,以“验证”该关系模式是否满足某个特定的范式,即一个关系若满足某一特定范式所规定的一系列约束条件,它就属于该范式。这个过程以一种自顶向下的方式展开,按照各范式所规定的条件根据需要分解关系达到该范式要求的过程。

因此,规范化过程也可以看作基于关系模式的函数依赖和候选码,对给定关系模式进行分析和分解,以达到相应范式要求。

最初,考特(Codd)提出了三种范式,分别是第一范式(First Normal Form,1 N F)、第二范式(2 N F)、第三范式(3 N F)。后来,博伊斯(B o y c e)和考特(Codd)共同更新了3NF的定义,称为 Boyce-Codd范式(BCNF)。所有这些范式都是基于关系中各属性之间的函数依赖展开讨论的。规范化程度还可有更高的范式:第四范式(4NF)和第五范式(5NF)。

(二)第一范式(1NF)

如果关系模式R中不包含多值属性,则R满足第一范式,记作R∈1NF。

1NF是对关系的最低要求,不满足1NF的关系是非规范化关系。

非规范化关系转化为1NF的方法很简单,当然也不是唯一的。

(三)第二范式(2NF)

有些表虽然已符合1NF的要求,但表中存在大量的数据冗余和潜在的数据更新异常,原因是该关系的码是(职工号,学历),姓名、职称、系名、系办公地址与学历无关,即它们只与码的一部分有关。

1.定义

设X、Y是关系R的两个不同的属性或属性组,且X→Y。如果存在X的某一个真子集X1,使X1→Y成立,则称Y部分函数依赖于X,记作X→pY;反之,称Y完全函数依赖于X,记作X→fY。

如果一个关系R属于1NF,且它所有非主属性都完全函数依赖于R的任一候选码,则R属于第二范式,记作R∈2NF。

2.举例

关系模式:职工信息(职工号,姓名,职称,项目号,项目名称,项目排名)存储了职工的信息和职工所参加的项目信息,即(职工号,项目号)。函数依赖有:

(1)因为职工号→姓名,所以(职工号,项目号)姓名;

(2)同样,(职工号,项目号)职称,(职工号,项目号)项目名称;

(3)(职工号,项目号)项目排名。

因此,非主属性姓名、职称、项目名称并不完全函数依赖于码,它不符合2NF的定义和2NF定义的关系模式,会产生以下几个问题:

(1)插入异常。假如要插入一名职工,但该职工还未参加任何项目,即项目号为空。根据实体完整性约束规则,关系中元组的主码属不能为空,项目号是主属性,因此,该职工信息无法插入。

(2)删除异常。假设有一名职工只参加了一个项目,现在又从这个项目中退出来了,该职工的此项目记录将被删除。由于项目号是属性,所以该记录只能被全部删除,该职工的其他信息也会随着被删除。这样就删除了不该删除的信息,即出现了删除异常。(www.xing528.com)

(3)修改异常。当某个项目的项目名称发生变化时,必须修改多个元组,造成了修改的复杂化,一旦有遗漏,将破坏数据库中数据的一致性。

可把上述关系模式分解如下,使其符合2NF:

职工项目(职工号,姓名,职称,项目号)。

排名(职工号,项目号,项目排名)。

项目(项目号,项目名称)。

(四)第三范式(3NF)

符合第二范式的关系模式仍可能存在数据冗余、更新异常等问题,是一个传递依赖的过程。

在关系R中,如果X、Y、Z是R三个不同的属性或属性组,如果X→Y,Y→Z,但Y↛X且Y不是X的子集,则称Z传递依赖于X。

表的关系模式之所以存在着数据冗余、插入或删除异常,就是因为其中存在着传递函数依赖:姓名→级别,级别→工资。

如果关系模式R属于2NF,且它每一个非主属性都不传递依赖于任何候选码,则称R是第三范式,记作R∈3NF。

如果关系模式R∈1NF,且它的每个非主属性既不部分依赖,也不传递依赖于任何候选码,则记作R∈3NF。不存在非主属性的关系模式一定为3NF。

(五)改进的3NF——BCNF

第三范式的修正形式是 Boyce-Codd范式(Boyce- Codd Normal Form,BCNF),是由博伊斯(Boyce)和考特(Codd)提出的。

设关系模式R(U,F)∈1NF,若F任一函数依赖X→Y(Y⊄X)中X都包含了R的一个码,则称R∈BCNF。

换言之,在关系模式R中,如果每一个决定因素都包含码,则R∈BCNF。

由BCNF的定义可以得到推论,如果R∈BCNF,则

1.R中所有非主属性对每一个码都是完全函数依赖;

2.R中所有主属性对每一个不包含它的码,都是完全函数依赖;

3.R中没有任何属性完全函数依赖于非码的任何一组属性。

定理:如果R∈BCNF,则R∈3NF一定成立。

证明:采用反证法。如果R∈BCNF,但是∉3NF,则R中一定存在传递函数依赖,即R中必定存在候选码X,非主属性A,属性组Y,其中AX,AY,Y→X,使得X—Y—A成立。Y不是R的码,但Y是R的决定因素,根据BCNF的定义,R不是BCNF,与假设相矛盾。所以,假设不成立。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈