Descomposición de un Esquema conservando las Dependencias Funcionales

Partimos del esquema original R(T,F).
Sea {R1,..,Rn}una descomposición de R, donde Ri=(Ti,Fi).

Fi será, por tanto, el conjunto de restricciones que involucra atributos únicamente de Ri, es decir, aquellas dependencias funcionales que se pueden comprobar de forma independendiente en Ri.

Si consideramos F'=F1UF2U...UFn, para el esquema R, en general se tiene que F'<>F.
Sin embargo, lo que sí debe cumplirse es que F'+=F+. Esto equivaldría a que todas las restricciones que implica F quedarían comprobadas (lógica o implicitamente) a través de F'. Se dirían entonces que la descomposición conserva las dependencias.
Pero el cálculo de F+ es computacionalmente poco eficiente. Habitualmente, para comprobar si una descomposición preserva las dependencias funcionales se suele usar un test (test de preservación de las dependencias, o test de la z.)

Test de preservacion de las dependencias

¿Se preservará la dependencia X->Y ?

Z = X

while Z cambie
{
  for(i=1 to k)
    {
      Z = Z U ( ((Z interseccion Ti)+)interseccion Ti )
    }
}


Si al salir del bucle Y está en Z, hay preservación de la dependencia.