Forma normal de Boyce-Codd
La Forma Normal de Boyce-Codd (o FNBC) es una forma normal utilizada en la normalizacin de bases de datos. Es una versin ligeramente ms fuerte de la Tercera forma normal (3FN). 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 3FN, todos los atributos dependen de una clave, de la clave completa y de ninguna otra cosa excepto de la clave (excluyendo dependencias triviales, como ). 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 trminos menos formales, una tabla est en FNBC si est en 3FN y los nicos determinantes son claves candidatas.
Ejemplo
Consideremos una empresa donde un trabajador puede trabajar en varios departamentos. En cada departamento hay varios responsables, pero cada trabajador slo tiene asignado uno. Tendramos una tabla con las columnas: IDTrabajador, IDDepartamento, IDResponsable La nica clave candidata es IDTrabajador (que ser por tanto la clave primaria). Si aadimos la limitacin de que el responsable slo puede serlo de un departamento, este detalle produce una dependencia funcional ya que: Responsable Departamento Por lo tanto hemos encontrado un determinante (IDResponsable) que sin embargo no es clave candidata. Por ello, esta tabla no est en FNBC. En este caso la redundancia ocurre por mala seleccin de clave. La repeticin del par [IDDepartamento + IDResponsable] es innecesaria y 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 ms de un tutor): Referencia cruzada de Tutor/Estudiante
ID Tutor Nmero 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 propsito de la tabla es mostrar qu tutores estn asignados a qu estudiantes. Las claves candidatas de la tabla son: {ID Tutor, ID Estudiante} {Nmero de seguro social del tutor, ID Estudiante}
[editar]Otra
formulacin
Una forma sencilla de comprobar si una relacin se encuentra en FNBC consiste en comprobar, adems de que est en 3FN, lo siguiente: (1) Si no existen claves candidatas compuestas (con varios atributos), est en FNBC. (2) Si existen varias claves candidatas compuestas y stas tienen un elemento comn, no est en FNBC. En la tabla de ejemplo anterior existen dos claves candidatas y ambas comparten el atributo ID Estudiante, por lo tanto no est en FNBC.