数据库中的范式问题.理论和时间要结合. 第一范式:当且仅当一个关系变量的所有的合法的值中,每一个元组的每个属性只含有 一个值时,该关系变量属于1 N F。 第二范式:(假定只有一个候选码,且该候选码是主码)当且仅当一个关系变量属于 1 N F,且该关系变量的每一个非码属性都完全函数依赖于主码时,该关系变量属于2 N F。 第三范式(假定关系变量只有一个候选码,且该候选码是主码):当且仅当一个关系变 量属于2 N F且该关系变量的所有非码属性都不传递依赖于主码时,该关系变量属于3 N F。 注意:“不传递依赖”蕴涵不互相依赖,从这个意义上说,该术语的解释和本节开始的 解释一样。
多值依赖: R是一个关系变量, A、B和C是R的属性的子集。那么我们说B多值依赖于A —符号如下:A→→B(读做“A多值决定B”,或简单地称为“ A双箭头B”)—当且仅当 对于每一个可能的合法R值,B值的集合对于给定的一组( A值,C值)只依赖于A的值,而与 C的值无关。 很容易看出—参见[ 1 2 . 1 3 ]—对于给定的变量R{A,B,C},多值依赖A→→B存在,当且 仅当多值依赖A→→C也存在。这样M V D总是成对的一起出现。因此通常用一种语句来表示它 们:A→→B|C。例如:C O U R S E→→T E A C H E R | T E X T。 在前面我们已经提到,多值依赖是一般化的函数依赖,在这种意义上讲每一个F D都是 M V D。更精确地说,一个F D就是一个只有一个依赖值(右边的)与一个给定的决定值相符合 的M V D。因此,如果A→B,那么一定A→→B。
第四范式:只要存在R的属性的子集A和B,满足非平凡的多值依赖,并且R的所有属 性也都函数依赖于A,这样的关系变量R满足4 N F。 换句话说,在R中的唯一的非平凡的依赖(函数依赖或多值依赖)是K→→X形式(例如: 一个超码K对另一个属性X的函数依赖)。同样,如果R是B C N F,并且R中的所有非平凡的多值 依赖事实上都是“非码函数依赖( FDs out of key)”,则R是4 N F的。因此特别要注意的是, 4 N F包含了B C N F。
第五范式:一个关系变量R是第五范式—也称为投影-连接范式( P J / N F)—当且仅当 R的每一个非平凡的连接依赖都被R的候选码所蕴涵。 注意:下面解释一下对于一个J D“被候选码所蕴涵”的含义。 关系变量S P J并不是5 N F;它满足一个特定的连接依赖,即3 D约束。这显然没有被其唯一 的候选码(这个候选码是其所有的属性值的组合)所蕴涵。可以表示其区别如下:关系变量 S P J并不是5 N F,因为( a)它是可以被3分解的;(b)可3分解性并没有为其{ S #,P #,J # }是 一个候选码的事实所蕴涵。相反, 3分解后,由于三个投影S P、P J和J S根本不包括任何(非平 凡的)连接依赖,因此它们都是5 N F。