La normalización de bases de datos ha sido una práctica crucial en el mundo del desarrollo y la implementación de sistemas informáticos. Con la creciente cantidad de información que se maneja diariamente, es importante que se garantice la integridad de los datos almacenados en las bases de datos y, al mismo tiempo, se evite la redundancia de la información. Aquí es donde entra la Forma Normal de Boyce-Codd o BCNF.
¿Qué es la forma normal de Boyce-Codd?
La forma normal de Boyce-Codd (BCNF) es una forma normal que se utiliza en la normalización de bases de datos. Es una versión más fuerte de la Tercera forma normal (3FN).
Edgar Frank Codd, considerado el “Padre de las Bases de Datos Relacionales”, definió el modelo relacional de bases de datos a finales de los años 60. Este modelo buscaba la independencia física y lógica, la flexibilidad, uniformidad y sencillez en el almacenamiento y manipulación de datos. Este modelo permitió la creación de un estándar en el manejo de datos, permitiendo garantizar la calidad y veracidad de los mismos. Uno de los principios fundamentales dentro de la normalización es la llamada BCNF.
¿En qué consiste la Forma Normal de Boyce-Codd?
La BCNF exige que no existan dependencias funcionales no triviales de los atributos que no sean un conjunto de la clave candidata en una tabla. Esto quiere decir que cada determinante de un esquema de relación es 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). De esta manera, se evita la redundancia de la información y se garantiza la integridad de los datos almacenados.
Dependencias Funcionales
Ahora, es importante destacar que una dependencia funcional es una relación entre dos atributos en una tabla, donde uno determina al otro. Por ejemplo, la tabla “Estudiante” puede tener la relación “Número de cuenta” determina “Nombre del estudiante”.
En una tabla en FNBC, cada dependencia funcional no trivial tiene una clave candidata como determinante. Esto significa que no existen dependencias funcionales no triviales de los atributos que no sean un conjunto de la clave candidata en una tabla.
Para entender mejor este concepto, consideremos la tabla tutor-estudiante como ejemplo. Supongamos que la tabla se compone de los atributos “Código del Tutor”, “Código del Estudiante” y “Nombre del Estudiante”. Si un tutor solo tiene un estudiante a cargo, la dependencia funcional “Código del Tutor” determina “Nombre del Estudiante” es trivial, ya que el código del tutor es la clave candidata de la tabla. Sin embargo, si un tutor tiene más de un estudiante, la dependencia “Código del Tutor” determina “Nombre del Estudiante” será no trivial. Para que se cumpla con FNBC, se requerirá que cada dependencia funcional no trivial tenga una clave candidata como determinante.
Tablas en Forma Normal de Boyce-Codd (FNBC)
Una tabla está en FNBC si está en 3FN y los únicos determinantes son claves candidatas. La BCNF es más fuerte que la 3FN, y toda relación en BCNF está en 3FN. Las dependencias parciales y las dependencias transitivas de la clave primaria se eliminan en 2FN y 3FN, pero aún pueden existir estas dependencias sobre otras claves candidatas.
Las condiciones en las que una tabla no está en FNBC son: existen varias claves candidatas, las claves candidatas son compuestas y se encubren, teniendo al menos un atributo en común.
Cuarta y Quinta Forma Normal
En una tabla en Cuarta Forma Normal o 4FN, esta debe estar en FNBC, y las únicas dependencias funcionales multivaluadas que existen son las dependencias funcionales de la clave con los atributos que no forman parte de la misma. Finalmente, una tabla está en Quinta Forma Normal o 5FN si está en 4FN y cada dependencia de unión en ella es implicada por las claves candidatas.
La 5FN se refiere a dependencias extrañas y tiene que ver con afinidades que pueden dividirse en subafinidades, pero que no pueden reconstruirse. La 5FN es la forma normal más compleja y polémica de todas
Cómo aplicar la Forma Normal de Boyce-Codd
Ahora, un ejemplo común de cómo se puede aplicar la FNBC en la práctica es dividir los atributos en las relaciones de la tabla. Tomemos el ejemplo de una tabla con los atributos “Departamento”, “Número de Empleado”, “Nombre del Empleado”, “Salario del Empleado” y “Fecha de Contratación”.
Si aplicamos la 3FN, debemos eliminar cualquier dependencia transitiva en la tabla. En este caso, la dependencia transitiva sería que “Departamento” determine “Salario del Empleado” y “Fecha de Contratación”. Es decir, si sabemos el departamento de un empleado, podemos deducir su salario y fecha de contratación.
Para transformar la tabla en una tabla en FNBC, debemos eliminar la dependencia no trivial y crear dos tablas en su lugar. Esto es: “Departamento” y “Empleado”, donde la tabla “Empleado” tendrá una clave foránea que haga referencia a la tabla “Departamento”. Así, se garantiza la integridad de los datos en ambas tablas y se evita la redundancia de la información.
En conclusión, aplicar la Forma Normal de Boyce-Codd implica una normalización adecuada de las bases de datos que garantiza la integridad de los datos almacenados y evita la redundancia de la información. Al mantener las bases de datos normalizadas se permite, además, un mejor mantenimiento y actualización de la información, reduciendo errores y redundancia en los registros almacenados.