Saltar al contenido

Forma Normal de Boyce-Codd: Un Análisis Profundo

La forma normal de Boyce-Codd (BCNF) asegurar que no existen dependencias funcionales parciales en una tabla. Esto de forma muy generica lo encuentras en todas las paginas por lo cual aqui te explico como y cuando se utiliza esta forma normal.

La normalización de bases de datos es un proceso que tiene como objetivo organizar las tablas en una base de datos de manera que reduzca la redundancia de información y mejore la integridad de los datos.

Índice

    Quien invento la Boyce-Codd ?

    E. F. Codd y Raymond F. Boyce son los científicos de la computación que desarrollaron y promovieron la idea de la Forma Normal de Boyce-Codd (BCNF). E.F. Codd es conocido como el «Padre de las bases de datos relacionales» y fue el primero en proponer el concepto de bases de datos relacionales y desarrollar las reglas para la forma normal en 1970. Codd trabajó en IBM en la década de 1960 y propuso su idea de una base de datos relacional en un artículo publicado en 1970.

    Cuando usar La forma normal de Boyce-Codd (BCNF) ?

    Cuando se quiere asegurar que no existen dependencias funcionales parciales en una tabla. Una dependencia funcional parcial es cuando una columna (o conjunto de columnas) depende solo parcialmente de la clave primaria.

    Para cumplir con BCNF, una tabla debe cumplir con las siguientes condiciones:

    • Ya cumple con las anteriores formas normales (1FN2FN y 3FN )
    • Cada dependencia funcional debe ser una clave candidata. Una clave candidata es un conjunto de columnas que puede ser usado como clave primaria.

    La BCNF es especialmente útil cuando se trata con tablas que tienen varias relaciones entre las diferentes columnas, ya que se asegura de que no haya ambigüedad en las relaciones y se reducen los problemas de integridad de los datos. Por lo tanto, se recomienda usar la BCNF en las tablas de una base de datos donde se espera un alto nivel de complejidad en las relaciones entre las columnas y se requiere un alto nivel de integridad de los datos.

    Descomposición de Relaciones en Bases de Datos

    La descomposición es un proceso que permite dividir una relación en varias relaciones más pequeñas. El objetivo es simplificar el esquema de la base de datos y eliminar redundancias y anomalías en la inserción, actualización y eliminación de datos.

    Dependencias Funcionales y Normalización

    Las dependencias funcionales (DF) son relaciones entre atributos en una tabla. Si un atributo A determina de manera única otro atributo B, se dice que existe una dependencia funcional entre A y B, representada como A -> B. La normalización es el proceso de eliminar dependencias funcionales no deseadas y redundancias en una base de datos.

    Tercera Forma Normal (3NF)

    La 3NF es una regla de normalización que asegura que todos los atributos no clave de una relación dependen funcionalmente de la clave primaria. Para alcanzar la 3NF, se deben cumplir las siguientes condiciones:

    1. La relación debe estar en Segunda Forma Normal (2NF).
    2. No debe existir dependencias funcionales transitivas.

    Ejemplo Grafico

    Tercera Forma Normal (3NF)

    Forma Normal de Boyce-Codd (BCNF)

    La BCNF es una versión más estricta de la 3NF. Una relación está en BCNF si y solo si cada dependencia funcional X -> Y implica que X es una superclave. En otras palabras, la relación no tiene dependencias funcionales no triviales donde el determinante no es una superclave.

    Ejemplo Grafico

     Normal de Boyce-Codd (BCNF)

    Ejemplo aplicado

    Un ejemplo de cómo aplicar la forma normal de Boyce-Codd (BCNF) a una tabla podría ser el siguiente:

    Tenemos una tabla llamada «Empleados» con los siguientes campos:

    • ID_Empleado (clave primaria)
    • Nombre
    • Departamento
    • Salario
    • Fecha de contratación

    La tabla actualmente cumple con las formas normales 1FN2FN y 3FN , pero no cumple con la BCNF, ya que la dependencia funcional Departamento -> Salario no es una clave candidata.

    Para aplicar la BCNF, podemos crear una nueva tabla llamada «Departamentos» con los siguientes campos:

    • ID_Departamento (clave primaria)
    • Nombre_Departamento
    • Salario_base

    Luego, podemos modificar la tabla «Empleados» para incluir solo el ID del departamento como una clave foránea que hace referencia a la tabla «Departamentos» y eliminar la columna Salario.

    Ahora, la tabla «Empleados» cumple con las formas normales 1FN2FN3FN y BCNF, ya que la dependencia funcional Departamento -> Salario se ha convertido en la clave candidata ID_Departamento. Esto asegura que no haya ambigüedad en las relaciones y se reducen los problemas de integridad de los datos.

    Este ejemplo presentado puede ser aplicacod a cualquier sistema de gestion de datos como sql servermysql postgresql.

    Diferencias 3FN entre BCNF

    La principal diferencia entre la tercera forma normal (3FN ) y la forma normal de c-Codd (BCNF) es cómo se asegura la integridad de los datos en las tablas.

    La 3FN se enfoca en asegurar que no haya dependencias transitorias en una tabla, es decir, que no haya columnas que dependan de otras columnas, pero no de la clave primaria.

    Por otro lado, la BCNF se enfoca en asegurar que no haya dependencias funcionales parciales en una tabla, es decir, que cada dependencia funcional debe ser una clave candidata.

    Tabla comparativa 3FN y BCNF

    tabla que ilustra y compara las características de la Tercera Forma Normal (3NF) y la Forma Normal de Boyce-Codd (BCNF) con ejemplos gráficos.

    CaracterísticaTercera Forma Normal (3NF)Forma Normal de Boyce-Codd (BCNF)
    Dependencias funcionalesLos atributos no clave dependen funcionalmente de la clave primaria.Todos los atributos no clave dependen funcionalmente de una superclave.
    EstricticidadMenos estricta que BCNF.Más estricta que 3NF.
    RedundanciaElimina redundancias parciales.Elimina todas las redundancias.

    Esta tabla muestra visualmente las diferencias clave entre 3NF y BCNF. La Tercera Forma Normal permite que los atributos no clave dependan funcionalmente de la clave primaria, mientras que la Forma Normal de Boyce-Codd requiere que todos los atributos no clave dependan funcionalmente de una superclave. Además, BCNF es más estricta y eficiente en la eliminación de redundancias que 3NF.

    En conclusion

    En resumen, la 3FN se enfoca en la estructura de la tabla y en evitar la redundancia de datos, mientras que la BCNF se enfoca en las relaciones entre las columnas y en evitar la ambigüedad en las relaciones. Es importante mencionar que BCNF cumple con 3FN, pero no necesariamente a la inversa.