一个关系模式应当是一个五元组。
R(U,D,DOM,F)
由于D、DOM于某是设计关系不大,可把关系模式看成一个三元组:
R
当且仅当U上的一个关系r满足F时r称为关系模式R的一个关系。
(第一范式)作为一张二维表,关系模式要符合一个最基本的条件:每一个分量必须是不可分的数据项。
数据依赖是一个关系内部属性与属性之间的一种约束关系。这种约束关系通过属性键值的相等与是否体现出来数据间的关系。
数据依赖中最重要的是函数依赖和多值依赖。
一个好的关系模式应当不会发生插入异常、删除异常和更新异常,数据冗余尽可能的少。
设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意
一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,
则称X函数确定Y或Y函数依赖于X,记作X—>Y。
(函数依赖和别的数据依赖一样是语义范畴的概念,只能根据语义来确定一个函数依
赖。)
注:函数依赖不是指关系模式的某个或某些关系满足的约束条件,而是指
的一切关系均要满足的约束条件。
若候选码多于一个,则选定一个为主码。
包含在任何一个候选码中的属性称为主属性;不包含在任何候选码中的属性称为非主属性或非码属性
最简单的情况下,单个属性是码,最极端的情况,整个属性组是码,称为全码。
定义6.5 关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码。
关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。满足最低
要求的叫第一范式,简称1NF;在第一范式中满足进一步要求的为第二范式,其余以此类推。
1971—1972年Codd系统地提出了
INF、2NF、3NF的概念,讨论了规范化的问题。1974年,Codd和Boyce共同提出了一个
新范式,即BCNF。1976年Fagin提出了 4NF。后来又有研究人员提出了 5NF。
各种范式之间的关系:
5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂lNF
一个低一级的范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式的集合,这个过程就叫规范化。
定义6.6 若R∈1NF,且每一个非主属性完全依赖于任何一个候选码,则R∈2NF。
注:一个关系模式R不属于2NF,会产生一下问题:
若R∈3NF,则每一个非主属性既不传递依赖于码,也不部分依赖于码。也就是说可以如果R∈3NF,则必有R∈2NF。
由BCNF的定义可以得到结论,一个满足BCNF的关系模式有:
•所有非主属性对每一个码都是完全函数依赖。
•所有主属性对每一个不包含它的码也是完全函数依赖。
•没有任何属性完全函数依赖于非码的任何一组属性。
注:由于R∈BCNF,按定义排除了任何属性对码的传递依赖与部分依赖,所以/R∈3NF。
严格的证明留给读者完成。但是若R∈3NF,R未必属于BCNF。
对于多值依赖的另一个等价的形式化的定义是:在R(U)的任关系r中,如果存在元
组t、S使得t[X]=s[X], 那么就必然存在元组w、v∈r (w、V可以与8、t相同),使得
w[X]=o[X]=f[X],而w[Y]=t[Y], w[Z]=s[Z], o[Y]=s[Y], o[Z]=r[Z] (即交换5、1元组的Y值
所得的两个新元组必在r中),则Y多值依赖于X,记为X→→Y。这里,X、Y是U的子集,
Z=U-X-Y.
若X→→Y,而Z=φ,即Z为空,则称X→→Y为平凡的多值依赖。即对于R(X,Y),如
果有X→→Y成立,则X→→Y为平凡的多值依赖。
由于C与S的完全对称性,必然有W-→C成立。
多值依赖具有以下性质:
(1)多值依赖具有对称性。即若X→-Y,则X-→z,其中Z=U-X-Y。
从例6.10容易看出,因为每个保管员保管所有商品同时每种商品被所有保管员保管,
显然若W-→S,必然有W→→C.
(2)多值依赖具有传递性。即若X-→Y, Y-→Z,则X→-Z-Y。
(3)函数依赖可以看作是多值依赖的特殊情况,即若X→Y,则X→→Y。这是因为当
X→Y时,对X的每一一个值x, Y有一个确定的值y与之对应,所以X→→Y。
(4)若X→→Y, X→→Z,则X→→YZ。
(5)若X→→Y, X→→Z,则X→→Y∩Z。
(6)若X→→Y,X→→Z,则X→→Y-Z,X→→Z-Y。
多值依赖与函数依赖相比,具有下面两个基本的区别:
(1)多值依赖的有效性与属性集的范围有关。若X- +→Y在U上成立,则在W(XY⊆ W
⊆U)上一定成立:反之则不然,即X→→Y在W(W⊂U)上成立,在U上并不一-定成立。 这
是因为多值依赖的定义中不仅涉及属性组X和Y,而且涉及U中其余属性Z。
3一 般地,在R(U)上若有X→→Y在W(W⊂U)上成立,则称X→→Y为R(U)的嵌入型多
值依赖。
但是在关系模式R(U)中,函数依赖X→Y的有效性仅决定于X、Y这两个属性集的值。
只要在R(U)的任何-一个关系r中,元组在X和Y上的值满足定义6.1,则函数依赖X→Y
在任何属性集W(XY⊆W⊆U)上成立。
(2)若函数依赖X→Y在R(U)上成立,则对于任何Y’⊂Y
均有X→Y成立。而多值依赖X→→Y若在R(U)上成立,却
不能断言对于任何Y’⊂Y有X→→Y’成立。
4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。因为根
据定义,对于每一个非平凡的多值依赖X→→Y, X都含有候选码,于是就有X→Y,所以
4NF所允许的非平凡的多值依赖实际上是函数依赖。
显然,如果一个关系模式是4NF,则必为BCNF。
规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到
某种程度的“分离”,即“一事一地”的模式设计原则。让一个关系描述一个概念、
一个实 体或者实体间的一种联系。若多于一个概念就把它“分离”出去。因此所谓规范化实质上
是概念的单一化。
注:关系模式的规范化过程是通过对关系模式的分解来实现的,即把低一级的关系模式分
解为若干个高一级的关系模式。这种分解不是唯-的。