您现在的位置是:首页 > 开发教程

开发教程

模式设计方法的原则与多值依赖

2020-11-12 09:09:29 开发教程 admin
模式设计方法的原则(一)数据库设计者在进行关系数据库设计时,应作权衡,尽可能使数据库模式保持最好的特性。一般尽可能设计成BCNF模式集。如果设计成BCNF模式集时达不到保持FD的特点,那么只能降低要求,设计成3NF模式集,以求达到保持FD和
模式设计方法的原则(一)
数据库设计者在进行关系数据库设计时,应作权衡,尽可能使数据库模式保持最好的特性。一般尽可能设计成BCNF模式集。如果设计成BCNF模式集时达不到保持FD的特点,那么只能降低要求,设计成3NF模式集,以求达到保持FD和无损分解的特点。

模式分解并不单指把泛关系模式分解成数据库模式,也可以把数据库模式转换成另一个数据库模式,分解和转换的关键是要“等价”地分解。一个好的模式设计方法应符合三条原则:表达性、分离性和最小冗余性。

模式设计方法的原则(二)
1)表达性涉及到两个数据库模式的等价问题,即数据等价和语义等价,分别用无损分解和保持函数依赖来衡量。
2)分离性就是消除冗余和异常现象。(把有间接联系的属性值放在不同的表中)
3)最小冗余性要求分解后的模式个数和模式中属性总数应最少。

模式的进一步规范化处理
前面提到的函数依赖揭示了数据之间的一种联系。我们通过对函数依赖的观察、分析,可以消除关系模式中的冗余现象。但是函数依赖还不足以描绘现实世界中数据之间的全部联系,有些联系就要用其他数据依赖来刻画,例如多值依赖或联接依赖,本节就是介绍这两种依赖及其模式应达到的范式标准。

多值依赖的定义


定义4.20设U是关系模式R的属性集,X和Y是U的子集,Z=R―X―Y,小写的xyz表示属性集XYZ的值。对于R的关系r,在r中存在元组(x,y1,z1)和(x,y2,z2)时,就也存在元组(x,y2,z1)和(x,y1,z2),那么称多值依赖(multivalueddependency,简记为MVD)X→→Y在模式R上成立。

关于FD和MVD的推理规则集
A1(FD的自反性):若Y?X,则X→Y。
A2(FD的增广性):若X→Y,且Z?U,则XZ→YZ。
A3(FD的传递性):若X→Y,Y→Z则X→Z。
A4(MVD的补规则,complementation):若X→→Y,则X→→(U-XY)。
A5(MVD的增广性):若X→→Y,且V?W?U,则WX→VY。
A6(MVD的传递性):若X→→Y,Y→→Z,则X→→(Z-Y)。
A7(复制性,replication):若X→Y,则X→→Y。
A8(接合性,coalescencerule):若X→→Y,W→Z,并且Z?Y,W∩Y=φ,那么X→Z。

A9(MVD的并规则):若X→→Y,X→→Z,则X→→YZ。
A10(MVD的交规则):若X→→Y,X→→Z,则X→→Y∩Z。
A11(MVD的差规则):若X→→Y,X→→Z,则X→→Y-Z,X→→Z-Y。
A12(MVD的伪传递):若X→→Y,WY→→Z,则WX→→Z-WY。
A13(混合伪传递):若X→→Y,XY→Z,则X→Z-Y。

第四范式(4NF)


定义4.23设D是关系模式R上成立的FD和MVD集合。如果D中每个非平凡的MVDX→→Y的左部X都是R的超键,那么称R是4NF的模式。

嵌入多值依赖


定义4.24设关系模式R(U),X和Y是属性集U的子集,W是U的真子集,并且XY?W。MVDX→→Y在模式R上不成立,但在模式W上成立。那么X→→Y在R上称为嵌入多值依赖(EmbeddedMVD,简记为EMVD),用符号(X→→Y)W表示。

联接依赖和第五范式


定义4.25设U是关系模式R的属性集,R1、…、Rn是U的子集,并满足U=R1∪…∪Rn,ρ={R1,…,Rn}是R的一个分解。如果对于R的每个关系r都有mρ(r)=r,那么称联接依赖(joindependency,简记为JD)在模式R上成立,记为*(R1,…,Rn)。

定义4.26如果*(R1,…,Rn)中某个Ri就是R,那么称这个JD是平凡的JD。

定义4.27如果关系模式R的每个JD均由R的候选键蕴涵,那么称R是5NF的模式。在有的文献中,5NF也称为投影联接范式(project-joinNF,简记为PJNF)。

小结
本章讨论如何设计关系模式问题。关系模式设计得好与坏,直接影响到数据冗余度、数据一致性等问题。要设计好的数据库模式,必须有一定的理论为基础。这就是模式规范化理论。

在数据库中,数据冗余是指同一个数据存储了多次,由数据冗余将会引起各种操作异常。通过把模式分解成若干比较小的关系模式可以消除冗余。

函数依赖X→Y是数据之间最基本的一种联系,在关系中有两个元组,如果X值相等那么要求Y值也相等。FD有一个完备的推理规则集。

关系模式在分解时应保持“等价”,有数据等价和语义等价两种,分别用无损分解和保持依赖两个特征来衡量。前者能保持泛关系在投影联接以后仍能恢复回来,而后者能保证数据在投影或联接中其语义不会发生变化,也就是不会违反FD的语义。但无损分解与保持依赖两者之间没有必然的联系。

范式是衡量模式优劣的标准,范式表达了模式中数据依赖之间应满足的联系。如果关系模式R是3NF,那么R上成立的非平凡FD都应该左边是超键或右边是非主属性。如果关系模式R是BCNF,那么R上成立的非平凡的FD都应该左边是超键。范式的级别越高,其数据冗余和操作异常现象就越少。

分解成BCNF模式集的算法能保持无损分解,但不一定能保持FD集。而分解成3NF模式集的算法既能保持无损分解,又能保持FD集。

关系模式的规范化过程实际上是一个“分解”过程:把逻辑上独立的信息放在独立的关系模式中。分解是解决数据冗余的主要方法,也是规范化的一条原则:“关系模式有冗余问题就分解它”。