1.模式分解的等价标准
  规范化过程中将一个关系模式分解为若干个关系模式,应该保证分解后产生的模式和原来的模式等价。常用的等价标准有要求:
 ● 分解是具有无损连接性的;
 ● 分解是保持函数依赖的;
 ● 分解既要具有无损连接又要保持函数依赖两种。
  将一个关系模式R(U,F)分解为若干个关系模式R1(U1,F1),R2(U2,F2)…Rn(Un,Fn)(其中U=U1 U2 … Un,R1为F在U1上的投影),这意味着相应的将存储在一个二维表r中的数据分散到若干个二维表r1,r2,…,rn中(其中r1是r在属性组U1上的投影)。我们当然希望这样的分解不丢失信息,也就是说,希望能够通过对关系r1,r2…rn的自然连接运算重新得到关系r中的所有信息。
  事实上,将关系r投影为r1,r2,…,rn时并不会丢失信息,关键是对r1,r2,…,rn作自然连接可能会产生一些原来r中没有的元组,从而无法区别那些元组是r中原来有的,即数据库中应该存在的数据,在这个意义上丢失了信息。
  例如:设关系模式S(SNO,CLASSNO,DEPTNO)在某一时刻的关系r如下表5-14

  表5-14

SNO CLASSNO DEPTNO
S1 C1 D1
S2 C2 D2
S3 C2 D2
S4 C3 D1


  若按分解方案一将关系模式S分解为:
   S11(SNO,DEPTNO)和
   S12(CLASSNO,DEPTNO),
  则将r投影到S11和S12的属性上,得到关系r11如表5-15,r12如表5-16。

  表5-15

SNO DEPTNO
S1 D1
S2 D2
S3 D2
S4 D1

  
表5-16

CLASSNO DEPTNO
C1 D1
C2 D2
C3 D1


  对分解后的两个关系作自然连接r11*r12,得到r'如表5-17如下:

  表5-17

SNO CLASSNO DEPTNO
S1 C1 D1
S1 C3 D1
S2 C2 D2
S3 C2 D2
S4 C1 D1
S4 C3 D1

  r'中的元组S1C3D1和S4C1D1都不是原来r中的元组。就是说,我们无法知道原来r中到底有哪些元组,这是我们不希望的。
  定义1:设关系模式R(U,F)分解为关系模式R1(U1,F1),R2(U2,F2),…,Rn(Un,Fn),若对于R的任何一个可能的关系r,都有r=r1*r2…*rn,即r在R1,R2,…,Rn上的投影的自然连接等于r,则称关系模式R的这个分解是具有无损连接性的。
  分解1不具有无损连接性,这是一个不好的分解方案。
  在将一个关系模式分解为三个或者更多个关系模式的情况下,要判别分解是否具有无损连接性需要比较复杂的算法。然而若将一个关系模式分解为两个关系模式,则很容易判别分解是否具有无损连接性。
  关系模式R(U,F)分解为关系模式R1(U1,F1),R2(U2,F2)是具有无损连接性的分解的充分必要条件是(U1∩U2→U1-U2)∈F+,或者(U2∩U1→U2-U1)∈F+

  让我们再考察第二种分解方案,将关系模式S分解为:
   S21(SNO,CLASSNO),
   S22(SNO,DEPTNO)
  由于U1∩U2=SNO,U1-U2=CLASSNO,显然U1 U2→U1-U2,所以分解2具有无损连接性。然而分解2也不是一个很好的分解方案,将前面例子的关系r投影到S21,S22的属性上,得到关系r21如表5-18和r22如表5-19:

  表5-18

SNO CLASSNO
S1 C1
S2 C2
S3 C2
S4 C3

  
表5-19

SNO DEPTNO
S1 D1
S2 D2
S3 D2
S4 D1

  在这种分解中,假设学生S3从C2班转到C3班,于是我们需要在r21中将元组S3C2修改为S3C3,同时在r22中将元组S3D2修改为S3D1。如果这两个修改没有同时完成,数据库中就会存在不一致信息。这是因为分解得到的两个关系模式不是互相独立造成的。F中的函数依赖CLASSNO→DEPTNO既没有投影到关系模式R22中,而是跨在两个关系模式上。函数依赖是数据库中的完整性约束条件。在r中,若两个元组的X值相等,则Y值也必须相等。现在r的一个元组中的X值和Y值跨在两个不同的关系中,为维护数据库的一致性,在一个关系中修改X值时就需要相应的在另外一个关系中修改Y值,这当然是很麻烦而且是容易出错的,于是我们要求模式分解保持函数依赖这条等价标准。
  定义2:设关系模式R(U,F)分解为关系模式R1(U1,F1),R2(U2,F2),…,Rn(Un,Fn),若F=(F1F2Fn) ,即F所逻辑蕴含的函数依赖一定也由分解得到的各个关系式中的函数依赖所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的。
  分解方案二不是保持函数依赖的,因为分解得到的关系模式中只有函数依赖SNO→CLASSNO,丢失了函数依赖CLASSNO→DEPTNO。不是一个好的分解。
  分解方案三是保持函数依赖的。