sábado, 9 de julio de 2011

BOYCE COOD


FORMA NORMAL DE BOYCE-CODD

La Forma Normal de Boyce-Codd (o FNBC) es una forma normal utilizada en la normalización de bases de datos. Es una versión ligeramente más fuerte de la Tercera forma normal . La forma normal de Boyce-Codd requiere que no existan dependencias funcionales no triviales de los atributos que no sean un conjunto de la clave candidata. En una tabla en , todos los atributos dependen de una clave, de la clave completa y de ninguna otra cosa excepto de la clave (excluyendo dependencias triviales, como A \to A). Se dice que una tabla está en FNBC si y solo si está en 3FN y cada dependencia funcional no trivial tiene una clave candidata como determinante. En terminos menos formales, una tabla está en FNBC si está en 3FN y los únicos determinantes son claves candidatas

Ejemplo

La cuestión es que un trabajador o trabajadora puede trabajar en varios departamentos. En dicho departamento hay varios responsables, pero cada trabajador sólo tiene asignado uno. El detalle importante que no se ha tenido en cuenta, es que el o la responsable sólo puede ser responsable en un departamento. Este detalle último produce una dependencia funcional ya que: Responsable→Departamento Por lo tanto hemos encontrado un determinante que no es clave candidata. No está por tanto en FNBC. En este caso la redundancia ocurre por mala selección de clave. La redundancia del departamento es completamente evitable.
Solamente en casos raros una tabla en 3NF no satisface los requerimientos de la FNBC. Un ejemplo de tal tabla es (teniendo en cuenta que cada estudiante puede tener más de un tutor):
Referencia cruzada de Tutor/Estudiante
ID Tutor
Número de seguro social del tutor
ID Estudiante
1078
088-51-0074
31850
1078
088-51-0074
37921
1293
096-77-4146
46224
1480
072-21-2223
31850
El propósito de la tabla es mostrar qué tutores están asignados a qué estudiantes. Las claves candidatas de la tabla son:
  • {ID Tutor, ID Estudiante}
  • {Número de seguro social del tutor, ID Estudiante}
Por lo tanto los tres atributos de la tabla son atributos primarios, es decir, los tres atributos pertenecen a las claves candidatas.
Recuerde que la 2NF prohíbe dependencias funcionales parciales de atributos no-primarios en las claves candidatas, y la 3NF prohíbe dependencias funcionales transitivas de atributos no-primarios en claves candidatas. Dado que la tabla de arriba carece de cualquier atributo no-primario, está en 2NF y 3NF.
La FNBC es más rigurosa que la 3NF en que no permite ninguna dependencia funcional en la cual el conjunto determinante de atributos no sea una clave candidato (o superconjunto de eso). La dependencia de ID Tutor en Número de seguro social del tutor es ese tipo de dependencia. Por consiguiente, la tabla de arriba no está en FNBC
Cualquier tabla que sea insuficiente en FNBC será vulnerable a inconsistencias lógicas. En la tabla de arriba podía ser representada una combinación inconsistente de ID Tutor y Número de seguro social del tutor.
En este caso, corregir el problema sería una simple cuestión de usar solo un esquema de identificación para los tutores: o el ID, o el número del seguro social, pero no ambos

1 comentario:

  1. BUENO EN LA FORMA NORMAL DE boyce cood DICE COMO ES LA CRUZADA ENTRE BUENO EN ESTE CASO ES DE TUTOR Y ESTUDIANTE PERO SERIA LO MISMO CON LOS CASOS KE KIERAN PONER

    ResponderEliminar